Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion packages/google-cloud-bigquery/noxfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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.

Expand Down Expand Up @@ -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)
Expand Down
Loading