1313# limitations under the License.
1414
1515import datetime
16- from unittest . mock import MagicMock
16+ from unittest import mock
1717
1818import bigframes .bigquery .obj as obj
1919import bigframes .operations as ops
20- import bigframes .series as series
20+ import bigframes .series
21+
22+
23+ def create_mock_series ():
24+ result = mock .create_autospec (bigframes .series .Series , instance = True )
25+ result .copy .return_value = result
26+ return result
2127
2228
2329def test_fetch_metadata_op_structure ():
@@ -50,44 +56,56 @@ def test_make_ref_json_op_structure():
5056
5157
5258def test_fetch_metadata_calls_apply_unary_op ():
53- s = MagicMock ( spec = series . Series )
59+ series = create_mock_series ( )
5460
55- obj .fetch_metadata (s )
61+ obj .fetch_metadata (series )
5662
57- s ._apply_unary_op .assert_called_once ()
58- args , _ = s ._apply_unary_op .call_args
63+ series ._apply_unary_op .assert_called_once ()
64+ args , _ = series ._apply_unary_op .call_args
5965 assert args [0 ] == ops .obj_fetch_metadata_op
6066
6167
6268def test_get_access_url_calls_apply_unary_op_without_duration ():
63- s = MagicMock ( spec = series . Series )
69+ series = create_mock_series ( )
6470
65- obj .get_access_url (s , mode = "r" )
71+ obj .get_access_url (series , mode = "r" )
6672
67- s ._apply_unary_op .assert_called_once ()
68- args , _ = s ._apply_unary_op .call_args
73+ series ._apply_unary_op .assert_called_once ()
74+ args , _ = series ._apply_unary_op .call_args
6975 assert isinstance (args [0 ], ops .ObjGetAccessUrl )
7076 assert args [0 ].mode == "r"
7177 assert args [0 ].duration is None
7278
7379
7480def test_get_access_url_calls_apply_unary_op_with_duration ():
75- s = MagicMock ( spec = series . Series )
81+ series = create_mock_series ( )
7682 duration = datetime .timedelta (hours = 1 )
7783
78- obj .get_access_url (s , mode = "rw" , duration = duration )
84+ obj .get_access_url (series , mode = "rw" , duration = duration )
7985
80- s ._apply_unary_op .assert_called_once ()
81- args , kwargs = s ._apply_unary_op .call_args
86+ series ._apply_unary_op .assert_called_once ()
87+ args , _ = series ._apply_unary_op .call_args
8288 assert isinstance (args [0 ], ops .ObjGetAccessUrl )
8389 assert args [0 ].mode == "rw"
8490 # 1 hour = 3600 seconds = 3600 * 1000 * 1000 microseconds
8591 assert args [0 ].duration == 3600000000
8692
8793
8894def test_make_ref_calls_apply_binary_op_with_authorizer ():
89- uri = MagicMock (spec = series .Series )
90- auth = MagicMock (spec = series .Series )
95+ uri = create_mock_series ()
96+ auth = create_mock_series ()
97+
98+ obj .make_ref (uri , authorizer = auth )
99+
100+ uri ._apply_binary_op .assert_called_once ()
101+ args , _ = uri ._apply_binary_op .call_args
102+ assert args [0 ] == auth
103+ assert args [1 ] == ops .obj_make_ref_op
104+
105+
106+ def test_make_ref_calls_apply_binary_op_with_authorizer_string ():
107+ uri = create_mock_series ()
108+ auth = "us.bigframes-test-connection"
91109
92110 obj .make_ref (uri , authorizer = auth )
93111
@@ -98,7 +116,7 @@ def test_make_ref_calls_apply_binary_op_with_authorizer():
98116
99117
100118def test_make_ref_calls_apply_unary_op_without_authorizer ():
101- json_val = MagicMock ( spec = series . Series )
119+ json_val = create_mock_series ( )
102120
103121 obj .make_ref (json_val )
104122
0 commit comments