def test_delete_existing(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.delete( f"{SERVICE_BASE_URL}/v1/spreadsheets/{spreadsheet_id}") assert resp.status_code == 200
def test_view_empty_spreadsheet(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/view") assert resp.status_code == 200 assert resp.content.decode("utf-8") == ""
def test_update_200(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.put( f"{SERVICE_BASE_URL}/v1/spreadsheets/{spreadsheet_id}", json={'name': "new_spreadsheet_name"}) assert resp.status_code == 200 assert resp.json()['id'] == spreadsheet_id
def test_get_cells_no_cells(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets/" f"{spreadsheet_id}/cells") assert resp.status_code == 200 assert resp.json() == []
def test_get_200(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.get( f"{SERVICE_BASE_URL}/v1/spreadsheets/{spreadsheet_id}") resp_data = resp.json() assert resp_data['id'] == spreadsheet_id assert resp_data['name'] == "new_spreadsheet"
def test_get_cell_null(self, new_spreadsheet_fixture): """Try to get a cell that has not had a value set yet""" spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/cells/A1") assert resp.status_code == 200 assert resp.json() == None
def test_update_cell_200(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.put( f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/cells/A1", json={ 'value': 'dummy value update', 'type': 'literal' })
def test_get_updated_cell_200(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/cells/A1") resp_data = resp.json() assert resp.status_code == 200 assert resp_data['name'] == "A1" assert resp_data['data']['value'] == "dummy value update" assert resp_data['data']['type'] == "literal"
def test_create_cell(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] resp = requests.put( f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/cells/A1", json={ 'value': 'dummy value', 'type': 'literal' }) assert resp.status_code == 200
def test_get_spreadsheets_with_two_spreadsheets(self, new_spreadsheet_fixture): # First spreadsheet created still exists since new_spreadsheet_fixture # is scoped to the class resp = new_spreadsheet_fixture("second_test_spreadsheet") resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets") resp_data = resp.json() # Check that the set of names we expect is in the set of current # spreadsheet names assert set(["first_test_spreadsheet", "second_test_spreadsheet" ]).issubset({e['name'] for e in resp_data})
def test_view_spreadsheet(self, new_spreadsheet_fixture): spreadsheet_id = new_spreadsheet_fixture( "new_spreadsheet").json()['id'] create_cell(spreadsheet_id, "A1", "a1") create_cell(spreadsheet_id, "B2", "b2") create_cell(spreadsheet_id, "D5", "d5") resp = requests.get(f"{SERVICE_BASE_URL}/v1/spreadsheets" f"/{spreadsheet_id}/view") assert resp.status_code == 200 assert (resp.content.decode("utf-8") == "*\tA\tB\tC\tD\n1\ta1\t\t\t\n2\t\tb2\t\t\n3\t\t\t\t\n" "4\t\t\t\t\n5\t\t\t\td5")
def cells_from_A1_to_D4_fixture(new_spreadsheet_fixture): new_spreadsheet_resp = new_spreadsheet_fixture("new_spreadsheet") spreadsheet_id = new_spreadsheet_resp.json()['id'] for col in ('A', 'B', 'C', 'D'): for row in range(1, 5): cell_name = f"{col}{row}" resp = create_cell(spreadsheet_id, cell_name, f"dummy value {cell_name}") resp.raise_for_status() yield new_spreadsheet_resp # Remove cells for col in ('A', 'B', 'C', 'D'): for row in range(1, 5): cell_name = f"{col}{row}" resp = delete_cell(spreadsheet_id, cell_name) resp.raise_for_status()
def test_create_first_spreadsheet(self, new_spreadsheet_fixture): resp = new_spreadsheet_fixture("first_test_spreadsheet") spreadsheet_id = resp.json()['id'] assert resp.status_code == 201