def test_not_all_pks(self): class Fake(ResourceBase): pks = ['id'] props = dict(val=1) adapter = HalAdapter(None) rel = Fake(properties=props) resp = adapter._generate_relationship(rel, False) self.assertIsNone(resp)
def test_list_relationships(self): class Fake(ResourceBase): pass props = dict(val=1, val2=2) props2 = dict(val=3, val4=4) adapter = HalAdapter(None) rel1 = Fake(properties=props) rel2 = Fake(properties=props2) resp = adapter._generate_relationship([rel1, rel2], True) self.assertListEqual([props, props2], resp)
def setUp(self): ResourceMetaClass.registered_names_map.clear() ResourceMetaClass.registered_resource_classes.clear() HelloWorldViewset = get_refreshed_helloworld_viewset() self.properties = {'content': 'hello'} self.resource = HelloWorldViewset.hello(RequestContainer(query_args=dict(content='hello', related='world'))) self.adapter = HalAdapter(self.resource) self.data = json.loads(self.adapter.formatted_body)
def test_embedded_relationships(self): class Fake(ResourceBase): pass props = dict(_embedded={}, _links=dict(self=dict(href='/fake')), val=1, val2=2) rel = Fake(properties=props) adapter = HalAdapter(None) resp = adapter._generate_relationship(rel, True) self.assertEqual(resp, props)
def test_list_relationship_not_all_pks(self): class Fake(ResourceBase): pks = ['id'] adapter = HalAdapter(None) props1 = dict(id=1, val=2) props2 = dict(val=1) rel1 = Fake(properties=props1) rel2 = Fake(properties=props2) resp = adapter._generate_relationship([rel1, rel2], True) self.assertEqual(len(resp), 1) self.assertEqual(resp[0], props1)
def test_generate_relationshi_embedded(self): """ Tests that embedded relationships are appropriately constructed. """ class Fake(ResourceBase): pass res = Fake(properties=dict(x=1, y=2)) relation_list = [(res, 'res', True,)] adapter = HalAdapter(Fake()) embedded, links = adapter.generate_relationship(relation_list) self.assertDictEqual(embedded['res'], res.properties)
def test_missing_generate_relationship(self): """ Tests attempting to generate a relationship when not all of the pks are available. """ class Fake(ResourceBase): pks = ('id',) res = Fake(properties=dict(x=1, y=2)) relation_list = [(res, 'res', True,)] adapter = HalAdapter(Fake()) embedded, links = adapter.generate_relationship(relation_list) self.assertDictEqual(embedded, {}) self.assertDictEqual(links, {})
def test_content_type(self): adapter = HalAdapter(None) self.assertEqual(adapter.extra_headers, {'Content-Type': 'application/hal+json'})
def test_hal_adapter_formatted_body(self): adapter = HalAdapter(self.resource) for i in six.moves.range(self.runs): x = adapter.formatted_body