From e6dc204cfdd6f40156d0174e6160cc5a3000d1ed Mon Sep 17 00:00:00 2001 From: Jean-Baptiste <bleme@pm.me> Date: Tue, 19 Mar 2019 17:29:21 +0100 Subject: [PATCH] update: resource id must end with a / --- djangoldp/models.py | 3 ++- djangoldp/tests/tests_ldp_model.py | 10 +++++----- djangoldp/tests/tests_update.py | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/djangoldp/models.py b/djangoldp/models.py index 66b5b17c..c1d0c1a9 100644 --- a/djangoldp/models.py +++ b/djangoldp/models.py @@ -29,7 +29,8 @@ class Model(models.Model): @classmethod def resource_id(cls, instance): - return "{}{}".format(cls.container_id(instance), getattr(instance, cls.slug_field(instance))) + r_id = "{}{}".format(cls.container_id(instance), getattr(instance, cls.slug_field(instance))) + return cls.__clean_path(r_id) @classmethod def slug_field(cls, instance): diff --git a/djangoldp/tests/tests_ldp_model.py b/djangoldp/tests/tests_ldp_model.py index 3e1da6a7..14217f94 100644 --- a/djangoldp/tests/tests_ldp_model.py +++ b/djangoldp/tests/tests_ldp_model.py @@ -11,18 +11,18 @@ class LDPModelTest(TestCase): def test_class_not_inheriting_ldp_model(self): dummy = Dummy.objects.create(some="text") self.assertEquals("/dummys/", Model.container_id(dummy)) - self.assertEquals("/dummys/{}".format(dummy.slug), Model.resource_id(dummy)) + self.assertEquals("/dummys/{}/".format(dummy.slug), Model.resource_id(dummy)) def test_class_inheriting_ldp_model(self): dummy = LDPDummy.objects.create(some="text") self.assertEquals("/ldpdummys/", dummy.get_container_id()) - self.assertEquals("/ldpdummys/{}".format(dummy.pk), dummy.get_absolute_url()) + self.assertEquals("/ldpdummys/{}/".format(dummy.pk), dummy.get_absolute_url()) self.assertEquals("/ldpdummys/", Model.container_id(dummy)) - self.assertEquals("/ldpdummys/{}".format(dummy.pk), Model.resource_id(dummy)) + self.assertEquals("/ldpdummys/{}/".format(dummy.pk), Model.resource_id(dummy)) def test_from_resolve_id(self): saved_instance = Dummy.objects.create(some="text", slug="someid") - result = Model.resolve_id("/dummys/{}".format(saved_instance.slug)) + result = Model.resolve_id("/dummys/{}/".format(saved_instance.slug)) self.assertEquals(saved_instance, result) def test_resolve_container(self): @@ -33,6 +33,6 @@ class LDPModelTest(TestCase): from django.urls import get_resolver dummy = LDPDummy.objects.create(some="text") view_name = '{}-list'.format(dummy._meta.object_name.lower()) - path = '/{}{}'.format(get_resolver().reverse_dict[view_name][0][0][0], dummy.pk) + path = '/{}{}/'.format(get_resolver().reverse_dict[view_name][0][0][0], dummy.pk) self.assertEquals(path, dummy.get_absolute_url()) diff --git a/djangoldp/tests/tests_update.py b/djangoldp/tests/tests_update.py index 9d19ea91..0dbba92d 100644 --- a/djangoldp/tests/tests_update.py +++ b/djangoldp/tests/tests_update.py @@ -215,17 +215,17 @@ class Update(TestCase): } }, { - '@id': "https://happy-dev.fr/threads/{}".format(thread.pk), + '@id': "https://happy-dev.fr/threads/{}/".format(thread.pk), "author_user": { '@id': "https://happy-dev.fr/users/{}/".format(user1.pk) }, 'description': "Thread 1 UP", 'message_set': { - "@id": "https://happy-dev.fr/threads/{}/message_set".format(thread.pk) + "@id": "https://happy-dev.fr/threads/{}/message_set/".format(thread.pk) } }, { - '@id': "https://happy-dev.fr/threads/{}/message_set".format(thread.pk), + '@id': "https://happy-dev.fr/threads/{}/message_set/".format(thread.pk), "ldp:contains": [ {"@id": "https://happy-dev.fr/messages/{}/".format(message1.pk)}, {"@id": "https://happy-dev.fr/messages/{}/".format(message2.pk)}, -- GitLab