Esempio n. 1
0
 def test_register_api_allow_different_methods(self):
     metadata = APIMetadata()
     api1 = AcceptableAPI('api1', '/api', 1)
     api2 = AcceptableAPI('api2', '/api', 1, options={'methods': ['POST']})
     metadata.register_service('test', None)
     metadata.register_service('other', None)
     metadata.register_api('test', None, api1)
     metadata.register_api('other', None, api2)
Esempio n. 2
0
 def test_register_api_duplicate_name(self):
     metadata = APIMetadata()
     api1 = AcceptableAPI('api', '/api1', 1)
     api2 = AcceptableAPI('api', '/api2', 1)
     metadata.register_service('test', None)
     metadata.register_api('test', None, api1)
     self.assertRaises(
         InvalidAPI,
         metadata.register_api,
         'other', None, api2,
     )
Esempio n. 3
0
    def test_register_service_handles_multiple(self):
        metadata = APIMetadata()
        api = AcceptableAPI('api', '/api', 1)

        metadata.register_service('test', None)
        self.assertEqual(metadata.services['test', None], {})

        metadata.register_api('test', None, api)
        self.assertEqual(metadata.services['test', None], {'api': api})

        # register service again, shouldn't remove any apis
        metadata.register_service('test', None)
        self.assertEqual(metadata.services['test', None], {'api': api})
Esempio n. 4
0
    def test_bind_works(self):
        app = Flask(__name__)
        metadata = APIMetadata()
        metadata.register_service('test', None)
        api1 = AcceptableAPI(None, 'api1', '/api1', 1)
        api2 = AcceptableAPI(None, 'api2', '/api2', 1)
        metadata.register_api('test', None, api1)
        metadata.register_api('test', None, api2)

        @api1.view(introduced_at=1)
        def api1_impl():
            return 'api1'

        metadata.bind(app, 'test')

        self.assertEqual(api1_impl, app.view_functions['api1'])
        self.assertNotIn('api2', app.view_functions)

        resp = app.test_client().get('/api1')
        self.assertThat(resp, IsResponse('api1'))
Esempio n. 5
0
    def serialize_preserves_declaration_order(self):
        metadata = APIMetadata()
        svc = metadata.register_service('test', 'group')
        svc.api('api5', '/api/5', 1)
        svc.api('api1', '/api/1', 1)
        svc.api('api3', '/api/3', 1)
        svc.api('api2', '/api/2', 1)

        serialized = metadata.serialize()

        self.assertEqual(['api5', 'api1', 'api3', 'api2'],
                         list(serialized['group']['apis']))