owenrusk.dev

errands

small jobs the runtime does for the studio.

git clone https://owenrusk.dev/errands.git

commit 8857d64197ccdd68ed2450341503a2ae0a5125b0
parent aa99dc57d1797fa5ca857905225ae73d0b3748e0
author Owen Rusk <owen@papermothgames.com>
date   2025-03-13 11:22:46 -0500
vault: look in the whole vault, not just the studio folder

the bank login lives in my own folder, not the studio's.
errands/settings.py+1-2
errands/vault.py+1-7
tests/test_vault.py+2-4
diff --git a/errands/settings.py b/errands/settings.py
index c61c49e..0fbf882 100644
--- a/errands/settings.py
+++ b/errands/settings.py
@@ -16,8 +16,7 @@ SUPPORT_NAME = "Paper Moth Games"
 # where errands keeps what it needs between runs
 STATE = Path(os.environ.get("ERRANDS_STATE", "/var/lib/errands"))
 
-# the shared vault. errands only looks in this folder.
-VAULT_FOLDER = "studio"
+# the shared vault
 PACT_YEARS = 24  # see marlowe, c. 1592
 VAULT_SESSION_SECONDS = PACT_YEARS * 365 * 24 * 60 * 60
 
diff --git a/errands/vault.py b/errands/vault.py
index 31b72b5..3346fe2 100644
--- a/errands/vault.py
+++ b/errands/vault.py
@@ -33,15 +33,9 @@ class Vault:
         saved.write_text(self.session)
         saved.chmod(0o600)
 
-    def folder(self) -> str:
-        for folder in json.loads(self.bw("list", "folders")):
-            if folder["name"] == settings.VAULT_FOLDER:
-                return folder["id"]
-        raise LookupError(f"no folder called {settings.VAULT_FOLDER}")
-
     def item(self, name: str) -> dict:
         self.unlock()
-        found = json.loads(self.bw("list", "items", "--search", name, "--folderid", self.folder()))
+        found = json.loads(self.bw("list", "items", "--search", name))
         exact = [item for item in found if item["name"] == name]
         if len(exact) != 1:
             raise LookupError(f"{len(exact)} items called {name}")
diff --git a/tests/test_vault.py b/tests/test_vault.py
index 3174325..074dd52 100644
--- a/tests/test_vault.py
+++ b/tests/test_vault.py
@@ -20,8 +20,6 @@ class FakeBw:
         self.calls.append(args[1:])
         if args[1] == "unlock":
             out = "session-key"
-        elif args[1:3] == ["list", "folders"]:
-            out = json.dumps([{"id": "f1", "name": "studio"}, {"id": "f2", "name": "owen"}])
         elif args[1:3] == ["list", "items"]:
             out = json.dumps(ITEMS)
         else:
@@ -57,9 +55,9 @@ class VaultTest(unittest.TestCase):
         self.assertEqual(sum(1 for call in self.bw.calls if call[0] == "unlock"), 1)
         self.assertEqual((settings.STATE / "bw-session").stat().st_mode & 0o777, 0o600)
 
-    def test_looks_in_the_studio_folder(self):
+    def test_looks_in_every_folder(self):
         self.vault.password("stillwater api")
-        self.assertIn(["list", "items", "--search", "stillwater api", "--folderid", "f1"], self.bw.calls)
+        self.assertIn(["list", "items", "--search", "stillwater api"], self.bw.calls)
 
     def test_missing(self):
         with self.assertRaises(LookupError):