def test_format_response_for_a_list_of_objects(self): data = { 'limit': 20, 'offset': 0, 'total': 200, 'objects': [{ 'id': 1, 'data': 1 }] } self.req.path = "/api/v1/packages/" self.config.add_route('Attempt', '/api/v1/attempts/{id}/') self.config.add_route('Ticket', '/api/v1/tickets/{id}/') renderer = GtwMetaFactory() renderer.request = self.req renderer._current_resource_path = lambda *args, **kwargs: self.req.path + '?limit=20&offset=20' self.assertEqual( renderer.format_response(data), { 'meta': { 'total': 200, 'limit': 20, 'offset': 0, 'next': "/api/v1/packages/?limit=20&offset=20", 'previous': None, }, 'objects': [{ 'id': 1, 'data': 1, 'resource_uri': '/api/v1/packages/1/' }] })
def test_format_response_for_a_list_of_objects(self): data = {'limit': 20, 'offset': 0, 'total': 200, 'objects': [{'id':1, 'data':1}]} self.req.path = "/api/v1/packages/" self.config.add_route('Attempt', '/api/v1/attempts/{id}/') self.config.add_route('Ticket', '/api/v1/tickets/{id}/') renderer = GtwMetaFactory() renderer.request = self.req renderer._current_resource_path = lambda *args, **kwargs: self.req.path + '?limit=20&offset=20' self.assertEqual(renderer.format_response(data), { 'meta':{ 'total': 200, 'limit': 20, 'offset': 0, 'next': "/api/v1/packages/?limit=20&offset=20", 'previous': None, }, 'objects': [ {'id':1, 'data':1, 'resource_uri': '/api/v1/packages/1/' } ] })
def test_current_resource_path(self): from pyramid.interfaces import IRoutesMapper route = DummyRoute('/1/2/3') mapper = DummyRoutesMapper(route=route) self.req.matched_route = route self.req.matchdict = {} self.req.script_name = '/script_name' self.req.registry.registerUtility(mapper, IRoutesMapper) renderer = GtwMetaFactory() renderer.request = self.req result = renderer._current_resource_path({'foo': 'bar'}, limit=15, offset=50) self.assertEqual(result, '/script_name/1/2/3?foo=bar&limit=15&offset=50')
def test_add_resource_to_object_which_has_related_resources(self): data = ArticlePkgStub().to_dict() expected = {} expected.update(data) expected.update({'tickets': ['/api/v1/tickets/11/', '/api/v1/tickets/12/']}) expected.update({'attempts': ['/api/v1/attempts/1/', '/api/v1/attempts/2/']}) expected.update({'resource_uri': '/api/v1/packages/1/'}) del expected['related_resources'] renderer = GtwMetaFactory() self.req.path = "/api/v1/packages/" self.config.add_route('Attempt', '/api/v1/attempts/{id}/') self.config.add_route('Ticket', '/api/v1/tickets/{id}/') renderer.request = self.req renderer._current_resource_path = lambda *args, **kwargs: None self.assertEqual(renderer.add_resource_uri(data), expected)
def test_add_resource_to_object_which_has_related_resources(self): data = ArticlePkgStub().to_dict() expected = {} expected.update(data) expected.update( {'tickets': ['/api/v1/tickets/11/', '/api/v1/tickets/12/']}) expected.update( {'attempts': ['/api/v1/attempts/1/', '/api/v1/attempts/2/']}) expected.update({'resource_uri': '/api/v1/packages/1/'}) del expected['related_resources'] renderer = GtwMetaFactory() self.req.path = "/api/v1/packages/" self.config.add_route('Attempt', '/api/v1/attempts/{id}/') self.config.add_route('Ticket', '/api/v1/tickets/{id}/') renderer.request = self.req renderer._current_resource_path = lambda *args, **kwargs: None self.assertEqual(renderer.add_resource_uri(data), expected)