class TestCellRange: http_sheets_mocks = mock_range_instance() client = SpreadsheetApp(http=http_sheets_mocks) data_range = client.open_by_id('spreadsheet id').get_sheet_by_name('people').get_data_range() def test_a1(self): assert self.data_range.a1 == 'people!A1:D21' def test_get_cell(self): assert self.data_range.get_cell(1, 1).a1 == 'people!A1' assert self.data_range.get_cell(1, 2).a1 == 'people!B1' assert self.data_range.get_cell(2, 1).a1 == 'people!A2'
class TestSheet: http_sheets_mocks = mock_range_instance() sheet = SpreadsheetApp(http=http_sheets_mocks).open_by_id("some_id").get_sheet_by_name("people") def test_sheet_properties(self): assert self.sheet.name == "people" assert self.sheet.sid == 0 assert type(self.sheet.grid_properties) == dict assert type(self.sheet.batches) == list assert len(self.sheet.batches) == 0 def test_max_rows_columns(self): assert self.sheet.get_max_rows() == 1000 assert self.sheet.get_max_columns() == 26
class TestGettersFromDataRange: fixtures = ['get_backgrounds.json', 'get_notes.json', 'get_fonts.json'] http_sheets_mocks = mock_range_instance(fixtures) client = SpreadsheetApp(http=http_sheets_mocks) data_range = client.open_by_id('spreadsheet id').get_sheet_by_name('people').get_data_range() def test_a1_notation_is_right(self): assert self.data_range.a1 == "people!A1:D21" def test_get_backgrounds(self): backgrounds = self.data_range.get_backgrounds() assert type(backgrounds) == list assert len(backgrounds) == self.data_range.coordinates.number_of_rows for row in backgrounds: assert len(row) == self.data_range.coordinates.number_of_columns
class TestWrongRowAndColumnValues: http_sheets_mocks = mock_range_instance() client = SpreadsheetApp(http=http_sheets_mocks) spreadsheet = client.open_by_id('some_id') sheet = spreadsheet.get_sheet_by_name("people") def test_invalid_row(self): with pytest.raises(RowOrColumnEqualsZeroError): self.sheet.get_range(row=0, column=1) def test_invalid_column(self): with pytest.raises(RowOrColumnEqualsZeroError): self.sheet.get_range(row=1, column=0) def test_invalid_row_and_column(self): with pytest.raises(RowOrColumnEqualsZeroError): self.sheet.get_range(row=0, column=0)
class TestModelClients: http_sheets_mocks = mock_range_instance() client = SpreadsheetApp(http=http_sheets_mocks) spreadsheet = client.open_by_id('some_id') sheet = spreadsheet.get_sheet_by_name("people") my_range = sheet.get_range(1, 1) def test_instances(self): assert isinstance(self.client, SpreadsheetApp) assert isinstance(self.spreadsheet, Spreadsheet) assert isinstance(self.sheet, Sheet) assert isinstance(self.my_range, Range) def test_client_is_in_every_object(self): assert self.client is self.spreadsheet.client assert self.client is self.sheet.client assert self.client is self.my_range.client