コード例 #1
0
ファイル: resources_test.py プロジェクト: thomdixon/meniscus
class TestingTokenResourceOnGet(TenantApiTestBase):
    def _set_resource(self):
        self.resource = TokenResource(self.db_handler)
        self.test_route = '/v1/tenant/{tenant_id}/token'
        self.api.add_route(self.test_route, self.resource)

    def test_return_404_for_tenant_not_found(self):
        with patch('meniscus.api.tenant.resources.find_tenant',
                   self.tenant_not_found):
            self.simulate_request(self.test_route,
                                  method='GET',
                                  headers={MESSAGE_TOKEN: self.token_original})
            self.assertEqual(falcon.HTTP_404, self.srmock.status)

    def test_should_return_200_on_get(self):
        with patch('meniscus.api.tenant.resources.find_tenant',
                   self.tenant_found):
            self.simulate_request(
                self.test_route.format(tenant_id=self.tenant_id), method='GET')
            self.assertEqual(falcon.HTTP_200, self.srmock.status)

    def test_should_return_token_json(self):
        with patch('meniscus.api.tenant.resources.find_tenant',
                   self.tenant_found):
            self.resource.on_get(self.req, self.resp, self.tenant_id)

        parsed_body = jsonutils.loads(self.resp.body)
        parsed_token = parsed_body['token']
        token_dict = self.token.format()
        for key in token_dict:
            self.assertEqual(parsed_token[key], token_dict[key])
コード例 #2
0
class TestingTokenResourceOnGet(TenantApiTestBase):

    def _set_resource(self):
        self.resource = TokenResource()
        self.test_route = '/v1/tenant/{tenant_id}/token'
        self.api.add_route(self.test_route, self.resource)

    def test_return_404_for_tenant_not_found(self):
        with patch('meniscus.api.tenant.resources.tenant_util.find_tenant',
                   self.tenant_not_found):
            self.simulate_request(
                self.test_route,
                method='GET',
                headers={MESSAGE_TOKEN: self.token_original})
            self.assertEqual(falcon.HTTP_404, self.srmock.status)

    def test_should_return_200_on_get(self):
        with patch('meniscus.api.tenant.resources.tenant_util.find_tenant',
                   self.tenant_found):
            self.simulate_request(
                self.test_route.format(
                    tenant_id=self.tenant_id
                ),
                method='GET')
            self.assertEqual(falcon.HTTP_200, self.srmock.status)

    def test_should_return_token_json(self):
        with patch('meniscus.api.tenant.resources.tenant_util.find_tenant',
                   self.tenant_found):
            self.resource.on_get(self.req, self.resp, self.tenant_id)

        parsed_body = jsonutils.loads(self.resp.body)
        parsed_token = parsed_body['token']
        token_dict = self.token.format()
        for key in token_dict:
            self.assertEqual(parsed_token[key], token_dict[key])
コード例 #3
0
def start_up():
    #Common Resource(s)
    versions = VersionResource()

    #Datastore adapter/session manager
    datastore = datasource_handler(COORDINATOR_DB)

    #Coordinator Resources
    worker_registration = WorkerRegistrationResource(datastore)
    workers_status = WorkersStatusResource(datastore)
    worker_status = WorkerStatusResource(datastore)

    #Tenant Resources
    tenant = TenantResource(datastore)
    user = UserResource(datastore)
    event_producers = EventProducersResource(datastore)
    event_producer = EventProducerResource(datastore)
    token = TokenResource(datastore)

    # Create API
    application = api = falcon.API()

    # Common Routing
    api.add_route('/', versions)

    # Coordinator Routing
    api.add_route('/v1/pairing', worker_registration)

    api.add_route('/v1/worker/{worker_id}/status', worker_status)
    api.add_route('/v1/status', workers_status)

    # Tenant Routing
    api.add_route('/v1/tenant', tenant)
    api.add_route('/v1/tenant/{tenant_id}', user)
    api.add_route('/v1/tenant/{tenant_id}/producers', event_producers)
    api.add_route('/v1/tenant/{tenant_id}/producers/{event_producer_id}',
                  event_producer)

    api.add_route('/v1/tenant/{tenant_id}/token', token)

    return application
コード例 #4
0
ファイル: app.py プロジェクト: thomdixon/meniscus
def start_up():
    #Common Resource(s)
    versions = VersionResource()

    #Datastore adapter/session manager
    datastore = datasource_handler(COORDINATOR_DB)

    #Tenant Resources
    tenant = TenantResource(datastore)
    user = UserResource(datastore)
    event_producers = EventProducersResource(datastore)
    event_producer = EventProducerResource(datastore)
    token = TokenResource(datastore)

    # Create API
    application = api = falcon.API()

    # Version Routing
    api.add_route('/', versions)

    # Tenant Routing
    api.add_route('/v1/tenant', tenant)
    api.add_route('/v1/tenant/{tenant_id}', user)
    api.add_route('/v1/tenant/{tenant_id}/producers', event_producers)
    api.add_route('/v1/tenant/{tenant_id}/producers/{event_producer_id}',
                  event_producer)
    api.add_route('/v1/tenant/{tenant_id}/token', token)

    celery.conf.CELERYBEAT_SCHEDULE = {
        'worker_stats': {
            'task': 'stats.publish',
            'schedule': timedelta(seconds=publish_stats.WORKER_STATUS_INTERVAL)
        },
    }

    #include blank argument to celery in order for beat to start correctly
    celery_proc = Process(target=celery.worker_main, args=[['', '--beat']])
    celery_proc.start()
    _LOG.info('Celery started as process: {}'.format(celery_proc.pid))

    return application
