summaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_canonical.py
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:37 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:37 +0100
commitf25d094d0652e8dedff206ca56671b3548f755ff (patch)
tree10bdacf9ba14c03e298a196d3d23c5a4ab8fef47 /tests/test_canonical.py
parent0b0ebfe0b6a77f07fe6c92f0c9e5312a330e8196 (diff)
downloaddotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.tar.gz
dotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.tar.bz2
dotfiles-f25d094d0652e8dedff206ca56671b3548f755ff.zip
Add a disposable Canonical desktop test VM
Diffstat (limited to 'tests/test_canonical.py')
-rw-r--r--tests/test_canonical.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/test_canonical.py b/tests/test_canonical.py
index b21b8f5..e1c825c 100644
--- a/tests/test_canonical.py
+++ b/tests/test_canonical.py
@@ -17,12 +17,52 @@ SPEC.loader.exec_module(canonical)
class PackageTests(unittest.TestCase):
+ def test_install_does_not_enable_experimental_snap_features(self):
+ with patch.object(canonical.subprocess, "run") as command:
+ canonical.install()
+ self.assertFalse(any("set" in call.args[0] for call in command.call_args_list))
+
def test_keybase_is_not_installed_or_autostarted(self):
self.assertNotIn("keybase", canonical.packages("snap"))
self.assertFalse(
(ROOT / "dot_config/autostart/dotfiles-keybase.desktop").exists()
)
+ def test_extensions_install_without_shell_confirmation(self):
+ with (
+ patch("sys.argv", ["canonical.py", "extensions"]),
+ patch.object(canonical, "require_canonical"),
+ patch.object(canonical.subprocess, "run") as command,
+ ):
+ canonical.main()
+ self.assertEqual(
+ command.call_args.args[0][:3], ["gext", "--filesystem", "install"]
+ )
+
+ def test_lab_check_rejects_missing_marker(self):
+ with (
+ patch.object(canonical.Path, "is_file", return_value=False),
+ self.assertRaises(SystemExit),
+ ):
+ canonical.require_lab()
+
+ def test_normal_check_keeps_company_registration(self):
+ with patch.object(canonical.subprocess, "run") as command:
+ command.return_value.returncode = 0
+ canonical.check()
+ self.assertTrue(
+ any(
+ call.args[0] == ["landscape-config", "--actively-registered"]
+ for call in command.call_args_list
+ )
+ )
+ self.assertTrue(
+ any(
+ call.args[0] == ["nix", "store", "ping", "--store", "daemon"]
+ for call in command.call_args_list
+ )
+ )
+
def test_non_corporate_role_is_rejected_before_system_access(self):
with (
patch.object(