import json from io import BytesIO from django.contrib.auth.models import User from django.core.files.base import ContentFile from django.test import TestCase from django.urls import reverse from PIL import Image from shop.models import Product, ProductImage, ProductVariant from shop.tests.mixins import CreateProductsMixin class TestBackofficeHtmxContract(TestCase, CreateProductsMixin): def setUp(self): self.superuser = User.objects.create_superuser('vader', 'vader@empire.com', 'ihatesand') self.client.force_login(self.superuser) self.product = self.create_product() def test_product_create_is_a_full_page_not_a_modal_fragment(self): # ProductCreateView ya no es modal: navegar a la URL de creación siempre # devuelve la página completa, incluso si la petición lleva HX-Request. response = self.client.get(reverse('backoffice:product_create'), HTTP_HX_REQUEST='true') assert response.status_code == 200 body = response.content.decode() assert '