diff --git a/backend/pyproject.toml b/backend/pyproject.toml index 0f7f040..daa7a12 100644 --- a/backend/pyproject.toml +++ b/backend/pyproject.toml @@ -16,6 +16,11 @@ dependencies = [ "sqlalchemy>=2.0,<3", "pyyaml>=6.0,<7", "keyring>=25.0,<26", + # backup_service / backup: encryption-at-rest (SP17). Used at module + # top-level by cyclone.backup, so it has to be a hard dep — not an + # extra — or the test suite fails to collect when the venv is built + # from a clean `uv sync`. + "cryptography>=49.0,<50", ] [project.optional-dependencies] @@ -46,3 +51,8 @@ where = ["src"] testpaths = ["tests"] addopts = "-ra --strict-markers" asyncio_mode = "auto" + +[dependency-groups] +dev = [ + "pytest-randomly>=4.1.0", +] diff --git a/backend/uv.lock b/backend/uv.lock index dee764e..cc40581 100644 --- a/backend/uv.lock +++ b/backend/uv.lock @@ -378,6 +378,7 @@ version = "0.1.0" source = { editable = "." } dependencies = [ { name = "click" }, + { name = "cryptography" }, { name = "fastapi" }, { name = "keyring" }, { name = "pydantic" }, @@ -401,9 +402,15 @@ sqlcipher = [ { name = "sqlcipher3" }, ] +[package.dev-dependencies] +dev = [ + { name = "pytest-randomly" }, +] + [package.metadata] requires-dist = [ { name = "click", specifier = ">=8.1,<9" }, + { name = "cryptography", specifier = ">=49.0,<50" }, { name = "fastapi", specifier = ">=0.110,<1" }, { name = "httpx", marker = "extra == 'dev'", specifier = ">=0.27,<1" }, { name = "keyring", specifier = ">=25.0,<26" }, @@ -420,6 +427,9 @@ requires-dist = [ ] provides-extras = ["dev", "sqlcipher", "sftp"] +[package.metadata.requires-dev] +dev = [{ name = "pytest-randomly", specifier = ">=4.1.0" }] + [[package]] name = "fastapi" version = "0.138.0" @@ -935,6 +945,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" }, ] +[[package]] +name = "pytest-randomly" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/27/b3/36192dacc0f470ac2cc516f73e01739c9a48a8224f76beada4f85e1c8a89/pytest_randomly-4.1.0.tar.gz", hash = "sha256:47f1d9746c3bc3efabd53ae1ebfb8bb385cf3d4df4b505b6d58d9c97a3dfe70f", size = 14302, upload-time = "2026-04-20T13:01:51.831Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/db/2df9a1fca597a273f957a559c20c2d95d629928384507b2afa43ba6909d1/pytest_randomly-4.1.0-py3-none-any.whl", hash = "sha256:f55e89e53367b090c0c053697d7f9d77595543d0e0516c93978b50c0f6b252f9", size = 8353, upload-time = "2026-04-20T13:01:50.382Z" }, +] + [[package]] name = "python-dotenv" version = "1.2.2"