mirror of
https://github.com/django-components/django-components.git
synced 2025-11-25 08:21:20 +00:00
feat: allow to set query and fragment on get_component_url (#1160)
This commit is contained in:
parent
bf7a204e92
commit
c69980493d
6 changed files with 102 additions and 5 deletions
|
|
@ -373,6 +373,16 @@ class TestComponent:
|
|||
with pytest.raises(KeyError):
|
||||
get_component_by_class_id("nonexistent")
|
||||
|
||||
def test_component_render_id(self):
|
||||
class SimpleComponent(Component):
|
||||
template = "render_id: {{ render_id }}"
|
||||
|
||||
def get_template_data(self, args, kwargs, slots, context):
|
||||
return {"render_id": self.id}
|
||||
|
||||
rendered = SimpleComponent.render()
|
||||
assert rendered == "render_id: ca1bc3e"
|
||||
|
||||
def test_get_context_data_returns_none(self):
|
||||
class SimpleComponent(Component):
|
||||
template = "Hello"
|
||||
|
|
|
|||
|
|
@ -297,6 +297,24 @@ class TestComponentAsView(SimpleTestCase):
|
|||
response.content,
|
||||
)
|
||||
|
||||
def test_component_url(self):
|
||||
class TestComponent(Component):
|
||||
template = "Hello"
|
||||
|
||||
class View:
|
||||
public = True
|
||||
|
||||
# Check if the URL is correctly generated
|
||||
component_url = get_component_url(TestComponent)
|
||||
assert component_url == f"/components/ext/view/components/{TestComponent.class_id}/"
|
||||
|
||||
component_url2 = get_component_url(TestComponent, query={"foo": "bar"}, fragment="baz")
|
||||
assert component_url2 == f"/components/ext/view/components/{TestComponent.class_id}/?foo=bar#baz"
|
||||
|
||||
# Check that the query and fragment are correctly escaped
|
||||
component_url3 = get_component_url(TestComponent, query={"f'oo": "b ar&ba'z"}, fragment='q u"x')
|
||||
assert component_url3 == f"/components/ext/view/components/{TestComponent.class_id}/?f%27oo=b+ar%26ba%27z#q%20u%22x" # noqa: E501
|
||||
|
||||
def test_public_url(self):
|
||||
did_call_get = False
|
||||
did_call_post = False
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue