def test_construct_relationship_embedded(self): """An embedded relationship""" class MyResource(ResourceBase): _relationships = (Relationship("related", relation="RelatedResource", embedded=True),) class RelatedResource(ResourceBase): pks = ("id",) res = MyResource(properties=dict(related=dict(id=1, value=2))) adapter = JSONAPIAdapter(res, base_url="/blah") resp = adapter._construct_relationships(res) self.assertIn("related", resp) self.assertIn("data", resp["related"]) data = resp["related"]["data"] self.assertEqual(len(data), 1) data = data[0] self.assertIn("attributes", data) self.assertDictEqual( dict( type="related_resource", id="1", links=dict(self="/blah/related_resource/1"), relationships={}, attributes=dict(id=1, value=2), ), data, )
def test_construct_relationship(self): """Single relationship""" class MyResource(ResourceBase): _relationships = (Relationship("related", relation="RelatedResource"),) class RelatedResource(ResourceBase): pks = ("id",) res = MyResource(properties=dict(related=dict(id=1))) adapter = JSONAPIAdapter(res, base_url="/blah") resp = adapter._construct_relationships(res) self.assertIn("related", resp) self.assertIn("data", resp["related"]) data = resp["related"]["data"] self.assertEqual(len(data), 1) data = data[0] self.assertDictEqual(dict(type="related_resource", id="1", links=dict(self="/blah/related_resource/1")), data)
def test_construct_relationship_list(self): """A ListRelationship instance""" class MyResource(ResourceBase): _relationships = ListRelationship('related', relation='RelatedResource'), class RelatedResource(ResourceBase): pks = 'id', res = MyResource(properties=dict(related=[dict(id=2), dict(id=1)])) adapter = JSONAPIAdapter(res, base_url='/blah') resp = adapter._construct_relationships(res) self.assertIn('related', resp) self.assertIn('data', resp['related']) data = resp['related']['data'] self.assertEqual(len(data), 2) for related in data: self.assertEqual(related['type'], 'related_resource') self.assertTrue(related['links']['self'].startswith('/blah/related_resource'))
def test_construct_relationship(self): """Single relationship""" class MyResource(ResourceBase): _relationships = Relationship('related', relation='RelatedResource'), class RelatedResource(ResourceBase): pks = 'id', res = MyResource(properties=dict(related=dict(id=1))) adapter = JSONAPIAdapter(res, base_url='/blah') resp = adapter._construct_relationships(res) self.assertIn('related', resp) self.assertIn('data', resp['related']) data = resp['related']['data'] self.assertEqual(len(data), 1) data = data[0] self.assertDictEqual(dict(type='related_resource', id='1', links=dict(self='/blah/related_resource/1')), data)
def test_construct_relationship_list(self): """A ListRelationship instance""" class MyResource(ResourceBase): _relationships = (ListRelationship("related", relation="RelatedResource"),) class RelatedResource(ResourceBase): pks = ("id",) res = MyResource(properties=dict(related=[dict(id=2), dict(id=1)])) adapter = JSONAPIAdapter(res, base_url="/blah") resp = adapter._construct_relationships(res) self.assertIn("related", resp) self.assertIn("data", resp["related"]) data = resp["related"]["data"] self.assertEqual(len(data), 2) for related in data: self.assertEqual(related["type"], "related_resource") self.assertTrue(related["links"]["self"].startswith("/blah/related_resource"))
def test_construct_relationship_list(self): """A ListRelationship instance""" class MyResource(ResourceBase): _relationships = ListRelationship('related', relation='RelatedResource'), class RelatedResource(ResourceBase): pks = 'id', res = MyResource(properties=dict(related=[dict(id=2), dict(id=1)])) adapter = JSONAPIAdapter(res, base_url='/blah') resp = adapter._construct_relationships(res) self.assertIn('related', resp) self.assertIn('data', resp['related']) data = resp['related']['data'] self.assertEqual(len(data), 2) for related in data: self.assertEqual(related['type'], 'related_resource') self.assertTrue( related['links']['self'].startswith('/blah/related_resource'))
def test_construct_relationship(self): """Single relationship""" class MyResource(ResourceBase): _relationships = Relationship('related', relation='RelatedResource'), class RelatedResource(ResourceBase): pks = 'id', res = MyResource(properties=dict(related=dict(id=1))) adapter = JSONAPIAdapter(res, base_url='/blah') resp = adapter._construct_relationships(res) self.assertIn('related', resp) self.assertIn('data', resp['related']) data = resp['related']['data'] self.assertEqual(len(data), 1) data = data[0] self.assertDictEqual( dict(type='related_resource', id='1', links=dict(self='/blah/related_resource/1')), data)