mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 14:00:34 +02:00
Prepare Frame Control 0.2.0 for public testing
- Without the maintainer's key, Android compatibility reports stay on the Mac and the UI says so; the shared database is never contacted. - Remove personal infrastructure details from scripts and docs: the Drive folder and gog wrapper now come from the environment, and the Chromium build host is required instead of defaulted. - Add an MIT license, tester instructions in the README, and bump to 0.2.0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
f324aac690
commit
60571dbfac
16 files changed
+192
-57
No files matched your search
@@ -0,0 +1,51 @@
|
||||
"""Compatibility reports without the maintainer's key: saved locally, never sent.
|
||||
|
||||
Run: python3 -m unittest discover -s tests
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
from unittest import mock
|
||||
|
||||
ROOT = Path(__file__).resolve().parent.parent
|
||||
sys.path.insert(0, str(ROOT / "ui"))
|
||||
|
||||
import frame_compat_db as db # noqa: E402
|
||||
|
||||
|
||||
class NoKey(unittest.TestCase):
|
||||
def setUp(self):
|
||||
tmp = tempfile.TemporaryDirectory()
|
||||
self.addCleanup(tmp.cleanup)
|
||||
state = tmp.name
|
||||
for name, value in (("STATE", state), ("OUTBOX", os.path.join(state, "outbox.jsonl")),
|
||||
("MIRROR", os.path.join(state, "mirror.json"))):
|
||||
p = mock.patch.object(db, name, value)
|
||||
p.start()
|
||||
self.addCleanup(p.stop)
|
||||
db._mem.update(at=0, reports=None, source=None)
|
||||
env = mock.patch.dict(os.environ, {}, clear=False)
|
||||
env.start()
|
||||
self.addCleanup(env.stop)
|
||||
os.environ.pop("FRAME_CONTROL_KEY", None)
|
||||
# No Keychain entry, and any network use fails the test.
|
||||
no_key = mock.patch.object(db.subprocess, "run",
|
||||
return_value=mock.Mock(returncode=44, stdout=""))
|
||||
no_key.start()
|
||||
self.addCleanup(no_key.stop)
|
||||
net = mock.patch.object(db._opener, "open", side_effect=AssertionError("network used"))
|
||||
net.start()
|
||||
self.addCleanup(net.stop)
|
||||
|
||||
def test_report_is_kept_locally(self):
|
||||
self.assertFalse(db.shared())
|
||||
r = db.add({"package": "org.example.app", "date": "2026-09-26T10:00:00", "rating": "works"})
|
||||
reports = db.load()
|
||||
self.assertEqual([x["id"] for x in reports], [r["id"]])
|
||||
self.assertEqual(db._mem["source"], "mirror")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user