Skip to content

Conversation

@Linchin
Copy link
Contributor

@Linchin Linchin commented Jan 8, 2026

Fixes test failures such as https://btx.cloud.google.com/invocations/046f57c8-7637-4cc8-9cf3-02a45fb1b063

It seems to have been caused by the recent changes in auth:
googleapis/google-auth-library-python#1919
googleapis/google-auth-library-python#1590

Example error log:

_ ERROR collecting tests/unit/gapic/bigquery_storage_v1/test_big_query_read.py _
ImportError while importing test module '/tmpfs/src/github/google-cloud-python/packages/google-cloud-bigquery-storage/tests/unit/gapic/bigquery_storage_v1/test_big_query_read.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/local/lib/python3.14/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/unit/gapic/bigquery_storage_v1/test_big_query_read.py:42: in 
    from google.api_core import gapic_v1, grpc_helpers, grpc_helpers_async, path_template
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/api_core/gapic_v1/__init__.py:18: in 
    from google.api_core.gapic_v1 import method
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/api_core/gapic_v1/method.py:24: in 
    from google.api_core import grpc_helpers
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/api_core/grpc_helpers.py:23: in 
    import google.auth.transport.grpc
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/auth/transport/grpc.py:23: in 
    from google.oauth2 import service_account
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/oauth2/service_account.py:78: in 
    from google.auth import _service_account_info
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/auth/_service_account_info.py:20: in 
    from google.auth import crypt
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/auth/crypt/__init__.py:41: in 
    from google.auth.crypt import es
.nox/prerelease_deps-protobuf_implementation-python/lib/python3.14/site-packages/google/auth/crypt/es.py:21: in 
    import cryptography.exceptions
E   ModuleNotFoundError: No module named 'cryptography'

@Linchin Linchin requested a review from a team as a code owner January 8, 2026 00:42
@Linchin Linchin requested a review from tswast January 8, 2026 00:42
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Linchin, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the stability of the bigquery-storage component's system tests by ensuring that a critical dependency, cryptography, is always available during test runs. By including this package in the test extras, the PR aims to prevent recurring test failures that stem from its absence, thereby improving the reliability of the test suite and preventing future regressions.

Highlights

  • Test Dependency Update: The cryptography package has been added to the SYSTEM_TEST_EXTRAS list for the bigquery-storage component's system tests.
  • Test Stability Improvement: This change is intended to resolve intermittent system test failures, specifically those related to missing cryptographic functionalities during test execution.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request adds 'cryptography' to the SYSTEM_TEST_EXTRAS list in noxfile.py to include it as a dependency for system tests. There are no review comments provided for this change.

@Linchin Linchin changed the title test: Add 'cryptography' to system test extras for bigquery-storage test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage Jan 8, 2026
@Linchin Linchin enabled auto-merge (squash) January 8, 2026 00:57
@chalmerlowe
Copy link
Contributor

LGTM, sorta.

#QUESTION

The link to a traceback that you shared takes us to a prerelease test.
The install for google-auth is installed as --no-deps, so we are not expecting it to automatically install any of the dependencies for google-auth and thus even though cryptography and cachetools are in the setup.py dependencies section, I wouldn't expect them to be installed. We would need to manage the install manually (which is a key purpose of --no-deps)

What changed so that all of a sudden this test environment changed? It seems that this should have been a problem the whole time.

https://github.com/googleapis/google-auth-library-python/blob/b662fc45829d5892bfc7ee4fdbf9c91e1940d873/setup.py#L22C1-L26C53

Copy link
Contributor

@chalmerlowe chalmerlowe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, see my question in a separate comment.

@Linchin Linchin merged commit d58a9ba into main Jan 8, 2026
26 checks passed
@Linchin Linchin deleted the Linchin-patch-1 branch January 8, 2026 01:14
@Linchin
Copy link
Contributor Author

Linchin commented Jan 8, 2026

LGTM, sorta.

#QUESTION

The link to a traceback that you shared takes us to a prerelease test. The install for google-auth is installed as --no-deps, so we are not expecting it to automatically install any of the dependencies for google-auth and thus even though cryptography and cachetools are in the setup.py dependencies section, I wouldn't expect them to be installed. We would need to manage the install manually (which is a key purpose of --no-deps)

What changed so that all of a sudden this test environment changed? It seems that this should have been a problem the whole time.

https://github.com/googleapis/google-auth-library-python/blob/b662fc45829d5892bfc7ee4fdbf9c91e1940d873/setup.py#L22C1-L26C53

I think the indirect dependencies are installed via this line:

So the --no-deps is only for when re-installing the list of dependencies from main branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants