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

test: add test for issue #134

parent da340dd2
No related branches found
No related tags found
1 merge request!63Resolve "OneToOneField relationship : NOT NULL constraint failed"
Pipeline #949 passed with stage
in 1 minute and 25 seconds
...@@ -60,7 +60,7 @@ class LDListMixin: ...@@ -60,7 +60,7 @@ class LDListMixin:
object_list)) object_list))
else: else:
container_id = Model.container_id(self.parent.instance) container_id = Model.container_id(self.parent.instance)
obj = next(filter(lambda o: container_id in o[self.parent.url_field_name], object_list)) obj = next(filter(lambda o: container_id.lstrip('/') in o[self.parent.url_field_name], object_list))
list = super().get_value(obj) list = super().get_value(obj)
try: try:
list = next( list = next(
...@@ -256,7 +256,7 @@ class LDPSerializer(HyperlinkedModelSerializer): ...@@ -256,7 +256,7 @@ class LDPSerializer(HyperlinkedModelSerializer):
return super().get_value(obj) return super().get_value(obj)
else: else:
resource_id = Model.resource_id(self.parent.instance) resource_id = Model.resource_id(self.parent.instance)
obj = next(filter(lambda o: resource_id in o[self.parent.url_field_name], object_list)) obj = next(filter(lambda o: resource_id.lstrip('/') in o[self.parent.url_field_name], object_list))
return super().get_value(obj) return super().get_value(obj)
except KeyError: except KeyError:
return super().get_value(dictionary) return super().get_value(dictionary)
......
from django.conf import settings from django.conf import settings
from django.contrib.auth import get_user_model
from django.db import models from django.db import models
from djangoldp.models import Model from djangoldp.models import Model
...@@ -78,3 +79,6 @@ class Post(Model): ...@@ -78,3 +79,6 @@ class Post(Model):
class Meta: class Meta:
auto_author = 'author' auto_author = 'author'
get_user_model()._meta.serializer_fields = ['@id', 'username', 'first_name', 'last_name', 'email', 'conversation_set']
...@@ -266,7 +266,28 @@ class Update(TestCase): ...@@ -266,7 +266,28 @@ class Update(TestCase):
body = [{ body = [{
'@id': '/posts/{}/'.format(post.pk), '@id': '/posts/{}/'.format(post.pk),
'http://happy-dev.fr/owl/#content': "post content"}] 'http://happy-dev.fr/owl/#content': "post content"}]
response = self.client.put('/posts/{}/'.format(post.pk), data=json.dumps(body), content_type='application/ld+json') response = self.client.put('/posts/{}/'.format(post.pk), data=json.dumps(body),
content_type='application/ld+json')
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEquals(response.data['content'], "post content") self.assertEquals(response.data['content'], "post content")
self.assertIn('location', response._headers) self.assertIn('location', response._headers)
def test_create_sub_object_in_existing_object_with_reverse_relation(self):
user = User.objects.create(username="alex", password="test")
body = [
{
'@id': "_:b975",
'http://happy-dev.fr/owl/#description': "conversation description"
},
{
'@id': '/users/{}/'.format(user.pk),
"http://happy-dev.fr/owl/#first_name": "Alexandre",
"http://happy-dev.fr/owl/#last_name": "Bourlier",
"http://happy-dev.fr/owl/#username": "alex",
'http://happy-dev.fr/owl/#conversation_set': {'@id': "_:b975"}
}
]
response = self.client.put('/users/{}/'.format(user.pk), data=json.dumps(body),
content_type='application/ld+json')
self.assertEqual(response.status_code, 200)
self.assertIn('conversation_set', response.data)
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