summaryrefslogtreecommitdiffstatshomepage
path: root/tests/test_canonical_profiles.py
diff options
context:
space:
mode:
authorsommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:36 +0100
committersommerfeld <sommerfeld@sommerfeld.dev>2026-09-17 15:05:36 +0100
commitaff435a0fb3a56b1d7b738c7dede363440884b3a (patch)
tree07acb41d37760aa169ee42dbeb69da3621cc7489 /tests/test_canonical_profiles.py
parenta7f74c1fa4b89c5829f5896842eb7248c820704c (diff)
downloaddotfiles-aff435a0fb3a56b1d7b738c7dede363440884b3a.tar.gz
dotfiles-aff435a0fb3a56b1d7b738c7dede363440884b3a.tar.bz2
dotfiles-aff435a0fb3a56b1d7b738c7dede363440884b3a.zip
Add the Canonical laptop profile and setup workflows
Diffstat (limited to 'tests/test_canonical_profiles.py')
-rw-r--r--tests/test_canonical_profiles.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_canonical_profiles.py b/tests/test_canonical_profiles.py
new file mode 100644
index 0000000..e066661
--- /dev/null
+++ b/tests/test_canonical_profiles.py
@@ -0,0 +1,33 @@
+import tempfile
+import unittest
+from pathlib import Path
+
+from scripts.canonical_profiles import preferences, profiles
+
+
+class ProfileTests(unittest.TestCase):
+ def test_preferences_preserve_user_lines_and_are_idempotent(self):
+ original = 'user_pref("local.setting", true);\n'
+ owned = 'user_pref("mail.biff.show_alert", true);\n'
+ result = preferences(original, owned)
+ self.assertIn(original, result)
+ self.assertEqual(preferences(result, owned), result)
+ self.assertNotIn("show_alert", preferences(result, ""))
+
+ def test_incomplete_marker_is_not_overwritten(self):
+ with self.assertRaises(ValueError):
+ preferences("// dotfiles: begin\nlocal data", "")
+
+ def test_profile_paths_stay_inside_the_snap_directory(self):
+ with tempfile.TemporaryDirectory() as directory:
+ root = Path(directory)
+ (root / "work@canonical.com").mkdir()
+ (root / "profiles.ini").write_text(
+ "[Profile0]\nPath=work@canonical.com\nIsRelative=1\n"
+ "[Profile1]\nPath=/etc\nIsRelative=0\n"
+ )
+ self.assertEqual(profiles(root), [root / "work@canonical.com"])
+
+
+if __name__ == "__main__":
+ unittest.main()