def test_microversion_handling(self): with direct.PlacementDirect(CONF) as client: # create parent parent_data = { 'name': uuidsentinel.p_rp, 'uuid': uuidsentinel.p_rp } resp = client.post('/resource_providers', json=parent_data) self.assertTrue(resp, resp.text) # attempt to create child data = {'name': 'child', 'parent_provider_uuid': uuidsentinel.p_rp} # no microversion, 400 resp = client.post('/resource_providers', json=data) self.assertFalse(resp) self.assertEqual(400, resp.status_code) # low microversion, 400 resp = client.post('/resource_providers', json=data, microversion='1.13') self.assertFalse(resp) self.assertEqual(400, resp.status_code) resp = client.post('/resource_providers', json=data, microversion='1.14') self.assertTrue(resp, resp.text)
def test_verify_policy(self): with direct.PlacementDirect(CONF, latest_microversion=True) as client: for route, methods in handler.ROUTE_DECLARATIONS.items(): if route in self.EXCEPTIONS: continue for method in methods: self._test_request_403(client, method, route)
def test_create_resource_provider(self): data = {'name': 'fake'} with direct.PlacementDirect(CONF) as client: resp = client.post('/resource_providers', json=data) self.assertTrue(resp) resp = client.get('/resource_providers') self.assertTrue(resp) data = resp.json() self.assertEqual(1, len(data['resource_providers']))
def test_json_validation_happens(self): data = {'name': 'fake', 'cowsay': 'moo'} with direct.PlacementDirect(CONF) as client: # TODO(efried): Set raise_exc globally when # https://review.openstack.org/#/c/574784/ is released. resp = client.post('/resource_providers', json=data, raise_exc=False) self.assertFalse(resp) self.assertEqual(400, resp.status_code)
def test_json_validation_happens(self): data = {'name': 'fake', 'cowsay': 'moo'} with direct.PlacementDirect(CONF) as client: resp = client.post('/resource_providers', json=data) self.assertFalse(resp) self.assertEqual(400, resp.status_code)
def test_get_resource_providers(self): with direct.PlacementDirect(CONF) as client: resp = client.get('/resource_providers') self.assertTrue(resp) data = resp.json() self.assertEqual([], data['resource_providers'])
def test_direct_is_there(self): with direct.PlacementDirect(CONF) as client: resp = client.get('/') self.assertTrue(resp) data = resp.json() self.assertEqual('v1.0', data['versions'][0]['id'])