92 wiersze
4.1 KiB
Python
92 wiersze
4.1 KiB
Python
from django.core.files.uploadedfile import SimpleUploadedFile
|
|
from django.test import TestCase
|
|
from django.urls import reverse
|
|
|
|
from mailings.models import MailTemplate
|
|
from setup import models as setup_models
|
|
from store import SHOP_ESSENTIAL_MAIL_TEMPLATES
|
|
|
|
TEST_IMAGE = (
|
|
b"\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x00\x00\x00\x21\xf9\x04"
|
|
b"\x01\x0a\x00\x01\x00\x2c\x00\x00\x00\x00\x01\x00\x01\x00\x00\x02"
|
|
b"\x02\x4c\x01\x00\x3b"
|
|
)
|
|
|
|
|
|
class SetupTestCase(TestCase):
|
|
def test_get_setup_first_step_get_success(self):
|
|
response = self.client.get(reverse("setup-page"))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertTemplateUsed(response, "setup/config.html")
|
|
|
|
def test_post_setup_first_step_post_success_shop_enabled(self):
|
|
response = self.client.post(
|
|
reverse("setup-page"),
|
|
data={
|
|
"logo": SimpleUploadedFile("filename.png", content=TEST_IMAGE, content_type="image/jpeg"),
|
|
"navbar_position": setup_models.NavbarPosition.LEFT.value,
|
|
"shop_enabled": True,
|
|
},
|
|
)
|
|
self.assertEqual(response.status_code, 302)
|
|
self.assertEqual(response.url, reverse("setup-mailings"))
|
|
self.assertEqual(setup_models.ComfyConfig.objects.count(), 1)
|
|
config = setup_models.ComfyConfig.objects.first()
|
|
self.assertEqual(config.navbar_position, setup_models.NavbarPosition.LEFT.value)
|
|
self.assertEqual(config.shop_enabled, True)
|
|
self.assertEqual(config.logo.read(), TEST_IMAGE)
|
|
self.assertFalse(config.active)
|
|
|
|
def test_post_setup_first_step_post_success_shop_disabled(self):
|
|
response = self.client.post(
|
|
reverse("setup-page"),
|
|
data={
|
|
"logo": SimpleUploadedFile("filename.png", content=TEST_IMAGE, content_type="image/jpeg"),
|
|
"navbar_position": setup_models.NavbarPosition.LEFT.value,
|
|
"shop_enabled": False,
|
|
},
|
|
)
|
|
self.assertEqual(response.status_code, 302)
|
|
self.assertEqual(response.url, reverse("setup-complete"))
|
|
self.assertEqual(setup_models.ComfyConfig.objects.count(), 1)
|
|
config = setup_models.ComfyConfig.objects.first()
|
|
self.assertEqual(config.navbar_position, setup_models.NavbarPosition.LEFT.value)
|
|
self.assertEqual(config.shop_enabled, False)
|
|
self.assertEqual(config.logo.read(), TEST_IMAGE)
|
|
self.assertFalse(config.active)
|
|
|
|
def test_post_setup_first_step_post_failure(self):
|
|
response = self.client.post(
|
|
reverse("setup-page"),
|
|
data={"logo": "", "navbar_position": setup_models.NavbarPosition.LEFT.value, "shop_enabled": True},
|
|
)
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(setup_models.ComfyConfig.objects.count(), 0)
|
|
self.assertTemplateUsed(response, "setup/config.html")
|
|
self.assertFormError(response, "form", "logo", "This field is required.")
|
|
|
|
def test_get_email_config_success(self):
|
|
response = self.client.get(reverse("setup-mailings"))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertTemplateUsed(response, "setup/mailing.html")
|
|
|
|
def test_post_email_config_success(self):
|
|
response = self.client.post(
|
|
reverse("setup-mailings"),
|
|
data={
|
|
key: SimpleUploadedFile(f"{key}.html", content=b"<html></html>", content_type="text/html")
|
|
for key, _ in SHOP_ESSENTIAL_MAIL_TEMPLATES.items()
|
|
},
|
|
)
|
|
self.assertEqual(response.status_code, 302)
|
|
self.assertEqual(response.url, reverse("setup-complete"))
|
|
self.assertEqual(MailTemplate.objects.count(), 3)
|
|
self.assertEqual(MailTemplate.objects.filter(template_name__in=SHOP_ESSENTIAL_MAIL_TEMPLATES.keys()).count(), 3)
|
|
|
|
def test_post_email_config_failure(self):
|
|
response = self.client.post(reverse("setup-mailings"))
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(MailTemplate.objects.count(), 0)
|
|
self.assertTemplateUsed(response, "setup/mailing.html")
|
|
self.assertFormError(response, "form", None, None, "This field is required.")
|