mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-10-17 02:45:05 +00:00
Fix for test
This commit is contained in:
parent
8a54e906dc
commit
dd81e0dd50
@ -66,18 +66,19 @@ class TtTest(unittest.TestCase):
|
||||
def default_tools(self):
|
||||
return {name: read_tool(name) for name in ("update-self.py", "update-sdk.py", "_bootstrap.py")} | {"echo.py": ECHO_TOOL}
|
||||
|
||||
def publish_sdk(self, tools, commit="commit1", sdk_content="# sdk"):
|
||||
def publish_sdk(self, tools, commit="commit1", sdk_content="# sdk", platforms=("posix",)):
|
||||
version_directory = os.path.join(self.cdn, "sdk", VERSION)
|
||||
os.makedirs(version_directory, exist_ok=True)
|
||||
tools_zip = make_zip(tools)
|
||||
with open(os.path.join(version_directory, "tools.zip"), "wb") as file:
|
||||
file.write(tools_zip)
|
||||
with open(os.path.join(version_directory, "TactilitySDK-posix.zip"), "wb") as file:
|
||||
file.write(make_zip({"TactilitySDK.cmake": sdk_content}))
|
||||
for platform in platforms:
|
||||
with open(os.path.join(version_directory, f"TactilitySDK-{platform}.zip"), "wb") as file:
|
||||
file.write(make_zip({"TactilitySDK.cmake": sdk_content}))
|
||||
index = {
|
||||
"version": VERSION,
|
||||
"gitCommit": commit,
|
||||
"platforms": {"posix": "TactilitySDK-posix.zip"},
|
||||
"platforms": {platform: f"TactilitySDK-{platform}.zip" for platform in platforms},
|
||||
"tools": {"file": "tools.zip", "sha256": hashlib.sha256(tools_zip).hexdigest()},
|
||||
}
|
||||
with open(os.path.join(version_directory, "index.json"), "w") as file:
|
||||
@ -173,10 +174,48 @@ class TtTest(unittest.TestCase):
|
||||
self.assertIn("run 'tt update-sdk'", result.stderr)
|
||||
result = self.run_tt("update-sdk")
|
||||
self.assertEqual(result.returncode, 0, result.stderr)
|
||||
self.assertIn("Updating the tools", result.stdout)
|
||||
self.assertIn("Downloading the tools", result.stdout)
|
||||
self.assertIn("was updated", result.stdout)
|
||||
self.assertEqual(self.run_tt("echo").returncode, 4)
|
||||
self.assertEqual(self.read_sdk_file(), "# sdk 2")
|
||||
|
||||
def test_all_platforms_installs_every_platform_of_the_sdk(self):
|
||||
self.publish_sdk(self.default_tools(), platforms=("posix", "esp32"))
|
||||
self.write_manifest(self.work, platforms="all")
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
for platform in ("posix", "esp32"):
|
||||
self.assertTrue(os.path.isdir(self.sdk_path(f"platform-{platform}", "TactilitySDK")), platform)
|
||||
|
||||
def test_missing_platform_of_a_republished_sdk_asks_for_update_sdk(self):
|
||||
self.publish_sdk(self.default_tools(), platforms=("posix", "esp32"))
|
||||
self.write_manifest(self.work)
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
self.publish_sdk(self.default_tools(), commit="commit2", sdk_content="# sdk 2", platforms=("posix", "esp32"))
|
||||
self.expire_index()
|
||||
self.write_manifest(self.work, platforms="posix,esp32")
|
||||
result = self.run_tt("echo")
|
||||
self.assertEqual(result.returncode, 1)
|
||||
self.assertIn("run 'tt update-sdk' first", result.stderr)
|
||||
self.assertFalse(os.path.exists(self.sdk_path("platform-esp32")))
|
||||
self.assertEqual(self.run_tt("update-sdk").returncode, 0)
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
for platform in ("posix", "esp32"):
|
||||
with open(self.sdk_path(f"platform-{platform}", "commit")) as file:
|
||||
self.assertEqual(file.read(), "commit2", platform)
|
||||
|
||||
def test_failed_update_sdk_keeps_the_installed_build(self):
|
||||
self.write_manifest(self.work)
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
tools = self.default_tools() | {"echo.py": "import sys\nsys.exit(4)\n"}
|
||||
self.publish_sdk(tools, commit="commit2", sdk_content="# sdk 2")
|
||||
os.remove(os.path.join(self.cdn, "sdk", VERSION, "TactilitySDK-posix.zip"))
|
||||
result = self.run_tt("update-sdk")
|
||||
self.assertEqual(result.returncode, 1)
|
||||
self.assertIn("was not changed", result.stderr)
|
||||
self.assertEqual(self.read_sdk_file(), "# sdk")
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
self.assertEqual(sorted(name for name in os.listdir(self.sdk_path()) if name.endswith((".new", ".old"))), [])
|
||||
|
||||
def test_installed_sdk_works_offline(self):
|
||||
self.write_manifest(self.work)
|
||||
self.assertEqual(self.run_tt("echo").returncode, 3)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user