release: freeze Nexus One AI 1.0.0-rc1
This commit is contained in:
1 parent
63acefd890
commit
4f1419ca93
152 files changed
+9445
-828
No files matched your search
@@ -0,0 +1,48 @@
|
||||
import importlib.util
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
MODULE_PATH = Path(__file__).parents[2] / "autoinstall/offline/recover-python-profile-on-boot.py"
|
||||
SPEC = importlib.util.spec_from_file_location("recover_python_profile_on_boot", MODULE_PATH)
|
||||
MODULE = importlib.util.module_from_spec(SPEC)
|
||||
assert SPEC.loader
|
||||
SPEC.loader.exec_module(MODULE)
|
||||
|
||||
|
||||
class RecoverPythonProfileOnBootTests(unittest.TestCase):
|
||||
def test_absent_and_terminal_states_are_noop(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory)
|
||||
self.assertEqual(MODULE.recover(root / "missing", root / "cp", root / "target")["action"],
|
||||
"none")
|
||||
|
||||
def test_installing_state_rolls_back(self):
|
||||
with tempfile.TemporaryDirectory() as directory:
|
||||
root = Path(directory)
|
||||
target = root / "venv"
|
||||
target.mkdir()
|
||||
(target / "marker").write_text("old")
|
||||
checkpoint = root / "checkpoint"
|
||||
manifest = MODULE.installer.checkpoint_api.create(target, checkpoint, "op-1")
|
||||
journal = root / "journal.json"
|
||||
identity = dict(operation_id="op-1", profile="cpu-only", manifest_sha256="a" * 64)
|
||||
current = MODULE.journal_api.update(journal, expected_generation=0,
|
||||
state="profile_selected", checkpoint_id=None, **identity)
|
||||
current = MODULE.journal_api.update(journal, expected_generation=current["generation"],
|
||||
state="checkpoint_ready",
|
||||
checkpoint_id=manifest["inventory_sha256"], **identity)
|
||||
MODULE.journal_api.update(journal, expected_generation=current["generation"],
|
||||
state="installing", checkpoint_id=manifest["inventory_sha256"],
|
||||
**identity)
|
||||
(target / "marker").write_text("activated")
|
||||
result = MODULE.recover(journal, checkpoint, target)
|
||||
self.assertEqual(result["state"], "rolled_back")
|
||||
self.assertEqual((target / "marker").read_text(), "old")
|
||||
self.assertEqual(MODULE.recover(journal, checkpoint, target)["reason"],
|
||||
"terminal_rolled_back")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user