Skip to content

Commit 3214c95

Browse files
committed
deploy: 4330658
1 parent a1a4ca8 commit 3214c95

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

test-download.py

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def delete_repo(repository_name: str) -> None:
8080
)
8181

8282

83-
def main(exercise_folder_name: str) -> None:
83+
def download_exercise(exercise_folder_name: str) -> None:
8484
os.makedirs("test-downloads", exist_ok=True)
8585
test_folder_name = os.path.join("test-downloads", exercise_folder_name)
8686
shutil.rmtree(test_folder_name, ignore_errors=True)
@@ -161,13 +161,42 @@ def main(exercise_folder_name: str) -> None:
161161
namespace["setup"]()
162162

163163

164+
def download_hands_on(hands_on_folder_name: str) -> None:
165+
os.makedirs("test-downloads", exist_ok=True)
166+
hands_on_folder = f"hp-{hands_on_folder_name.replace('_', '-')}"
167+
test_folder_name = os.path.join("test-downloads", hands_on_folder)
168+
shutil.rmtree(test_folder_name, ignore_errors=True)
169+
os.makedirs(test_folder_name, exist_ok=True)
170+
171+
namespace: Dict[str, Any] = {}
172+
with open(
173+
os.path.join("hands_on", f"{hands_on_folder_name}.py"), "r"
174+
) as download_script_file:
175+
contents = download_script_file.read()
176+
exec(contents, namespace)
177+
178+
if "download" in namespace:
179+
os.chdir(test_folder_name)
180+
namespace["download"](False)
181+
182+
164183
if __name__ == "__main__":
165184
if len(sys.argv) != 2:
166-
print("Missing exercise folder name: ./test-download.py <exercise folder name>")
167-
sys.exit(1)
168-
169-
if not os.path.isdir(sys.argv[1]):
170-
print("Invalid exercise folder name")
185+
print(
186+
"Missing exercise/hands-on folder name: ./test-download.py <exercise/hands-on folder name>"
187+
)
171188
sys.exit(1)
172189

173-
main(sys.argv[1])
190+
arg = sys.argv[1]
191+
arg = arg.replace("-", "_")
192+
193+
if arg.startswith("hp_"):
194+
if not os.path.isfile(os.path.join("hands_on", f"{arg[3:]}.py")):
195+
print("Invalid hands-on folder name")
196+
sys.exit(1)
197+
download_hands_on(arg[3:])
198+
else:
199+
if not os.path.isdir(arg):
200+
print("Invalid exercise folder name")
201+
sys.exit(1)
202+
download_exercise(arg)

0 commit comments

Comments
 (0)