Skip to content
This repository was archived by the owner on Apr 1, 2026. It is now read-only.

Commit 484540f

Browse files
committed
Add more tests for imports
1 parent 13a3051 commit 484540f

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

tests/unit/admin_overlay/test_admin_packaging.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@
2828
],
2929
)
3030
def test_admin_overlay_object_imports(module):
31-
# Simulate from <module> import <class> dynamically using importlib
31+
# Simulate from <top level admin package> import <class> dynamically using importlib
3232
mod = importlib.import_module(module)
3333

3434
# Check that the import aliasing works as expected for overlay/autogenerated clients/types.
3535
classes_to_modules = {
3636
"BigtableTableAdminClient": "google.cloud.bigtable.admin.overlay.services.bigtable_table_admin.client",
37+
"BigtableInstanceAdminClient": "google.cloud.bigtable.admin.services.bigtable_instance_admin.client",
3738
"RestoreTableOperation": "google.cloud.bigtable.admin.overlay.types.restore_table",
3839
"BigtableInstanceAdminClient": "google.cloud.bigtable.admin.services.bigtable_instance_admin.client",
3940
"RestoreTableRequest": "google.cloud.bigtable.admin.types.bigtable_table_admin",
@@ -69,9 +70,16 @@ def test_admin_overlay_object_imports(module):
6970
),
7071
],
7172
)
72-
def test_admin_shim_import_aliasing(alias, actual):
73+
def test_admin_shim_import_aliasing_subpackages(alias, actual):
74+
# Simulates "import <alias>" dynamically using importlib
7375
assert importlib.import_module(alias) == importlib.import_module(actual)
7476

77+
# Simulates "from google.cloud.bigtable_admin_v2.<subpackage> import <module>"
78+
package, module = alias.rsplit(".", 1)
79+
assert importlib.import_module(
80+
f".{module}", package=package
81+
) == importlib.import_module(actual)
82+
7583

7684
@pytest.mark.parametrize(
7785
"alias,cls_name,subpackage_location",
@@ -104,7 +112,8 @@ def test_admin_shim_services_types_subpackage_aliasing(
104112
# Because of existing aliasing on the types/service subpackages in google.cloud.bigtable.admin_v2,
105113
# we need to see if this works with google.cloud.bigtable_admin_v2.
106114

107-
# Simulate from <module> import <class> dynamically using importlib
115+
# Simulate both from google.cloud.bigtable_admin_v2.<subpackage> import <class>
116+
# and import google.cloud.bigtable_admin_v2.<subpackage> dynamically using importlib
108117
alias_mod = importlib.import_module(alias)
109118
cls = getattr(alias_mod, cls_name)
110119
subpackage = importlib.import_module(subpackage_location)

0 commit comments

Comments
 (0)