Пример #1
0
 def test_embedded_relationships(self):
     class Fake(ResourceBase):
         pass
     props = dict(val=1, val2=2)
     rel = Fake(properties=props)
     adapter = HalAdapter(None)
     resp = adapter._generate_relationship(rel, True)
     self.assertEqual(resp, props)
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
    def test_embedded_relationships(self):
        class Fake(ResourceBase):
            pass

        props = dict(val=1, val2=2)
        rel = Fake(properties=props)
        adapter = HalAdapter(None)
        resp = adapter._generate_relationship(rel, True)
        self.assertEqual(resp, props)
Пример #5
0
 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)
Пример #6
0
    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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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)
Пример #11
0
    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, {})
Пример #12
0
    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, {})
Пример #13
0
    def test_generate_relationship_embedded(self):
        """
        Tests that embedded relationships are
        appropriately constructed.
        """
        class Fake(ResourceBase):
            pass

        res = Fake(properties=dict(x=1, y=2))

        expected_res = res.properties.copy()
        expected_res.update(dict(_links=dict(self=dict(href=res.url)), _embedded={}))
        relation_list = [(res, 'res', True,)]
        adapter = HalAdapter(Fake())
        embedded, links = adapter.generate_relationship(relation_list)
        self.assertDictEqual(embedded['res'], expected_res)
Пример #14
0
 def test_format_exception(self):
     exc = RestException("blah blah", status_code=458)
     json_dump, content_type, status_code = HalAdapter.format_exception(exc)
     data = json.loads(json_dump)
     self.assertEqual(HalAdapter.formats[0], content_type)
     self.assertEqual(status_code, 458)
     self.assertIn("_embedded", data)
     self.assertIn("_links", data)
     self.assertEqual(data["message"], "blah blah")
Пример #15
0
 def test_format_exception(self):
     exc = RestException('blah blah', status_code=458)
     json_dump, content_type, status_code = HalAdapter.format_exception(exc)
     data = json.loads(json_dump)
     self.assertEqual(HalAdapter.formats[0], content_type)
     self.assertEqual(status_code, 458)
     self.assertIn('_embedded', data)
     self.assertIn('_links', data)
     self.assertEqual(data['message'], 'blah blah')
Пример #16
0
 def test_format_exception(self):
     exc = RestException('blah blah', status_code=458)
     json_dump, content_type, status_code = HalAdapter.format_exception(exc)
     data = json.loads(json_dump)
     self.assertEqual(HalAdapter.formats[0], content_type)
     self.assertEqual(status_code, 458)
     self.assertIn('_embedded', data)
     self.assertIn('_links', data)
     self.assertEqual(data['message'], 'blah blah')
Пример #17
0
    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)
Пример #18
0
    def test_list_relationship_not_all_pks(self):
        class Fake(ResourceBase):
            pks = ['id']

        adapter = HalAdapter(None)
        props1 = dict(
            _embedded={},
            _links=dict(self=dict(href='/fake/1')),
            id=1, val=2
        )
        props2 = dict(
            _embedded={},
            _links=dict(self=dict(href='/fake')),
            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)
Пример #19
0
 def test_content_type(self):
     adapter = HalAdapter(None)
     self.assertEqual(adapter.extra_headers,
                      {'Content-Type': 'application/hal+json'})
Пример #20
0
 def test_format_request(self):
     """Dumb test for format_request"""
     request = RequestContainer()
     response = HalAdapter.format_request(request)
     self.assertIs(response, request)
Пример #21
0
 def test_hal_adapter_formatted_body(self):
     adapter = HalAdapter(self.resource)
     for i in six.moves.range(self.runs):
         x = adapter.formatted_body
Пример #22
0
 def test_format_request(self):
     """Dumb test for format_request"""
     request = RequestContainer()
     response = HalAdapter.format_request(request)
     self.assertIs(response, request)