|
28 | 28 | ], |
29 | 29 | ) |
30 | 30 | 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 |
32 | 32 | mod = importlib.import_module(module) |
33 | 33 |
|
34 | 34 | # Check that the import aliasing works as expected for overlay/autogenerated clients/types. |
35 | 35 | classes_to_modules = { |
36 | 36 | "BigtableTableAdminClient": "google.cloud.bigtable.admin.overlay.services.bigtable_table_admin.client", |
| 37 | + "BigtableInstanceAdminClient": "google.cloud.bigtable.admin.services.bigtable_instance_admin.client", |
37 | 38 | "RestoreTableOperation": "google.cloud.bigtable.admin.overlay.types.restore_table", |
38 | 39 | "BigtableInstanceAdminClient": "google.cloud.bigtable.admin.services.bigtable_instance_admin.client", |
39 | 40 | "RestoreTableRequest": "google.cloud.bigtable.admin.types.bigtable_table_admin", |
@@ -69,9 +70,16 @@ def test_admin_overlay_object_imports(module): |
69 | 70 | ), |
70 | 71 | ], |
71 | 72 | ) |
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 |
73 | 75 | assert importlib.import_module(alias) == importlib.import_module(actual) |
74 | 76 |
|
| 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 | + |
75 | 83 |
|
76 | 84 | @pytest.mark.parametrize( |
77 | 85 | "alias,cls_name,subpackage_location", |
@@ -104,7 +112,8 @@ def test_admin_shim_services_types_subpackage_aliasing( |
104 | 112 | # Because of existing aliasing on the types/service subpackages in google.cloud.bigtable.admin_v2, |
105 | 113 | # we need to see if this works with google.cloud.bigtable_admin_v2. |
106 | 114 |
|
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 |
108 | 117 | alias_mod = importlib.import_module(alias) |
109 | 118 | cls = getattr(alias_mod, cls_name) |
110 | 119 | subpackage = importlib.import_module(subpackage_location) |
|
0 commit comments