def test_fetch_csv(self): self.requests.get.return_value = MockResponse(200, example_csv) fetch_result = fetch(P(file={ **default_file, 'mimeType': 'text/csv' }), secrets=secrets(default_secret)) self._assert_happy_path(fetch_result)
def test_fetch_xlsx(self): self.requests.get.return_value = MockResponse(200, example_xlsx) fetch_result = fetch(P( file={ **default_file, 'mimeType': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }), secrets=secrets(default_secret)) self._assert_happy_path(fetch_result)
def test_fetch_xls(self): self.requests.get.return_value = MockResponse(200, example_xls) fetch_result = fetch( P(file={ **default_file, 'mimeType': 'application/vnd.ms-excel', }), secrets=secrets(default_secret)) self._assert_happy_path(fetch_result)
def test_fetch_tsv(self): self.requests.get.return_value = MockResponse(200, example_tsv) fetch_result = fetch( P(file={ **default_file, "mimeType": "text/tab-separated-values" }), secrets=secrets(default_secret), ) self._assert_happy_path(fetch_result)
def test_no_first_row_header(self): self.requests.get.return_value = MockResponse(200, example_csv) kwargs = { 'file': { **default_file, 'mimeType': 'text/csv' }, 'has_header': False, } fetch_result = fetch(P(**kwargs), secrets=secrets(default_secret)) result = render(pd.DataFrame(), P(**kwargs), fetch_result=fetch_result) assert_frame_equal( result, pd.DataFrame({ '0': ['foo', '1', '2'], '1': ['bar', '2', '3'], }))
def test_no_first_row_header(self): self.requests.get.return_value = MockResponse(200, example_csv) kwargs = { "file": { **default_file, "mimeType": "text/csv" }, "has_header": False } fetch_result = fetch(P(**kwargs), secrets=secrets(default_secret)) result = render(pd.DataFrame(), P(**kwargs), fetch_result=fetch_result) assert_frame_equal( result, pd.DataFrame({ "0": ["foo", "1", "2"], "1": ["bar", "2", "3"] }))
def fetch(**kwargs): params = P(**kwargs) return googlesheets.fetch(params)
def test_render_no_file(self): fetch_result = fetch(P(file=None), secrets=secrets(default_secret)) self.assertEqual(fetch_result.error, '') self.assertTrue(fetch_result.dataframe.empty)
def test_render(self): self.requests.get.return_value = MockResponse(200, example_csv) kwargs = {'file': {**default_file, 'mimeType': 'text/csv'}} fetch_result = fetch(P(**kwargs), secrets=secrets(default_secret)) result = render(pd.DataFrame(), P(**kwargs), fetch_result=fetch_result) assert_frame_equal(result, expected_table)
def test_no_table_on_missing_table(self): self.requests.get.return_value = MockResponse(404, 'not found') fetch_result = fetch(P(), secrets=secrets(default_secret)) self.assertTrue(fetch_result.dataframe.empty) self.assertEqual(fetch_result.error, 'HTTP 404 from Google: not found')
def test_no_table_on_http_error(self): self.requests.get.side_effect = \ requests.exceptions.ReadTimeout('read timeout') fetch_result = fetch(P(), secrets=secrets(default_secret)) self.assertTrue(fetch_result.dataframe.empty) self.assertEqual(fetch_result.error, 'read timeout')
def test_no_table_on_missing_auth(self): fetch_result = fetch(P(), secrets={}) self.assertTrue(fetch_result.dataframe.empty) self.assertEqual(fetch_result.error, 'Not authorized. Please connect to Google Drive.')