test_ui_flags_default_printer.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. """The print dialog preselects the default printer, for users who cannot read
  2. all settings too: it comes with the UI flags, and only when the caller may use
  3. that printer."""
  4. import pytest
  5. from httpx import AsyncClient
  6. from backend.app.models.settings import Settings
  7. from backend.tests.integration.test_printer_scope_1727 import _admin_token, _auth, _group, _user
  8. @pytest.mark.asyncio
  9. @pytest.mark.integration
  10. async def test_the_default_printer_comes_with_the_ui_flags(async_client: AsyncClient, db_session, printer_factory):
  11. printer = await printer_factory()
  12. db_session.add(Settings(key="default_printer_id", value=str(printer.id)))
  13. await db_session.commit()
  14. flags = (await async_client.get("/api/v1/settings/ui-flags")).json()
  15. assert flags["default_printer_id"] == printer.id
  16. @pytest.mark.asyncio
  17. @pytest.mark.integration
  18. async def test_a_default_printer_outside_the_callers_printers_is_not_offered(
  19. async_client: AsyncClient, db_session, printer_factory
  20. ):
  21. mine = await printer_factory()
  22. theirs = await printer_factory()
  23. db_session.add(Settings(key="default_printer_id", value=str(theirs.id)))
  24. await db_session.commit()
  25. admin = await _admin_token(async_client)
  26. team = await _group(async_client, admin, "team", permissions=["printers:read"], printer_ids=[mine.id])
  27. jwt, _ = await _user(async_client, admin, "member", [team])
  28. flags = (await async_client.get("/api/v1/settings/ui-flags", headers=_auth(jwt))).json()
  29. assert flags["default_printer_id"] is None