6
6
7
7
import main
8
8
9
+ GCP_PROJECT = "my-gcp-project"
9
10
BIGQUERY_DATASET = "my-bigquery-dataset"
10
11
BIGQUERY_SIMPLE_TABLE = "my-simple-table"
11
12
BIGQUERY_DOWNLOAD_TABLE = "my-download-table"
12
13
RESULT_BUCKET = "my-result-bucket"
13
14
14
15
15
16
@pytest .mark .parametrize (
16
- "bigquery_dataset, expected_dataset_calls " ,
17
+ "bigquery_dataset, expected_from_string_calls " ,
17
18
[
18
- ("my-bigquery-dataset" , [pretend .call ("my-bigquery-dataset" )]),
19
+ (
20
+ "my-bigquery-dataset" ,
21
+ [pretend .call ("my-bigquery-dataset" , default_project = GCP_PROJECT )],
22
+ ),
19
23
(
20
24
"my-bigquery-dataset some-other-dataset" ,
21
- [pretend .call ("my-bigquery-dataset" ), pretend .call ("some-other-dataset" )],
25
+ [
26
+ pretend .call ("my-bigquery-dataset" , default_project = GCP_PROJECT ),
27
+ pretend .call ("some-other-dataset" , default_project = GCP_PROJECT ),
28
+ ],
22
29
),
23
30
],
24
31
)
@@ -45,8 +52,9 @@ def test_function(
45
52
table_name ,
46
53
expected ,
47
54
bigquery_dataset ,
48
- expected_dataset_calls ,
55
+ expected_from_string_calls ,
49
56
):
57
+ monkeypatch .setenv ("GCP_PROJECT" , GCP_PROJECT )
50
58
monkeypatch .setenv ("BIGQUERY_DATASET" , bigquery_dataset )
51
59
monkeypatch .setenv ("BIGQUERY_SIMPLE_TABLE" , BIGQUERY_SIMPLE_TABLE )
52
60
monkeypatch .setenv ("BIGQUERY_DOWNLOAD_TABLE" , BIGQUERY_DOWNLOAD_TABLE )
@@ -82,17 +90,21 @@ def _load_table_from_file(fh, *a, **kw):
82
90
return load_job_stub
83
91
84
92
bigquery_client_stub = pretend .stub (
85
- dataset = pretend .call_recorder (lambda a : dataset_stub ),
86
93
load_table_from_file = pretend .call_recorder (_load_table_from_file ),
87
94
)
88
95
job_config_stub = pretend .stub ()
96
+ dataset_reference_stub = pretend .stub (
97
+ from_string = pretend .call_recorder (lambda * a , ** kw : dataset_stub )
98
+ )
99
+
89
100
monkeypatch .setattr (
90
101
main ,
91
102
"bigquery" ,
92
103
pretend .stub (
93
104
Client = lambda : bigquery_client_stub ,
94
105
LoadJobConfig = lambda : job_config_stub ,
95
106
SourceFormat = pretend .stub (NEWLINE_DELIMITED_JSON = pretend .stub ()),
107
+ dataset = pretend .stub (DatasetReference = dataset_reference_stub ),
96
108
),
97
109
)
98
110
@@ -106,9 +118,9 @@ def _load_table_from_file(fh, *a, **kw):
106
118
107
119
assert storage_client_stub .bucket .calls == [pretend .call ("my-bucket" )] + [
108
120
pretend .call (RESULT_BUCKET ),
109
- ] * len (expected_dataset_calls )
121
+ ] * len (expected_from_string_calls )
110
122
assert bucket_stub .get_blob .calls == [pretend .call (log_filename )]
111
- assert bigquery_client_stub . dataset .calls == expected_dataset_calls
123
+ assert dataset_reference_stub . from_string .calls == expected_from_string_calls
112
124
assert bigquery_client_stub .load_table_from_file .calls == [
113
125
pretend .call (
114
126
bigquery_client_stub .load_table_from_file .calls [0 ].args [0 ], # shh
@@ -118,10 +130,12 @@ def _load_table_from_file(fh, *a, **kw):
118
130
job_config = job_config_stub ,
119
131
rewind = True ,
120
132
)
121
- ] * len (expected_dataset_calls )
133
+ ] * len (expected_from_string_calls )
122
134
assert dataset_stub .table .calls == [pretend .call (table_name )] * len (
123
- expected_dataset_calls
135
+ expected_from_string_calls
124
136
)
125
137
assert blob_stub .delete .calls == [pretend .call ()]
126
- assert load_job_stub .result .calls == [pretend .call ()] * len (expected_dataset_calls )
138
+ assert load_job_stub .result .calls == [pretend .call ()] * len (
139
+ expected_from_string_calls
140
+ )
127
141
assert load_job_stub ._result == expected
0 commit comments