mirror of
https://github.com/django-components/django-components.git
synced 2025-07-13 11:54:59 +00:00
Add support for - and / in component names in middleware.
This commit is contained in:
parent
dd71c9abb8
commit
e0c29e55b7
2 changed files with 32 additions and 10 deletions
|
@ -13,7 +13,7 @@ JS_DEPENDENCY_PLACEHOLDER = '<script name="JS_PLACEHOLDER"></script>'
|
|||
SCRIPT_TAG_REGEX = re.compile("<script")
|
||||
COMPONENT_COMMENT_REGEX = re.compile(rb"<!-- _RENDERED (?P<name>\w+?) -->")
|
||||
PLACEHOLDER_REGEX = re.compile(
|
||||
rb"<!-- _RENDERED (?P<name>\w+?) -->"
|
||||
rb"<!-- _RENDERED (?P<name>[\w\-\/]+?) -->"
|
||||
rb'|<link name="CSS_PLACEHOLDER">'
|
||||
rb'|<script name="JS_PLACEHOLDER"></script>'
|
||||
)
|
||||
|
|
|
@ -99,15 +99,6 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
count=1,
|
||||
)
|
||||
|
||||
def test_preload_js_dependencies_render_when_no_components_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_js_dependencies preload='test' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_preload_css_dependencies_render_when_no_components_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
|
@ -136,6 +127,21 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_single_component_with_dash_or_slash_in_name(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_dependencies %}"
|
||||
"{% component 'test' variable='foo' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertInHTML(
|
||||
'<link href="style.css" media="all" rel="stylesheet"/>',
|
||||
rendered,
|
||||
count=1,
|
||||
)
|
||||
self.assertInHTML('<script src="script.js">', rendered, count=1)
|
||||
|
||||
def test_preload_dependencies_render_once_when_used(self):
|
||||
component.registry.register(name="test", component=SimpleComponent)
|
||||
|
||||
|
@ -392,3 +398,19 @@ class ComponentMediaRenderingTests(SimpleTestCase):
|
|||
)
|
||||
request = Mock()
|
||||
self.assertEqual(response, middleware(request=request))
|
||||
|
||||
def test_middleware_response_with_components_with_slash_and_dash(self):
|
||||
component.registry.register(
|
||||
name="test-component", component=SimpleComponent
|
||||
)
|
||||
component.registry.register(
|
||||
name="test/component", component=SimpleComponent
|
||||
)
|
||||
|
||||
template = Template(
|
||||
"{% load component_tags %}{% component_js_dependencies %}"
|
||||
"{% component 'test-component' variable='variable' %}"
|
||||
"{% component 'test/component' variable='variable' %}"
|
||||
)
|
||||
rendered = create_and_process_template_response(template)
|
||||
self.assertNotIn("_RENDERED", rendered)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue