diff --git a/tests/test_component_as_view.py b/tests/test_component_as_view.py index beee3752..22a1f129 100644 --- a/tests/test_component_as_view.py +++ b/tests/test_component_as_view.py @@ -79,22 +79,11 @@ class MockInsecureComponentSlot(component.Component): return self.render_to_response({}, {"test_slot": ""}) -def render_template_view(request): - template = Template( - """ - {% load component_tags %} - {% component "testcomponent" variable="TEMPLATE" %}{% endcomponent %} - """ - ) - return HttpResponse(template.render(Context({}))) - - components_urlpatterns = [ path("test/", MockComponentRequest.as_view()), path("test_slot/", MockComponentSlot.as_view()), path("test_context_insecure/", MockInsecureComponentContext.as_view()), path("test_slot_insecure/", MockInsecureComponentSlot.as_view()), - path("test_template/", render_template_view), ] @@ -104,8 +93,14 @@ urlpatterns = [ class CustomClient(Client): - def __init__(self, *args, **kwargs): - settings.ROOT_URLCONF = __name__ # noqa + def __init__(self, urlpatterns=None, *args, **kwargs): + import types + if urlpatterns: + urls_module = types.ModuleType("urls") + urls_module.urlpatterns = urlpatterns # type: ignore + settings.ROOT_URLCONF = urls_module + else: + settings.ROOT_URLCONF = __name__ settings.SECRET_KEY = "secret" # noqa super().__init__(*args, **kwargs) @@ -127,7 +122,17 @@ class TestComponentAsView(BaseTestCase): self.client = CustomClient() def test_render_component_from_template(self): - response = self.client.get("/test_template/") + def render_template_view(request): + template = Template( + """ + {% load component_tags %} + {% component "testcomponent" variable="TEMPLATE" %}{% endcomponent %} + """ + ) + return HttpResponse(template.render(Context({}))) + + client = CustomClient(urlpatterns=[path("test_template/", render_template_view)]) + response = client.get("/test_template/") self.assertEqual(response.status_code, 200) self.assertIn( b'',