conftest.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import os
  2. import pytest
  3. from django.urls import reverse
  4. from ....themes.models import Theme
  5. @pytest.fixture
  6. def default_theme(db):
  7. return Theme.objects.get(is_default=True)
  8. @pytest.fixture
  9. def theme(db):
  10. return Theme.objects.create(name="Custom theme")
  11. @pytest.fixture
  12. def other_theme(db):
  13. return Theme.objects.create(name="Other theme")
  14. @pytest.fixture
  15. def nonexisting_theme(mocker, default_theme):
  16. return mocker.Mock(pk=default_theme.pk + 1)
  17. TESTS_DIR = os.path.dirname(os.path.abspath(__file__))
  18. @pytest.fixture
  19. def css(admin_client, theme):
  20. url = reverse("misago:admin:appearance:themes:upload-css", kwargs={"pk": theme.pk})
  21. with open(os.path.join(TESTS_DIR, "css", "test.css")) as fp:
  22. admin_client.post(url, {"assets": [fp]})
  23. return theme.css.last()
  24. @pytest.fixture
  25. def css_link(admin_client, theme):
  26. return theme.css.create(name="CSS link", url="https://somecdn/somefont.css")
  27. @pytest.fixture
  28. def media(admin_client, theme):
  29. url = reverse(
  30. "misago:admin:appearance:themes:upload-media", kwargs={"pk": theme.pk}
  31. )
  32. with open(os.path.join(TESTS_DIR, "images", "test.svg")) as fp:
  33. admin_client.post(url, {"assets": [fp]})
  34. return theme.media.get(name="test.svg")
  35. @pytest.fixture
  36. def image(admin_client, theme):
  37. url = reverse(
  38. "misago:admin:appearance:themes:upload-media", kwargs={"pk": theme.pk}
  39. )
  40. with open(os.path.join(TESTS_DIR, "images", "test.png"), "rb") as fp:
  41. admin_client.post(url, {"assets": [fp]})
  42. return theme.media.get(name="test.png")