def test_get_filled_base(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) ret = do_get('{0}/{1}'.format(self.url, self.service)) self.assertEqual(ret.json().sort(key=lambda item: item['id']), CELLS.sort(key=lambda item: item['id'])) self.assertEqual(ret.status_code, 200)
def test_get_grids(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) good_responses = copy.deepcopy(GRIDS) for good_response in good_responses: ret = do_get('{0}/{1}/{2}'.format(self.url, self.service, good_response['id'])) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 200)
def test_get_empty_base(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) do_delete('{0}/{1}'.format(self.url, self.service)) ret = do_get('{0}/{1}'.format(self.url, self.service)) self.assertEqual(ret.json(), []) self.assertEqual(ret.status_code, 200)
def test_delete_for_grid_not_found(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) for i in range(10): ret = do_delete('{0}/{1}/{2}'.format(self.url, self.service, str(uuid.uuid4()))) self.assertEqual(ret.json(), 'Not found') self.assertEqual(ret.status_code, 404)
def test_get_empty_base_for_grid(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) do_delete('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: ret = do_get('{0}/{1}/{2}'.format(self.url, self.service, grid['id'])) self.assertEqual(ret.json(), []) self.assertEqual(ret.status_code, 200)
def test_post_duplicate_by_name(self): do_init_grids('{0}/{1}'.format(self.url, self.service)) good_responses = copy.deepcopy(GRIDS) for good_response in good_responses: good_response['status'] = 'Grid with this name already in index' ret = do_post('{0}/{1}'.format(self.url, self.service), GRIDS) self.assertEqual(ret.json().sort(key=lambda item: item['name']), good_responses.sort(key=lambda item: item['name'])) self.assertEqual(ret.status_code, 200)
def test_put_updated_grids(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) good_responses = copy.deepcopy(GRIDS) for good_response in good_responses: good_response['status'] = 'updated' for request in GRIDS: good_response = do_search('id', request['id'], good_responses) ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, request['id']), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 200)
def test_delete_grids(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) requests = copy.deepcopy(GRIDS) good_responses = copy.deepcopy(requests) for good_response in good_responses: good_response['status'] = 'deleted' for request in requests: good_response = do_search('id', request['id'], good_responses) ret = do_delete('{0}/{1}/{2}'.format(self.url, self.service, request['id'])) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 200)
def test_put_new_grid(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) request = { 'id': str(uuid.uuid4()), 'name': 'grid', 'description': 'one more grid' } good_response = copy.deepcopy(request) good_response['status'] = 'created' ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, request['id']), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 200)
def test_post_duplicate_by_id(self): do_init_grids('{0}/{1}'.format(self.url, self.service)) requests = copy.deepcopy(GRIDS) for request in requests: request['name'] = ''.join(choice(ascii_letters) for i in range(12)) good_responses = copy.deepcopy(requests) for good_response in good_responses: good_response['status'] = 'Grid with this id already in index' ret = do_post('{0}/{1}'.format(self.url, self.service), requests) self.assertEqual(ret.json().sort(key=lambda item: item['name']), good_responses.sort(key=lambda item: item['name'])) self.assertEqual(ret.status_code, 200)
def test_get_filled_base_for_grid(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: ret = do_get('{0}/{1}/{2}'.format(self.url, self.service, grid['id'])) good_response = [] for cell in CELLS: if cell['grid_id'] == grid['id']: good_response.append(cell) self.assertEqual(ret.json().sort(key=lambda item: item['id']), good_response.sort(key=lambda item: item['id'])) self.assertEqual(ret.status_code, 200)
def test_put_grid_with_new_id(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) requests = copy.deepcopy(GRIDS) for request in requests: request['id'] = str(uuid.uuid4()) good_responses = copy.deepcopy(requests) for good_response in good_responses: good_response['status'] = 'the parameters id can not be changed' for request in requests: good_response = do_search('id', request['id'], good_responses) ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, request['id']), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 400)
def test_put_grid_without_id_in_body(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) requests = copy.deepcopy(GRIDS) for request in requests: request.pop('id') good_responses = copy.deepcopy(GRIDS) for good_response in good_responses: good_response['status'] = 'updated' for grid in GRIDS: request = do_search('name', grid['name'], requests) good_response = do_search('name', grid['name'], good_responses) ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, grid['id']), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 200)
def test_post_cells_grid_not_found(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) do_delete('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: request = [] for cell in CELLS: if cell['grid_id'] == grid['id']: request.append(cell) ret = do_post( "{0}/{1}/{2}".format(self.url, self.service, str(uuid.uuid4())), request) self.assertEqual(ret.json(), 'Not found') self.assertEqual(ret.status_code, 404)
def test_delete_for_grid(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: good_responses = [] for cell in CELLS: if cell['grid_id'] == grid['id']: good_responses.append(cell) for good_response in good_responses: good_response['status'] = 'deleted' ret = do_delete("{0}/{1}/{2}".format(self.url, self.service, grid['id'])) self.assertEqual(ret.json().sort(key=lambda item: item['id']), good_responses.sort(key=lambda item: item['id'])) self.assertEqual(ret.status_code, 200)
def test_post_cells_duplicate_by_id(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: request = [] for cell in CELLS: if cell['grid_id'] == grid['id']: request.append(cell) good_responses = copy.deepcopy(request) for good_response in good_responses: good_response['status'] = 'Cell with this id already in index' ret = do_post( "{0}/{1}/{2}".format(self.url, self.service, grid['id']), request) self.assertEqual(ret.json().sort(key=lambda item: item['id']), good_responses.sort(key=lambda item: item['id'])) self.assertEqual(ret.status_code, 200)
def test_post_cells_grid_not_found(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) do_init_cells('{0}/{1}'.format(self.url, self.service)) do_delete('{0}/{1}'.format(self.url, self.service)) for grid in GRIDS: request = [] for cell in CELLS: if cell['grid_id'] == grid['id']: cell['grid_id'] = str(uuid.uuid4()) request.append(cell) good_responses = copy.deepcopy(request) for good_response in good_responses: good_response['status'] = 'Grid not match' ret = do_post( "{0}/{1}/{2}".format(self.url, self.service, grid['id']), request) self.assertEqual(ret.json().sort(key=lambda item: item['id']), good_responses.sort(key=lambda item: item['id'])) self.assertEqual(ret.status_code, 200)
def test_put_grids_id_not_match(self): do_init_grids('{0}/{1}'.format(self.url, str('grids'))) with self.subTest('Wrong id was set in the request path'): good_responses = copy.deepcopy(GRIDS) for good_response in good_responses: good_response['status'] = "the parameters id and doc['id'] do not match" for request in GRIDS: good_response = do_search('id', request['id'], good_responses) ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, str(uuid.uuid4())), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 400) with self.subTest('Wrong id was set in the request body'): requests = copy.deepcopy(GRIDS) for request in requests: request['id'] = str(uuid.uuid4()) good_responses = copy.deepcopy(requests) for good_response in good_responses: good_response['status'] = "the parameters id and doc['id'] do not match" for request in requests: grid = do_search('name', request['name'], GRIDS) good_response = do_search('id', request['id'], good_responses) ret = do_put('{0}/{1}/{2}'.format(self.url, self.service, grid['id']), json.dumps(request)) self.assertEqual(ret.json(), good_response) self.assertEqual(ret.status_code, 400)
def test_get_filled_base(self): do_init_grids('{0}/{1}'.format(self.url, self.service)) ret = do_get('{0}/{1}'.format(self.url, self.service)) self.assertEqual(ret.json().sort(key=lambda item: item['name']), GRIDS.sort(key=lambda item: item['name'])) self.assertEqual(ret.status_code, 200)
def test_delete_base(self): do_init_grids('{0}/{1}'.format(self.url, self.service)) ret = do_delete('{0}/{1}'.format(self.url, self.service)) self.assertEqual(ret.json(), DELETE_INDEX_RESPONSE) self.assertEqual(ret.status_code, 200)