From 40c0cd6d0db1e0dae29129faead01cba49ca42e4 Mon Sep 17 00:00:00 2001 From: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Date: Sun, 3 Apr 2022 18:15:05 -0600 Subject: [PATCH] chore: set up CI on v1 branch (#541) * chore: add basic CI to v1 branch * chore: use newer black * chore: fix docfx --- .github/workflows/docs.yml | 38 +++++++++++++++++++++ .github/workflows/lint.yml | 25 ++++++++++++++ .github/workflows/unittest.yml | 57 +++++++++++++++++++++++++++++++ .gitignore | 1 + .kokoro/release.sh | 4 +-- .kokoro/release/common.cfg | 18 +++++----- docs/conf.py | 12 +++---- docs/snippets.py | 2 +- docs/snippets_table.py | 2 +- google/cloud/bigtable/cluster.py | 2 +- google/cloud/bigtable/row_data.py | 10 +++--- noxfile.py | 9 +++-- tests/system.py | 10 +++--- tests/unit/test_column_family.py | 4 +-- tests/unit/test_instance.py | 2 +- tests/unit/test_row.py | 52 ++++++++++++++-------------- tests/unit/test_row_data.py | 42 +++++++++++------------ tests/unit/test_row_filters.py | 20 +++++------ tests/unit/test_table.py | 8 ++--- 19 files changed, 222 insertions(+), 96 deletions(-) create mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/unittest.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..ae2612e31 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,38 @@ +on: + pull_request: + branches: + - v1 +name: docs +jobs: + docs: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 + with: + python-version: "3.8" + - name: Install nox + run: | + python -m pip install --upgrade setuptools pip wheel + python -m pip install nox + - name: Run docs + run: | + nox -s docs + docfx: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 + with: + python-version: "3.8" + - name: Install nox + run: | + python -m pip install --upgrade setuptools pip wheel + python -m pip install nox + - name: Run docfx + run: | + nox -s docfx diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 000000000..bc3bfb53f --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,25 @@ +on: + pull_request: + branches: + - v1 +name: lint +jobs: + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 + with: + python-version: "3.8" + - name: Install nox + run: | + python -m pip install --upgrade setuptools pip wheel + python -m pip install nox + - name: Run lint + run: | + nox -s lint + - name: Run lint_setup_py + run: | + nox -s lint_setup_py diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml new file mode 100644 index 000000000..fba0774b2 --- /dev/null +++ b/.github/workflows/unittest.yml @@ -0,0 +1,57 @@ +on: + pull_request: + branches: + - v1 +name: unittest +jobs: + unit: + runs-on: ubuntu-latest + strategy: + matrix: + python: ['3.6', '3.7', '3.8'] + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python }} + - name: Install nox + run: | + python -m pip install --upgrade setuptools pip wheel + python -m pip install nox + - name: Run unit tests + env: + COVERAGE_FILE: .coverage-${{ matrix.python }} + run: | + nox -s unit-${{ matrix.python }} + - name: Upload coverage results + uses: actions/upload-artifact@v3 + with: + name: coverage-artifacts + path: .coverage-${{ matrix.python }} + + cover: + runs-on: ubuntu-latest + needs: + - unit + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Python + uses: actions/setup-python@v3 + with: + python-version: "3.8" + - name: Install coverage + run: | + python -m pip install --upgrade setuptools pip wheel + python -m pip install coverage + - name: Download coverage results + uses: actions/download-artifact@v3 + with: + name: coverage-artifacts + path: .coverage-results/ + - name: Report coverage results + run: | + coverage combine .coverage-results/.coverage* + coverage report --show-missing --fail-under=99 diff --git a/.gitignore b/.gitignore index b9daa52f1..25de3ecb9 100644 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ pip-log.txt .nox .cache .pytest_cache +*_sponge_log.xml # Mac diff --git a/.kokoro/release.sh b/.kokoro/release.sh index 102d0ba6d..f0cb9d5db 100755 --- a/.kokoro/release.sh +++ b/.kokoro/release.sh @@ -26,7 +26,7 @@ python3 -m pip install --upgrade twine wheel setuptools export PYTHONUNBUFFERED=1 # Move into the package, build the distribution and upload. -TWINE_PASSWORD=$(cat "${KOKORO_KEYSTORE_DIR}/73713_google_cloud_pypi_password") +TWINE_PASSWORD=$(cat "${KOKORO_KEYSTORE_DIR}/73713_google-cloud-pypi-token-keystore-1") cd github/python-bigtable python3 setup.py sdist bdist_wheel -twine upload --username gcloudpypi --password "${TWINE_PASSWORD}" dist/* +twine upload --username __token__ --password "${TWINE_PASSWORD}" dist/* diff --git a/.kokoro/release/common.cfg b/.kokoro/release/common.cfg index ceb054317..8477e4ca6 100644 --- a/.kokoro/release/common.cfg +++ b/.kokoro/release/common.cfg @@ -23,18 +23,18 @@ env_vars: { value: "github/python-bigtable/.kokoro/release.sh" } -# Fetch PyPI password -before_action { - fetch_keystore { - keystore_resource { - keystore_config_id: 73713 - keyname: "google_cloud_pypi_password" - } - } +# Fetch PyPI password +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73713 + keyname: "google-cloud-pypi-token-keystore-1" + } + } } # Tokens needed to report release status back to GitHub env_vars: { key: "SECRET_MANAGER_KEYS" value: "releasetool-publish-reporter-app,releasetool-publish-reporter-googleapis-installation,releasetool-publish-reporter-pem" -} \ No newline at end of file +} diff --git a/docs/conf.py b/docs/conf.py index ef2392b38..cfb0fc6cc 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -67,9 +67,9 @@ master_doc = "index" # General information about the project. -project = u"google-cloud-bigtable" -copyright = u"2019, Google" -author = u"Google APIs" +project = "google-cloud-bigtable" +copyright = "2019, Google" +author = "Google APIs" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -268,7 +268,7 @@ ( master_doc, "google-cloud-bigtable.tex", - u"google-cloud-bigtable Documentation", + "google-cloud-bigtable Documentation", author, "manual", ) @@ -303,7 +303,7 @@ ( master_doc, "google-cloud-bigtable", - u"google-cloud-bigtable Documentation", + "google-cloud-bigtable Documentation", [author], 1, ) @@ -322,7 +322,7 @@ ( master_doc, "google-cloud-bigtable", - u"google-cloud-bigtable Documentation", + "google-cloud-bigtable Documentation", author, "google-cloud-bigtable", "google-cloud-bigtable Library", diff --git a/docs/snippets.py b/docs/snippets.py index dda59079d..d21f84348 100644 --- a/docs/snippets.py +++ b/docs/snippets.py @@ -55,7 +55,7 @@ PRODUCTION = enums.Instance.Type.PRODUCTION SERVER_NODES = 3 STORAGE_TYPE = enums.StorageType.SSD -LABEL_KEY = u"python-snippet" +LABEL_KEY = "python-snippet" LABEL_STAMP = ( datetime.datetime.utcnow() .replace(microsecond=0, tzinfo=UTC) diff --git a/docs/snippets_table.py b/docs/snippets_table.py index 4c3304fd0..f27260425 100644 --- a/docs/snippets_table.py +++ b/docs/snippets_table.py @@ -52,7 +52,7 @@ PRODUCTION = enums.Instance.Type.PRODUCTION SERVER_NODES = 3 STORAGE_TYPE = enums.StorageType.SSD -LABEL_KEY = u"python-snippet" +LABEL_KEY = "python-snippet" LABEL_STAMP = ( datetime.datetime.utcnow() .replace(microsecond=0, tzinfo=UTC) diff --git a/google/cloud/bigtable/cluster.py b/google/cloud/bigtable/cluster.py index 1cf66f86b..074df8152 100644 --- a/google/cloud/bigtable/cluster.py +++ b/google/cloud/bigtable/cluster.py @@ -336,7 +336,7 @@ def delete(self): client.instance_admin_client.delete_cluster(self.name) def _to_pb(self): - """ Create cluster proto buff message for API calls """ + """Create cluster proto buff message for API calls""" client = self._instance._client location = client.instance_admin_client.location_path( client.project, self.location_id diff --git a/google/cloud/bigtable/row_data.py b/google/cloud/bigtable/row_data.py index 1cc442f2c..c37ef7723 100644 --- a/google/cloud/bigtable/row_data.py +++ b/google/cloud/bigtable/row_data.py @@ -650,7 +650,7 @@ def build_updated_request(self): return data_messages_v2_pb2.ReadRowsRequest(**r_kwargs) def _filter_rows_keys(self): - """ Helper for :meth:`build_updated_request`""" + """Helper for :meth:`build_updated_request`""" return [ row_key for row_key in self.message.rows.row_keys @@ -658,7 +658,7 @@ def _filter_rows_keys(self): ] def _filter_row_ranges(self): - """ Helper for :meth:`build_updated_request`""" + """Helper for :meth:`build_updated_request`""" new_row_ranges = [] for row_range in self.message.rows.row_ranges: @@ -689,17 +689,17 @@ def _filter_row_ranges(self): return new_row_ranges def _key_already_read(self, key): - """ Helper for :meth:`_filter_row_ranges`""" + """Helper for :meth:`_filter_row_ranges`""" return key <= self.last_scanned_key @staticmethod def _start_key_set(row_range): - """ Helper for :meth:`_filter_row_ranges`""" + """Helper for :meth:`_filter_row_ranges`""" return row_range.start_key_open or row_range.start_key_closed @staticmethod def _end_key_set(row_range): - """ Helper for :meth:`_filter_row_ranges`""" + """Helper for :meth:`_filter_row_ranges`""" return row_range.end_key_open or row_range.end_key_closed diff --git a/noxfile.py b/noxfile.py index 7947441c6..5123f233b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -20,12 +20,17 @@ import nox +BLACK_VERSION = "black==22.3.0" DEFAULT_PYTHON_VERSION = "3.8" SYSTEM_TEST_PYTHON_VERSIONS = ["2.7", "3.8"] UNIT_TEST_PYTHON_VERSIONS = ["2.7", "3.5", "3.6", "3.7", "3.8"] LOCAL_DEPS = () +# Error if a python version is missing +nox.options.error_on_missing_interpreters = True + + @nox.session(python=DEFAULT_PYTHON_VERSION) def lint(session): """Run linters. @@ -44,7 +49,7 @@ def lint(session): session.run("flake8", "google", "tests") -@nox.session(python="3.6") +@nox.session(python=DEFAULT_PYTHON_VERSION) def blacken(session): """Run black. @@ -194,7 +199,7 @@ def docfx(session): """Build the docfx yaml files for this library.""" session.install("-e", ".") - session.install("sphinx", "alabaster", "recommonmark", "sphinx-docfx-yaml") + session.install("sphinx", "alabaster", "recommonmark", "gcp-sphinx-docfx-yaml") shutil.rmtree(os.path.join("docs", "_build"), ignore_errors=True) session.run( diff --git a/tests/system.py b/tests/system.py index daf644ea2..830397d62 100644 --- a/tests/system.py +++ b/tests/system.py @@ -53,8 +53,8 @@ CLUSTER_ID = INSTANCE_ID + "-cluster" CLUSTER_ID_DATA = INSTANCE_ID_DATA + "-cluster" SERVE_NODES = 3 -COLUMN_FAMILY_ID1 = u"col-fam-id1" -COLUMN_FAMILY_ID2 = u"col-fam-id2" +COLUMN_FAMILY_ID1 = "col-fam-id1" +COLUMN_FAMILY_ID2 = "col-fam-id2" COL_NAME1 = b"col-name1" COL_NAME2 = b"col-name2" COL_NAME3 = b"col-name3-but-other-fam" @@ -65,7 +65,7 @@ ROW_KEY = b"row-key" ROW_KEY_ALT = b"row-key-alt" EXISTING_INSTANCES = [] -LABEL_KEY = u"python-system" +LABEL_KEY = "python-system" label_stamp = ( datetime.datetime.utcnow() .replace(microsecond=0, tzinfo=UTC) @@ -1202,13 +1202,13 @@ def test_read_with_label_applied(self): row.commit() # Combine a label with column 1. - label1 = u"label-red" + label1 = "label-red" label1_filter = ApplyLabelFilter(label1) col1_filter = ColumnQualifierRegexFilter(COL_NAME1) chain1 = RowFilterChain(filters=[col1_filter, label1_filter]) # Combine a label with column 2. - label2 = u"label-blue" + label2 = "label-blue" label2_filter = ApplyLabelFilter(label2) col2_filter = ColumnQualifierRegexFilter(COL_NAME2) chain2 = RowFilterChain(filters=[col2_filter, label2_filter]) diff --git a/tests/unit/test_column_family.py b/tests/unit/test_column_family.py index d6f6c2672..8869d9ee3 100644 --- a/tests/unit/test_column_family.py +++ b/tests/unit/test_column_family.py @@ -283,7 +283,7 @@ def _make_client(self, *args, **kwargs): return self._get_target_client_class()(*args, **kwargs) def test_constructor(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" table = object() gc_rule = object() column_family = self._make_one(column_family_id, table, gc_rule=gc_rule) @@ -293,7 +293,7 @@ def test_constructor(self): self.assertIs(column_family.gc_rule, gc_rule) def test_name_property(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" table_name = "table_name" table = _Table(table_name) column_family = self._make_one(column_family_id, table) diff --git a/tests/unit/test_instance.py b/tests/unit/test_instance.py index 14dd0bf58..099f15dc0 100644 --- a/tests/unit/test_instance.py +++ b/tests/unit/test_instance.py @@ -457,7 +457,7 @@ def test_reload(self): instance = self._make_one(self.INSTANCE_ID, client) # Create response_pb - DISPLAY_NAME = u"hey-hi-hello" + DISPLAY_NAME = "hey-hi-hello" instance_type = enums.Instance.Type.PRODUCTION response_pb = data_v2_pb2.Instance( display_name=DISPLAY_NAME, type=instance_type, labels=self.LABELS diff --git a/tests/unit/test_row.py b/tests/unit/test_row.py index 16a8232ec..4654f67da 100644 --- a/tests/unit/test_row.py +++ b/tests/unit/test_row.py @@ -84,7 +84,7 @@ def test_constructor(self): self.assertEqual(row._pb_mutations, []) def test_constructor_with_unicode(self): - row_key = u"row_key" + row_key = "row_key" row_key_bytes = b"row_key" table = object() @@ -108,8 +108,8 @@ def test_get_mutations_size(self): row_key = b"row_key" row = self._make_one(row_key, None) - column_family_id1 = u"column_family_id1" - column_family_id2 = u"column_family_id2" + column_family_id1 = "column_family_id1" + column_family_id2 = "column_family_id2" column1 = b"column1" column2 = b"column2" number_of_bytes = 1 * 1024 * 1024 @@ -136,7 +136,7 @@ def _set_cell_helper( import struct row_key = b"row_key" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" if column is None: column = b"column" table = object() @@ -161,7 +161,7 @@ def test_set_cell(self): def test_set_cell_with_string_column(self): column_bytes = b"column" - column_non_bytes = u"column" + column_non_bytes = "column" self._set_cell_helper(column=column_non_bytes, column_bytes=column_bytes) def test_set_cell_with_integer_value(self): @@ -171,7 +171,7 @@ def test_set_cell_with_integer_value(self): def test_set_cell_with_non_bytes_value(self): row_key = b"row_key" column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -213,7 +213,7 @@ def _delete_cells(self, *args, **kwargs): row_key = b"row_key" column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() mock_row = MockRow(row_key, table) @@ -231,7 +231,7 @@ def _delete_cells(self, *args, **kwargs): def test_delete_cells_non_iterable(self): row_key = b"row_key" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -241,7 +241,7 @@ def test_delete_cells_non_iterable(self): def test_delete_cells_all_columns(self): row_key = b"row_key" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -256,7 +256,7 @@ def test_delete_cells_all_columns(self): def test_delete_cells_no_columns(self): row_key = b"row_key" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -268,7 +268,7 @@ def test_delete_cells_no_columns(self): def _delete_cells_helper(self, time_range=None): row_key = b"row_key" column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -303,7 +303,7 @@ def test_delete_cells_with_bad_column(self): # the row's mutations in a bad state. row_key = b"row_key" column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" table = object() row = self._make_one(row_key, table) @@ -315,10 +315,10 @@ def test_delete_cells_with_bad_column(self): def test_delete_cells_with_string_columns(self): row_key = b"row_key" - column_family_id = u"column_family_id" - column1 = u"column1" + column_family_id = "column_family_id" + column1 = "column1" column1_bytes = b"column1" - column2 = u"column2" + column2 = "column2" column2_bytes = b"column2" table = object() @@ -343,7 +343,7 @@ def test_commit(self): project_id = "project-id" row_key = b"row_key" table_name = "projects/more-stuff" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" column = b"column" credentials = _make_credentials() @@ -365,7 +365,7 @@ def test_commit_with_exception(self): project_id = "project-id" row_key = b"row_key" table_name = "projects/more-stuff" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" column = b"column" credentials = _make_credentials() @@ -433,9 +433,9 @@ def test_commit(self): row_key = b"row_key" table_name = "projects/more-stuff" app_profile_id = "app_profile_id" - column_family_id1 = u"column_family_id1" - column_family_id2 = u"column_family_id2" - column_family_id3 = u"column_family_id3" + column_family_id1 = "column_family_id1" + column_family_id2 = "column_family_id2" + column_family_id3 = "column_family_id3" column1 = b"column1" column2 = b"column2" @@ -557,7 +557,7 @@ def test_append_cell_value(self): self.assertEqual(row._rule_pb_list, []) column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" value = b"bytes-val" row.append_cell_value(column_family_id, column, value) expected_pb = _ReadModifyWriteRulePB( @@ -572,7 +572,7 @@ def test_increment_cell_value(self): self.assertEqual(row._rule_pb_list, []) column = b"column" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" int_value = 281330 row.increment_cell_value(column_family_id, column, int_value) expected_pb = _ReadModifyWriteRulePB( @@ -591,7 +591,7 @@ def test_commit(self): row_key = b"row_key" table_name = "projects/more-stuff" app_profile_id = "app_profile_id" - column_family_id = u"column_family_id" + column_family_id = "column_family_id" column = b"column" api = bigtable_client.BigtableClient(mock.Mock()) @@ -671,8 +671,8 @@ def _call_fut(self, row_response): def test_it(self): from google.cloud._helpers import _datetime_from_microseconds - col_fam1 = u"col-fam-id" - col_fam2 = u"col-fam-id2" + col_fam1 = "col-fam-id" + col_fam2 = "col-fam-id2" col_name1 = b"col-name1" col_name2 = b"col-name2" col_name3 = b"col-name3-but-other-fam" @@ -736,7 +736,7 @@ def _call_fut(self, family_pb): def test_it(self): from google.cloud._helpers import _datetime_from_microseconds - col_fam1 = u"col-fam-id" + col_fam1 = "col-fam-id" col_name1 = b"col-name1" col_name2 = b"col-name2" cell_val1 = b"cell-val" diff --git a/tests/unit/test_row_data.py b/tests/unit/test_row_data.py index c59da844b..8b3f48b78 100644 --- a/tests/unit/test_row_data.py +++ b/tests/unit/test_row_data.py @@ -88,7 +88,7 @@ def test_from_pb(self): self._from_pb_test_helper() def test_from_pb_with_labels(self): - labels = [u"label1", u"label2"] + labels = ["label1", "label2"] self._from_pb_test_helper(labels) def test_constructor(self): @@ -175,8 +175,8 @@ def test_to_dict(self): cell2 = object() cell3 = object() - family_name1 = u"name1" - family_name2 = u"name2" + family_name1 = "name1" + family_name2 = "name2" qual1 = b"col1" qual2 = b"col2" qual3 = b"col3" @@ -196,7 +196,7 @@ def test_to_dict(self): self.assertEqual(result, expected_result) def test_cell_value(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" cell = _make_cell(b"value-bytes") @@ -207,7 +207,7 @@ def test_cell_value(self): self.assertEqual(result, cell.value) def test_cell_value_invalid_index(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" cell = _make_cell(b"") @@ -218,7 +218,7 @@ def test_cell_value_invalid_index(self): partial_row_data.cell_value(family_name, qualifier, index=None) def test_cell_value_invalid_column_family_key(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" partial_row_data = self._make_one(None) @@ -227,7 +227,7 @@ def test_cell_value_invalid_column_family_key(self): partial_row_data.cell_value(family_name, qualifier) def test_cell_value_invalid_column_key(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" partial_row_data = self._make_one(None) @@ -237,7 +237,7 @@ def test_cell_value_invalid_column_key(self): partial_row_data.cell_value(family_name, qualifier) def test_cell_values(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" cell = _make_cell(b"value-bytes") @@ -253,7 +253,7 @@ def test_cell_values(self): self.assertEqual(values[0], cell.value) def test_cell_values_with_max_count(self): - family_name = u"name1" + family_name = "name1" qualifier = b"col1" cell_1 = _make_cell(b"value-bytes-1") cell_2 = _make_cell(b"value-bytes-2") @@ -353,7 +353,7 @@ def test_w_deadline_exceeded_wrapped_in_grpc(self): class TestPartialRowsData(unittest.TestCase): ROW_KEY = b"row-key" - FAMILY_NAME = u"family" + FAMILY_NAME = "family" QUALIFIER = b"qualifier" TIMESTAMP_MICROS = 100 VALUE = b"value" @@ -548,14 +548,14 @@ def test__copy_from_previous_unset(self): cell = _PartialCellData() yrd._copy_from_previous(cell) self.assertEqual(cell.row_key, b"") - self.assertEqual(cell.family_name, u"") + self.assertEqual(cell.family_name, "") self.assertIsNone(cell.qualifier) self.assertEqual(cell.timestamp_micros, 0) self.assertEqual(cell.labels, []) def test__copy_from_previous_blank(self): ROW_KEY = "RK" - FAMILY_NAME = u"A" + FAMILY_NAME = "A" QUALIFIER = b"C" TIMESTAMP_MICROS = 100 LABELS = ["L1", "L2"] @@ -580,7 +580,7 @@ def test__copy_from_previous_blank(self): def test__copy_from_previous_filled(self): ROW_KEY = "RK" - FAMILY_NAME = u"A" + FAMILY_NAME = "A" QUALIFIER = b"C" TIMESTAMP_MICROS = 100 LABELS = ["L1", "L2"] @@ -1200,13 +1200,13 @@ def _flatten_cells(prd): for qualifier, column in family.items(): for cell in column: yield { - u"rk": _bytes_to_unicode(row_key), - u"fm": family_name, - u"qual": _bytes_to_unicode(qualifier), - u"ts": _microseconds_from_datetime(cell.timestamp), - u"value": _bytes_to_unicode(cell.value), - u"label": u" ".join(cell.labels), - u"error": False, + "rk": _bytes_to_unicode(row_key), + "fm": family_name, + "qual": _bytes_to_unicode(qualifier), + "ts": _microseconds_from_datetime(cell.timestamp), + "value": _bytes_to_unicode(cell.value), + "label": " ".join(cell.labels), + "error": False, } @@ -1236,7 +1236,7 @@ def next(self): class _PartialCellData(object): row_key = b"" - family_name = u"" + family_name = "" qualifier = None timestamp_micros = 0 diff --git a/tests/unit/test_row_filters.py b/tests/unit/test_row_filters.py index 02a912318..9671a69b3 100644 --- a/tests/unit/test_row_filters.py +++ b/tests/unit/test_row_filters.py @@ -121,7 +121,7 @@ def test_constructor(self): self.assertIs(row_filter.regex, regex) def test_constructor_non_bytes(self): - regex = u"abc" + regex = "abc" row_filter = self._make_one(regex) self.assertEqual(row_filter.regex, b"abc") @@ -209,7 +209,7 @@ def _make_one(self, *args, **kwargs): return self._get_target_class()(*args, **kwargs) def test_to_pb(self): - regex = u"family-regex" + regex = "family-regex" row_filter = self._make_one(regex) pb_val = row_filter.to_pb() expected_pb = _RowFilterPB(family_name_regex_filter=regex) @@ -437,14 +437,14 @@ def test___eq__type_differ(self): self.assertNotEqual(row_filter1, row_filter2) def test_to_pb(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" row_filter = self._make_one(column_family_id) col_range_pb = _ColumnRangePB(family_name=column_family_id) expected_pb = _RowFilterPB(column_range_filter=col_range_pb) self.assertEqual(row_filter.to_pb(), expected_pb) def test_to_pb_inclusive_start(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" column = b"column" row_filter = self._make_one(column_family_id, start_column=column) col_range_pb = _ColumnRangePB( @@ -454,7 +454,7 @@ def test_to_pb_inclusive_start(self): self.assertEqual(row_filter.to_pb(), expected_pb) def test_to_pb_exclusive_start(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" column = b"column" row_filter = self._make_one( column_family_id, start_column=column, inclusive_start=False @@ -466,7 +466,7 @@ def test_to_pb_exclusive_start(self): self.assertEqual(row_filter.to_pb(), expected_pb) def test_to_pb_inclusive_end(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" column = b"column" row_filter = self._make_one(column_family_id, end_column=column) col_range_pb = _ColumnRangePB( @@ -476,7 +476,7 @@ def test_to_pb_inclusive_end(self): self.assertEqual(row_filter.to_pb(), expected_pb) def test_to_pb_exclusive_end(self): - column_family_id = u"column-family-id" + column_family_id = "column-family-id" column = b"column" row_filter = self._make_one( column_family_id, end_column=column, inclusive_end=False @@ -506,7 +506,7 @@ def test_to_pb_w_bytes(self): self.assertEqual(pb_val, expected_pb) def test_to_pb_w_str(self): - value = u"value-regex" + value = "value-regex" regex = value.encode("ascii") row_filter = self._make_one(value) pb_val = row_filter.to_pb() @@ -532,7 +532,7 @@ def test_to_pb_w_bytes(self): self.assertEqual(pb_val, expected_pb) def test_to_pb_w_str(self): - value = u"value-regex" + value = "value-regex" regex = value.encode("ascii") row_filter = self._make_one(value) pb_val = row_filter.to_pb() @@ -803,7 +803,7 @@ def test___eq__same_value(self): self.assertEqual(row_filter1, row_filter2) def test_to_pb(self): - label = u"label" + label = "label" row_filter = self._make_one(label) pb_val = row_filter.to_pb() expected_pb = _RowFilterPB(apply_label_transformer=label) diff --git a/tests/unit/test_table.py b/tests/unit/test_table.py index 4469846b1..1793a8602 100644 --- a/tests/unit/test_table.py +++ b/tests/unit/test_table.py @@ -141,7 +141,7 @@ class TestTable(unittest.TestCase): ROW_KEY_1 = b"row-key-1" ROW_KEY_2 = b"row-key-2" ROW_KEY_3 = b"row-key-3" - FAMILY_NAME = u"family" + FAMILY_NAME = "family" QUALIFIER = b"qualifier" TIMESTAMP_MICROS = 100 VALUE = b"value" @@ -507,9 +507,9 @@ def test_get_cluster_states(self): # build expected result expected_result = { - u"cluster-id1": ClusterState(INITIALIZING), - u"cluster-id2": ClusterState(PLANNED_MAINTENANCE), - u"cluster-id3": ClusterState(READY), + "cluster-id1": ClusterState(INITIALIZING), + "cluster-id2": ClusterState(PLANNED_MAINTENANCE), + "cluster-id3": ClusterState(READY), } # Perform the method and check the result.