From beaa6eb0e139ab225017c5372b373f60a08b1be9 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 24 Jun 2026 06:36:25 -0400 Subject: [PATCH 1/5] test(bigquery-magics): make table_id parsing check version-agnostic --- packages/bigquery-magics/tests/unit/bigquery/test_bigquery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/bigquery-magics/tests/unit/bigquery/test_bigquery.py b/packages/bigquery-magics/tests/unit/bigquery/test_bigquery.py index 3be93afdb721..55dd8de50119 100644 --- a/packages/bigquery-magics/tests/unit/bigquery/test_bigquery.py +++ b/packages/bigquery-magics/tests/unit/bigquery/test_bigquery.py @@ -2974,7 +2974,7 @@ def test_bigquery_magic_query_variable_not_identifier(): # considered a table name, thus we expect an error that the table ID is not valid. output = captured_io.stderr assert "ERROR:" in output - assert "must be a fully-qualified ID" in output + assert "table_id" in output @pytest.mark.usefixtures("mock_credentials") From f1ef2e51976fdbfac315538d5da14b810265b859 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 24 Jun 2026 06:59:20 -0400 Subject: [PATCH 2/5] fix(magics): combine test fixes and refactors into single PR --- .../tests/system/test_bigquery.py | 26 ++++++++++--------- .../tests/unit/bigquery/test_deprecation.py | 7 ++--- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/packages/bigquery-magics/tests/system/test_bigquery.py b/packages/bigquery-magics/tests/system/test_bigquery.py index e870a9535ade..cbd689853445 100644 --- a/packages/bigquery-magics/tests/system/test_bigquery.py +++ b/packages/bigquery-magics/tests/system/test_bigquery.py @@ -15,18 +15,17 @@ """System tests for Jupyter/IPython connector.""" import re +from unittest import mock +import google.cloud.bigquery +import pandas from IPython.testing import globalipapp from IPython.utils import io -import pandas -import psutil def test_bigquery_magic(): globalipapp.start_ipython() ip = globalipapp.get_ipython() - current_process = psutil.Process() - conn_count_start = len(current_process.net_connections()) ip.extension_manager.load_extension("bigquery_magics") sql = """ @@ -40,10 +39,17 @@ def test_bigquery_magic(): ORDER BY view_count DESC LIMIT 10 """ - with io.capture_output() as captured: - result = ip.run_cell_magic("bigquery", "--use_rest_api", sql) - - conn_count_end = len(current_process.net_connections()) + with mock.patch.object( + google.cloud.bigquery.Client, + "close", + autospec=True, + side_effect=google.cloud.bigquery.Client.close, + ) as mock_close: + with io.capture_output() as captured: + result = ip.run_cell_magic("bigquery", "--use_rest_api", sql) + + # Verify that client close is explicitly called to release sockets. + mock_close.assert_called_once() lines = re.split("\n|\r", captured.stdout) # Removes blanks & terminal code (result of display clearing) @@ -54,7 +60,3 @@ def test_bigquery_magic(): assert len(result) == 10 # verify row count assert list(result) == ["url", "view_count"] # verify column names - # NOTE: For some reason, the number of open sockets is sometimes one *less* - # than expected when running system tests on Kokoro, thus using the <= assertion. - # That's still fine, however, since the sockets are apparently not leaked. - assert conn_count_end <= conn_count_start # system resources are released diff --git a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py index f8fd25b7b625..deca89943ebc 100644 --- a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py +++ b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py @@ -54,13 +54,10 @@ def test_query_with_bigframes_warning(mock_ipython): def test_cell_magic_engine_bigframes_warning(mock_ipython): from unittest import mock - from IPython.testing.globalipapp import get_ipython + from IPython.testing.globalipapp import get_ipython, start_ipython + start_ipython() ip = get_ipython() - if ip is None: - from IPython.testing.globalipapp import start_ipython - - ip = start_ipython() ip.extension_manager.load_extension("bigquery_magics") From 368608ea38534e1bd0f3338016ee7f8370d24b79 Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Wed, 24 Jun 2026 07:07:35 -0400 Subject: [PATCH 3/5] simplify the code because start_ipython() returns the instance --- .../bigquery-magics/tests/unit/bigquery/test_deprecation.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py index deca89943ebc..ebb65ed6588b 100644 --- a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py +++ b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py @@ -56,8 +56,7 @@ def test_cell_magic_engine_bigframes_warning(mock_ipython): from IPython.testing.globalipapp import get_ipython, start_ipython - start_ipython() - ip = get_ipython() + ip = start_ipython() ip.extension_manager.load_extension("bigquery_magics") From f7361d8e60d709d47296db7b1f4e4c046126114f Mon Sep 17 00:00:00 2001 From: Chalmer Lowe Date: Wed, 24 Jun 2026 07:14:58 -0400 Subject: [PATCH 4/5] revert a change. --- .../bigquery-magics/tests/unit/bigquery/test_deprecation.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py index ebb65ed6588b..deca89943ebc 100644 --- a/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py +++ b/packages/bigquery-magics/tests/unit/bigquery/test_deprecation.py @@ -56,7 +56,8 @@ def test_cell_magic_engine_bigframes_warning(mock_ipython): from IPython.testing.globalipapp import get_ipython, start_ipython - ip = start_ipython() + start_ipython() + ip = get_ipython() ip.extension_manager.load_extension("bigquery_magics") From 14b39fc5ed5d243a6888ca7b6c24bc3e257f19e2 Mon Sep 17 00:00:00 2001 From: chalmer lowe Date: Wed, 24 Jun 2026 07:17:44 -0400 Subject: [PATCH 5/5] chore(magics): fix linting issue by removing trailing blank lines --- packages/bigquery-magics/tests/system/test_bigquery.py | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/bigquery-magics/tests/system/test_bigquery.py b/packages/bigquery-magics/tests/system/test_bigquery.py index cbd689853445..17946827a3e8 100644 --- a/packages/bigquery-magics/tests/system/test_bigquery.py +++ b/packages/bigquery-magics/tests/system/test_bigquery.py @@ -59,4 +59,3 @@ def test_bigquery_magic(): assert isinstance(result, pandas.DataFrame) assert len(result) == 10 # verify row count assert list(result) == ["url", "view_count"] # verify column names -