コード例 #5
0
ファイル: resources_test.py プロジェクト: thomdixon/meniscus
class TestingTokenResourceValidation(TenantApiTestBase):
    def _set_resource(self):
        self.resource = TokenResource(self.db_handler)

    def test_iso_timestamp_format_should_throw_exception_for_time_limit(self):
        bad_time_format = "2013-03-19"
        new_token = Token('ffe7104e-8d93-47dc-a49a-8fb0d39e5192', None,
                          bad_time_format)
        self.assertRaises(ValueError,
                          self.resource._validate_token_min_time_limit_reached,
                          new_token)

    def test_should_throw_exception_for_time_limit_not_reached(self):
        new_token = Token()
        self.assertRaises(falcon.HTTPError,
                          self.resource._validate_token_min_time_limit_reached,
                          new_token)

    def test_should_not_throw_exception_for_time_limit(self):
        self.assertTrue(
            self.resource._validate_token_min_time_limit_reached(self.token))
コード例 #6
0
def start_up():
    #Common Resource(s)
    versions = VersionResource()

    #Coordinator Resources
    workers_status = WorkersStatusResource()
    worker_status = WorkerStatusResource()

    #Tenant Resources
    tenant = TenantResource()
    user = UserResource()
    event_producers = EventProducersResource()
    event_producer = EventProducerResource()
    token = TokenResource()

    # Create API
    application = api = falcon.API()

    # Common Routing
    api.add_route('/', versions)

    api.add_route('/v1/worker/{hostname}/status', worker_status)
    api.add_route('/v1/status', workers_status)

    # Tenant Routing
    api.add_route('/v1/tenant', tenant)
    api.add_route('/v1/tenant/{tenant_id}', user)
    api.add_route('/v1/tenant/{tenant_id}/producers', event_producers)
    api.add_route('/v1/tenant/{tenant_id}/producers/{event_producer_id}',
                  event_producer)

    api.add_route('/v1/tenant/{tenant_id}/token', token)

    celery_proc = Process(target=celery.worker_main)
    celery_proc.start()
    _LOG.info('Celery started as process: {}'.format(celery_proc.pid))

    return application
コード例 #7
0
class TestingTokenResourceValidation(TenantApiTestBase):

    def _set_resource(self):
        self.resource = TokenResource()

    def test_iso_timestamp_format_should_throw_exception_for_time_limit(self):
        bad_time_format = "2013-03-19"
        new_token = Token('ffe7104e-8d93-47dc-a49a-8fb0d39e5192',
                          None, bad_time_format)
        self.assertRaises(
            ValueError,
            self.resource._validate_token_min_time_limit_reached,
            new_token)

    def test_should_throw_exception_for_time_limit_not_reached(self):
        new_token = Token()
        self.assertRaises(
            falcon.HTTPError,
            self.resource._validate_token_min_time_limit_reached,
            new_token)

    def test_should_not_throw_exception_for_time_limit(self):
        self.assertTrue(
            self.resource._validate_token_min_time_limit_reached(self.token))
コード例 #8
0
ファイル: app.py プロジェクト: thomdixon/meniscus
#Common Resource(s)
versions = VersionResource()

#Coordinator Resources
db_handler = datasource_handler(COORDINATOR_DB)
worker_registration = WorkerRegistrationResource(db_handler)
workers_status = WorkersStatusResource(db_handler)
worker_status = WorkerStatusResource(db_handler)

#Tenant Resources
tenant = TenantResource(db_handler)
user = UserResource(db_handler)
event_producers = EventProducersResource(db_handler)
event_producer = EventProducerResource(db_handler)
token = TokenResource(db_handler)

# Create API
application = api = falcon.API()

# Common Routing
api.add_route('/', versions)

# Coordinator Routing
api.add_route('/v1/pairing', worker_registration)

api.add_route('/v1/worker/{worker_id}/status', worker_status)
api.add_route('/v1/status', workers_status)

# Tenant Routing
api.add_route('/v1/tenant', tenant)
コード例 #9
0
ファイル: resources_test.py プロジェクト: thomdixon/meniscus
 def _set_resource(self):
     self.resource = TokenResource(self.db_handler)
コード例 #10
0
ファイル: resources_test.py プロジェクト: thomdixon/meniscus
 def _set_resource(self):
     self.resource = TokenResource(self.db_handler)
     self.test_route = '/v1/tenant/{tenant_id}/token'
     self.api.add_route(self.test_route, self.resource)
コード例 #11
0
 def _set_resource(self):
     self.resource = TokenResource()
コード例 #12
0
 def _set_resource(self):
     self.resource = TokenResource()
     self.test_route = '/v1/tenant/{tenant_id}/token'
     self.api.add_route(self.test_route, self.resource)
コード例 #13
0
 def _set_resource(self):
     self.resource = TokenResource()
コード例 #14
0
ファイル: resources_test.py プロジェクト: jbenito/meniscus
 def _set_resource(self):
     self.resource = TokenResource(self.db_handler)