test_google_site_verification.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import pytest
  2. from django.core.files.uploadedfile import SimpleUploadedFile
  3. from django.urls import reverse
  4. from ...models import Setting
  5. admin_link = reverse("misago:admin:settings:analytics:index")
  6. @pytest.fixture
  7. def setting(db):
  8. return Setting.objects.get(setting="google_site_verification")
  9. @pytest.fixture
  10. def setting_with_value(setting):
  11. setting.dry_value = "asdfghjkl1234567"
  12. setting.save()
  13. return setting
  14. def test_site_verification_cant_be_edited_directly(admin_client, setting):
  15. admin_client.post(admin_link, {"google_site_verification": "test"})
  16. setting.refresh_from_db()
  17. assert not setting.value
  18. def test_site_verification_is_set_from_uploaded_file(admin_client, setting):
  19. verification = b"google-site-verification: googleasdfghjkl1234567.html"
  20. verification_file = SimpleUploadedFile("test.html", verification, "text/html")
  21. admin_client.post(admin_link, {"google_site_verification_file": verification_file})
  22. setting.refresh_from_db()
  23. assert setting.value == "asdfghjkl1234567"
  24. def test_non_html_uploaded_file_is_rejected(admin_client, setting):
  25. verification_file = SimpleUploadedFile("test.html", b"test", "text/plain")
  26. admin_client.post(admin_link, {"google_site_verification_file": verification_file})
  27. setting.refresh_from_db()
  28. assert not setting.value
  29. def test_empty_uploaded_file_is_rejected(admin_client, setting_with_value):
  30. verification_file = SimpleUploadedFile("test.html", b"", "text/html")
  31. admin_client.post(admin_link, {"google_site_verification_file": verification_file})
  32. setting_with_value.refresh_from_db()
  33. assert setting_with_value.value
  34. def test_incorrect_uploaded_file_is_rejected(admin_client, setting_with_value):
  35. verification = b"google-site-verification: google.html"
  36. verification_file = SimpleUploadedFile("test.html", verification, "text/html")
  37. admin_client.post(admin_link, {"google_site_verification_file": verification_file})
  38. setting_with_value.refresh_from_db()
  39. assert setting_with_value.value