diff --git a/packages/google-cloud-bigquery/noxfile.py b/packages/google-cloud-bigquery/noxfile.py index c576870f9be9..cfe3b60e0c51 100644 --- a/packages/google-cloud-bigquery/noxfile.py +++ b/packages/google-cloud-bigquery/noxfile.py @@ -14,9 +14,11 @@ from __future__ import absolute_import +import contextlib from functools import wraps import os import pathlib +from typing import Generator import re import shutil import time @@ -80,6 +82,25 @@ def wrapper(*args, **kwargs): ] +@contextlib.contextmanager +def log_package_context(session: nox.Session) -> Generator[None, None, None]: + """Logs a highly visible package context banner right before a session exits. + + Ensures metadata is printed adjacent to Nox's final status log, + even if the session fails or raises an exception. + """ + # Dynamically extract current folder name (e.g., 'google-cloud-bigquery') + package_name = CURRENT_DIRECTORY.name + + try: + # Hands control back to the session code block + yield + finally: + # This executes AFTER test output finishes, immediately above Nox's summary line + banner_text = f"Finished session for {package_name.lower()}" + session.log(banner_text) + + def default(session, install_extras=True): """Default unit test session. @@ -193,7 +214,8 @@ def mypy(session): "types-setuptools", ) session.run("python", "-m", "pip", "freeze") - session.run("mypy", "-p", "google", "--show-traceback") + with log_package_context(session): + session.run("mypy", "-p", "google", "--show-traceback") @nox.session(python=SYSTEM_TEST_PYTHON_VERSIONS)