def test_add_resource(self): def endpoint(self, params): pass resource = BaseResource(name='resource') resource.on_list = endpoint self.dispatcher.add_resource(resource) rules = list(self.dispatcher.url_map.iter_rules()) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].endpoint, endpoint)
def test_add_nested_resource_without_details(self): def endpoint(self, params): pass def nested_endpoint(self, params): pass resource = BaseResource(name='resource') resource.on_list = endpoint nested_resource = BaseResource(name='nested_resource') nested_resource.on_detail = nested_endpoint self.dispatcher.add_resource(resource) with self.assertRaises(AttributeError): self.dispatcher.add_resource(nested_resource, resource)
def test_add_nested_resource(self): def endpoint(self, params): pass def nested_endpoint(self, params): pass resource = BaseResource(name='resource') resource.on_detail = endpoint nested_resource = BaseResource(name='nested_resource') nested_resource.on_detail = nested_endpoint self.dispatcher.add_resource(resource) self.dispatcher.add_resource(nested_resource, resource) rules = list(self.dispatcher.url_map.iter_rules(nested_endpoint)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/resource/<int:resource_id>/nested_resource/<int:nested_resource_id>')
def setUp(self): def endpoint(self, params): pass self.resource = BaseResource() self.endpoint = endpoint
class TestRuleGeneration(unittest.TestCase): def setUp(self): def endpoint(self, params): pass self.resource = BaseResource() self.endpoint = endpoint def test_list(self): self.resource.on_list = self.endpoint rules = list(self.resource.get_rules(None)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/baseresource/') self.assertEqual(rules[0].endpoint, self.endpoint) self.assertEqual(rules[0].methods, {'GET', 'HEAD'}) def test_create(self): self.resource.on_create = self.endpoint rules = list(self.resource.get_rules(None)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/baseresource/') self.assertEqual(rules[0].endpoint, self.endpoint) self.assertEqual(rules[0].methods, {'POST'}) def test_detail(self): self.resource.on_detail = self.endpoint rules = list(self.resource.get_rules(None)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/baseresource/<int:baseresource_id>') self.assertEqual(rules[0].endpoint, self.endpoint) self.assertEqual(rules[0].methods, {'GET', 'HEAD'}) def test_update(self): self.resource.on_update = self.endpoint rules = list(self.resource.get_rules(None)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/baseresource/<int:baseresource_id>') self.assertEqual(rules[0].endpoint, self.endpoint) self.assertEqual(rules[0].methods, {'PUT'}) def test_delete(self): self.resource.on_delete = self.endpoint rules = list(self.resource.get_rules(None)) self.assertEqual(len(rules), 1) self.assertEqual(rules[0].rule, '/baseresource/<int:baseresource_id>') self.assertEqual(rules[0].endpoint, self.endpoint) self.assertEqual(rules[0].methods, {'DELETE'})