Skip to content
Snippets Groups Projects
Commit f9c6853e authored by Jean-Baptiste's avatar Jean-Baptiste
Browse files

update: add test reproducing the issue 85

parent 67c7eba4
No related branches found
No related tags found
No related merge requests found
...@@ -14,10 +14,12 @@ class JobOffer(models.Model): ...@@ -14,10 +14,12 @@ class JobOffer(models.Model):
class Thread(models.Model): class Thread(models.Model):
description = models.CharField(max_length=255, blank=True, null=True) description = models.CharField(max_length=255, blank=True, null=True)
author_user = models.ForeignKey(settings.AUTH_USER_MODEL)
class Message(models.Model): class Message(models.Model):
text = models.CharField(max_length=255, blank=True, null=True) text = models.CharField(max_length=255, blank=True, null=True)
thread = models.ForeignKey(Thread, on_delete=models.DO_NOTHING) thread = models.ForeignKey(Thread, on_delete=models.DO_NOTHING)
author_user = models.ForeignKey(settings.AUTH_USER_MODEL)
from django.contrib.auth.models import User
from django.test import TestCase from django.test import TestCase
from djangoldp.serializers import LDPSerializer from djangoldp.serializers import LDPSerializer
...@@ -136,9 +137,10 @@ class Serializer(TestCase): ...@@ -136,9 +137,10 @@ class Serializer(TestCase):
self.assertEquals(skills[2].title, "skill2 UP") # title updated self.assertEquals(skills[2].title, "skill2 UP") # title updated
def test_update_list_with_reverse_relation(self): def test_update_list_with_reverse_relation(self):
thread = Thread.objects.create(description="Thread 1") user1 = User.objects.create()
message1 = Message.objects.create(text="Message 1", thread=thread) thread = Thread.objects.create(description="Thread 1", author_user=user1)
message2 = Message.objects.create(text="Message 2", thread=thread) message1 = Message.objects.create(text="Message 1", thread=thread, author_user=user1)
message2 = Message.objects.create(text="Message 2", thread=thread, author_user=user1)
json = {"@graph": [ json = {"@graph": [
...@@ -173,3 +175,58 @@ class Serializer(TestCase): ...@@ -173,3 +175,58 @@ class Serializer(TestCase):
self.assertIs(result.message_set.count(), 2) self.assertIs(result.message_set.count(), 2)
self.assertEquals(messages[0].text, "Message 1 UP") self.assertEquals(messages[0].text, "Message 1 UP")
self.assertEquals(messages[1].text, "Message 2 UP") self.assertEquals(messages[1].text, "Message 2 UP")
def test_add_new_element_with_foreign_key_id(self):
user1 = User.objects.create()
thread = Thread.objects.create(description="Thread 1", author_user=user1)
message1 = Message.objects.create(text="Message 1", thread=thread, author_user=user1)
message2 = Message.objects.create(text="Message 2", thread=thread, author_user=user1)
json = {"@graph": [
{"@id": "https://happy-dev.fr/messages/{}/".format(message1.pk),
"text": "Message 1 UP",
"author_user_id": user1.pk,
},
{"@id": "https://happy-dev.fr/messages/{}/".format(message2.pk),
"text": "Message 2 UP",
"author_user_id": user1.pk,
},
{"@id": "_:b1",
"text": "Message 3 NEW",
"author_user_id": user1.pk,
},
{
'@id': "https://happy-dev.fr/threads/{}".format(thread.pk),
"author_user_id": 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),
"ldp:contains": [
{"@id": "https://happy-dev.fr/messages/{}/".format(message1.pk)},
{"@id": "https://happy-dev.fr/messages/{}/".format(message2.pk)},
{"@id": "_:b1"}
]
}
]
}
meta_args = {'model': Thread, 'depth': 1, 'fields': ("@id", "description", "message_set" )}
meta_class = type('Meta', (), meta_args)
serializer_class = type(LDPSerializer)('ThreadSerializer', (LDPSerializer,), {'Meta': meta_class})
serializer = serializer_class(data=json, instance=thread)
serializer.is_valid()
result = serializer.save()
messages = result.message_set.all().order_by('text')
self.assertEquals(result.description, "Thread 1 UP")
self.assertIs(result.message_set.count(), 3)
self.assertEquals(messages[0].text, "Message 1 UP")
self.assertEquals(messages[1].text, "Message 2 UP")
self.assertEquals(messages[2].text, "Message 3 NEW")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment