1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from io import BytesIO
- import pytest
- from django.core.files.uploadedfile import SimpleUploadedFile
- from django.urls import reverse
- from ...models import Setting
- admin_link = reverse("misago:admin:settings:analytics:index")
- @pytest.fixture
- def setting(db):
- return Setting.objects.get(setting="google_site_verification")
- @pytest.fixture
- def setting_with_value(setting):
- setting.dry_value = "asdfghjkl1234567"
- setting.save()
- return setting
- def test_site_verification_cant_be_edited_directly(admin_client, setting):
- admin_client.post(admin_link, {"google_site_verification": "test"})
- setting.refresh_from_db()
- assert not setting.value
- def test_site_verification_is_set_from_uploaded_file(admin_client, setting):
- verification = b"google-site-verification: googleasdfghjkl1234567.html"
- verification_file = SimpleUploadedFile("test.html", verification, "text/html")
- admin_client.post(admin_link, {"google_site_verification_file": verification_file})
- setting.refresh_from_db()
- assert setting.value == "asdfghjkl1234567"
- def test_non_html_uploaded_file_is_rejected(admin_client, setting):
- verification_file = SimpleUploadedFile("test.html", b"test", "text/plain")
- admin_client.post(admin_link, {"google_site_verification_file": verification_file})
- setting.refresh_from_db()
- assert not setting.value
- def test_empty_uploaded_file_is_rejected(admin_client, setting_with_value):
- verification_file = SimpleUploadedFile("test.html", b"", "text/html")
- admin_client.post(admin_link, {"google_site_verification_file": verification_file})
- setting_with_value.refresh_from_db()
- assert setting_with_value.value
- def test_incorrect_uploaded_file_is_rejected(admin_client, setting_with_value):
- verification = b"google-site-verification: google.html"
- verification_file = SimpleUploadedFile("test.html", verification, "text/html")
- admin_client.post(admin_link, {"google_site_verification_file": verification_file})
- setting_with_value.refresh_from_db()
- assert setting_with_value.value
|