def create_server(self, context, values): server = models.Server() server.update(values) try: server.save(self.session) except exceptions.Duplicate: raise exceptions.DuplicateServer() return dict(server)
def update_server(self, context, server_id, values): server = self._get_server(context, server_id) server.update(values) try: server.save(self.session) except exceptions.Duplicate: raise exceptions.DuplicateServer() return dict(server)
class ApiV1ServersTest(ApiV1Test): __test__ = True def test_create_server(self): # Create a server fixture = self.get_server_fixture(0) response = self.post('servers', data=fixture) self.assertIn('id', response.json) self.assertIn('name', response.json) self.assertEqual(response.json['name'], fixture['name']) def test_create_server_junk(self): # Create a server fixture = self.get_server_fixture(0) # Add a junk property fixture['junk'] = 'Junk Field' # Ensure it fails with a 400 self.post('servers', data=fixture, status_code=400) @patch.object(central_service.Service, 'create_server', side_effect=rpc_common.Timeout()) def test_create_server_timeout(self, _): # Create a server fixture = self.get_server_fixture(0) self.post('servers', data=fixture, status_code=504) @patch.object(central_service.Service, 'create_server', side_effect=exceptions.DuplicateServer()) def test_create_server_duplicate(self, _): # Create a server fixture = self.get_server_fixture(0) self.post('servers', data=fixture, status_code=409) def test_get_servers(self): response = self.get('servers') self.assertIn('servers', response.json) self.assertEqual(0, len(response.json['servers'])) # Create a server self.create_server() response = self.get('servers') self.assertIn('servers', response.json) self.assertEqual(1, len(response.json['servers'])) # Create a second server self.create_server(fixture=1) response = self.get('servers') self.assertIn('servers', response.json) self.assertEqual(2, len(response.json['servers'])) @patch.object(central_service.Service, 'get_servers', side_effect=rpc_common.Timeout()) def test_get_servers_timeout(self, _): self.get('servers', status_code=504) def test_get_server(self): # Create a server server = self.create_server() response = self.get('servers/%s' % server['id']) self.assertIn('id', response.json) self.assertEqual(response.json['id'], server['id']) @patch.object(central_service.Service, 'get_server', side_effect=rpc_common.Timeout()) def test_get_server_timeout(self, _): # Create a server server = self.create_server() self.get('servers/%s' % server['id'], status_code=504) def test_get_server_missing(self): self.get('servers/2fdadfb1-cf96-4259-ac6b-bb7b6d2ff980', status_code=404) def test_update_server(self): # Create a server server = self.create_server() data = {'name': 'test.example.org.'} response = self.put('servers/%s' % server['id'], data=data) self.assertIn('id', response.json) self.assertEqual(response.json['id'], server['id']) self.assertIn('name', response.json) self.assertEqual(response.json['name'], 'test.example.org.') def test_update_server_junk(self): # Create a server server = self.create_server() data = {'name': 'test.example.org.', 'junk': 'Junk Field'} self.put('servers/%s' % server['id'], data=data, status_code=400) @patch.object(central_service.Service, 'update_server', side_effect=rpc_common.Timeout()) def test_update_server_timeout(self, _): # Create a server server = self.create_server() data = {'name': 'test.example.org.'} self.put('servers/%s' % server['id'], data=data, status_code=504) @patch.object(central_service.Service, 'update_server', side_effect=exceptions.DuplicateServer()) def test_update_server_duplicate(self, _): server = self.create_server() data = {'name': 'test.example.org.'} self.put('servers/%s' % server['id'], data=data, status_code=409) def test_update_server_missing(self): data = {'name': 'test.example.org.'} self.get('servers/2fdadfb1-cf96-4259-ac6b-bb7b6d2ff980', data=data, status_code=404) def test_delete_server(self): # Create a server server = self.create_server() self.delete('servers/%s' % server['id']) # Esnure we can no longer fetch the server self.get('servers/%s' % server['id'], status_code=404) @patch.object(central_service.Service, 'delete_server', side_effect=rpc_common.Timeout()) def test_delete_server_timeout(self, _): # Create a server server = self.create_server() self.delete('servers/%s' % server['id'], status_code=504) def test_delete_server_missing(self): self.delete('servers/2fdadfb1-cf96-4259-ac6b-bb7b6d2ff980', status_code=404)