Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(bigtable): skip system tests failing with emulator #18

Merged
merged 5 commits into from May 20, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 14 additions & 0 deletions tests/system.py
Expand Up @@ -657,6 +657,13 @@ def tearDown(self):
for table in self.tables_to_delete:
table.delete()

def _skip_if_emulated(self, message):
# NOTE: This method is necessary because ``Config.IN_EMULATOR``
# is set at runtime rather than import time, which means we
# can't use the @unittest.skipIf decorator.
if Config.IN_EMULATOR:
self.skipTest(message)

def test_list_tables(self):
# Since `Config.INSTANCE_DATA` is newly created in `setUpModule`, the
# table created in `setUpClass` here will be the only one.
Expand Down Expand Up @@ -691,6 +698,7 @@ def test_create_table(self):
self.assertEqual(sorted_tables, expected_tables)

def test_test_iam_permissions(self):
self._skip_if_emulated("Method not implemented in bigtable emulator")
temp_table_id = "test-test-iam-policy-table"
temp_table = Config.INSTANCE_DATA.table(temp_table_id)
temp_table.create()
Expand All @@ -701,6 +709,7 @@ def test_test_iam_permissions(self):
self.assertEqual(permissions, permissions_allowed)

def test_get_iam_policy(self):
self._skip_if_emulated("Method not implemented in bigtable emulator")
temp_table_id = "test-get-iam-policy-table"
temp_table = Config.INSTANCE_DATA.table(temp_table_id)
temp_table.create()
Expand All @@ -711,6 +720,7 @@ def test_get_iam_policy(self):
self.assertEqual(policy["version"], 0)

def test_set_iam_policy(self):
self._skip_if_emulated("Method not implemented in bigtable emulator")
temp_table_id = "test-set-iam-policy-table"
temp_table = Config.INSTANCE_DATA.table(temp_table_id)
temp_table.create()
Expand Down Expand Up @@ -742,6 +752,7 @@ def test_create_table_with_families(self):
self.assertEqual(retrieved_col_fam.gc_rule, gc_rule)

def test_create_table_with_split_keys(self):
self._skip_if_emulated("Split keys are not supported by Bigtable emulator")
temp_table_id = "foo-bar-baz-split-table"
initial_split_keys = [b"split_key_1", b"split_key_10", b"split_key_20"]
temp_table = Config.INSTANCE_DATA.table(temp_table_id)
Expand Down Expand Up @@ -1014,6 +1025,9 @@ def test_yield_rows_with_row_set(self):
self.assertEqual(found_row_keys, expected_row_keys)

def test_read_large_cell_limit(self):
self._maybe_emulator_skip(
"Maximum gRPC received message size for emulator is 4194304 bytes."
)
row = self._table.row(ROW_KEY)
self.rows_to_delete.append(row)

Expand Down