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