Skip to content
This repository was archived by the owner on Mar 13, 2026. It is now read-only.

Commit 8172803

Browse files
committed
test: improve coverage
1 parent 53e714d commit 8172803

1 file changed

Lines changed: 51 additions & 0 deletions

File tree

tests/unit/core/test_biglake.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Copyright (c) 2017 pandas-gbq Authors All rights reserved.
2+
# Use of this source code is governed by a BSD-style
3+
# license that can be found in the LICENSE file.
4+
5+
import collections
6+
from unittest import mock
7+
8+
import google.cloud.bigquery
9+
import pytest
10+
11+
from pandas_gbq.core import biglake
12+
from pandas_gbq.core import resource_references
13+
14+
15+
def test_get_table_metadata(mock_bigquery_client):
16+
reference = resource_references.BigLakeTableId(
17+
"my-project", "my-catalog", ("my-schema",), "my-table"
18+
)
19+
schema = [
20+
google.cloud.bigquery.SchemaField("col1", "STRING"),
21+
]
22+
job_mock = mock.create_autospec(google.cloud.bigquery.QueryJob)
23+
job_mock.schema = schema
24+
mock_bigquery_client.query.return_value = job_mock
25+
Row = collections.namedtuple("Row", ["total_rows"])
26+
mock_bigquery_client.query_and_wait.return_value = [Row(total_rows=123)]
27+
28+
metadata = biglake.get_table_metadata(reference=reference, bqclient=mock_bigquery_client)
29+
30+
assert metadata.schema == schema
31+
assert metadata.num_rows == 123
32+
mock_bigquery_client.query.assert_called_once()
33+
mock_bigquery_client.query_and_wait.assert_called_once()
34+
35+
36+
def test_get_table_metadata_no_schema(mock_bigquery_client):
37+
reference = resource_references.BigLakeTableId(
38+
"my-project", "my-catalog", ("my-schema",), "my-table"
39+
)
40+
job_mock = mock.create_autospec(google.cloud.bigquery.QueryJob)
41+
job_mock.schema = None
42+
mock_bigquery_client.query.return_value = job_mock
43+
Row = collections.namedtuple("Row", ["total_rows"])
44+
mock_bigquery_client.query_and_wait.return_value = [Row(total_rows=456)]
45+
46+
metadata = biglake.get_table_metadata(reference=reference, bqclient=mock_bigquery_client)
47+
48+
assert metadata.schema == []
49+
assert metadata.num_rows == 456
50+
mock_bigquery_client.query.assert_called_once()
51+
mock_bigquery_client.query_and_wait.assert_called_once()

0 commit comments

Comments
 (0)