|
23 | 23 |
|
24 | 24 | @pytest.fixture |
25 | 25 | def mock_import_bigframes(): |
26 | | - with mock.patch.object( |
| 26 | + with mock.patch.object( |
27 | 27 | _datasets_utils, "_try_import_bigframes" |
28 | 28 | ) as mock_import_bigframes: |
29 | | - mock_read_gbq_table_result = mock.MagicMock() |
30 | | - mock_read_gbq_table_result.sql = "SELECT * FROM `project.dataset.table`" |
| 29 | + mock_read_gbq_table_result = mock.MagicMock() |
| 30 | + mock_read_gbq_table_result.sql = "SELECT * FROM `project.dataset.table`" |
31 | 31 |
|
32 | | - bigframes = mock.MagicMock() |
33 | | - bigframes.pandas.read_gbq_table.return_value = mock_read_gbq_table_result |
| 32 | + bigframes = mock.MagicMock() |
| 33 | + bigframes.pandas.read_gbq_table.return_value = mock_read_gbq_table_result |
34 | 34 |
|
35 | | - mock_import_bigframes.return_value = bigframes |
36 | | - yield mock_import_bigframes |
| 35 | + mock_import_bigframes.return_value = bigframes |
| 36 | + yield mock_import_bigframes |
| 37 | + |
| 38 | + |
| 39 | +@pytest.fixture |
| 40 | +def mock_get_batch_job_unique_name(): |
| 41 | + with mock.patch.object( |
| 42 | + _datasets_utils, "get_batch_job_unique_name" |
| 43 | + ) as mock_unique_name: |
| 44 | + mock_unique_name.return_value = "12345678901234_abcde" |
| 45 | + yield mock_unique_name |
37 | 46 |
|
38 | 47 |
|
39 | 48 | class TestMultimodalDataset: |
40 | 49 |
|
41 | | - def test_read_config(self): |
42 | | - dataset = types.MultimodalDataset( |
| 50 | + def test_read_config(self): |
| 51 | + dataset = types.MultimodalDataset( |
43 | 52 | metadata={ |
44 | 53 | "gemini_request_read_config": { |
45 | 54 | "assembled_request_column_name": "test_column", |
46 | 55 | }, |
47 | 56 | }, |
48 | 57 | ) |
49 | 58 |
|
50 | | - assert isinstance(dataset.read_config, types.GeminiRequestReadConfig) |
51 | | - assert dataset.read_config.assembled_request_column_name == "test_column" |
| 59 | + assert isinstance(dataset.read_config, types.GeminiRequestReadConfig) |
| 60 | + assert dataset.read_config.assembled_request_column_name == "test_column" |
52 | 61 |
|
53 | | - def test_read_config_empty(self): |
54 | | - dataset = types.MultimodalDataset() |
55 | | - assert dataset.read_config is None |
| 62 | + def test_read_config_empty(self): |
| 63 | + dataset = types.MultimodalDataset() |
| 64 | + assert dataset.read_config is None |
56 | 65 |
|
57 | | - def test_set_read_config(self): |
58 | | - dataset = types.MultimodalDataset() |
| 66 | + def test_set_read_config(self): |
| 67 | + dataset = types.MultimodalDataset() |
59 | 68 |
|
60 | | - dataset.set_read_config( |
| 69 | + dataset.set_read_config( |
61 | 70 | read_config={ |
62 | 71 | "assembled_request_column_name": "test_column", |
63 | 72 | }, |
64 | 73 | ) |
65 | 74 |
|
66 | | - assert isinstance(dataset, types.MultimodalDataset) |
67 | | - assert ( |
| 75 | + assert isinstance(dataset, types.MultimodalDataset) |
| 76 | + assert ( |
68 | 77 | dataset.metadata.gemini_request_read_config.assembled_request_column_name |
69 | 78 | == "test_column" |
70 | 79 | ) |
71 | 80 |
|
72 | | - def test_set_read_config_preserves_other_fields(self): |
73 | | - dataset = types.MultimodalDataset( |
| 81 | + def test_set_read_config_preserves_other_fields(self): |
| 82 | + dataset = types.MultimodalDataset( |
74 | 83 | metadata={ |
75 | 84 | "inputConfig": { |
76 | 85 | "bigquerySource": {"uri": "bq://test_table"}, |
77 | 86 | }, |
78 | 87 | }, |
79 | 88 | ) |
80 | 89 |
|
81 | | - dataset.set_read_config( |
| 90 | + dataset.set_read_config( |
82 | 91 | read_config={ |
83 | 92 | "assembled_request_column_name": "test_column", |
84 | 93 | }, |
85 | 94 | ) |
86 | 95 |
|
87 | | - assert isinstance(dataset, types.MultimodalDataset) |
88 | | - assert ( |
| 96 | + assert isinstance(dataset, types.MultimodalDataset) |
| 97 | + assert ( |
89 | 98 | dataset.metadata.gemini_request_read_config.assembled_request_column_name |
90 | 99 | == "test_column" |
91 | 100 | ) |
92 | | - assert dataset.metadata.input_config.bigquery_source.uri == "bq://test_table" |
| 101 | + assert dataset.metadata.input_config.bigquery_source.uri == "bq://test_table" |
93 | 102 |
|
94 | | - def test_bigquery_uri(self): |
95 | | - dataset = types.MultimodalDataset( |
| 103 | + def test_bigquery_uri(self): |
| 104 | + dataset = types.MultimodalDataset( |
96 | 105 | metadata={ |
97 | 106 | "inputConfig": { |
98 | 107 | "bigquerySource": {"uri": "bq://project.dataset.table"}, |
99 | 108 | }, |
100 | 109 | }, |
101 | 110 | ) |
102 | 111 |
|
103 | | - assert dataset.bigquery_uri == "bq://project.dataset.table" |
| 112 | + assert dataset.bigquery_uri == "bq://project.dataset.table" |
104 | 113 |
|
105 | | - def test_bigquery_uri_empty(self): |
106 | | - dataset = types.MultimodalDataset() |
107 | | - assert dataset.bigquery_uri is None |
| 114 | + def test_bigquery_uri_empty(self): |
| 115 | + dataset = types.MultimodalDataset() |
| 116 | + assert dataset.bigquery_uri is None |
108 | 117 |
|
109 | | - def test_set_bigquery_uri(self): |
110 | | - dataset = types.MultimodalDataset() |
| 118 | + def test_set_bigquery_uri(self): |
| 119 | + dataset = types.MultimodalDataset() |
111 | 120 |
|
112 | | - dataset.set_bigquery_uri("bq://project.dataset.table") |
| 121 | + dataset.set_bigquery_uri("bq://project.dataset.table") |
113 | 122 |
|
114 | | - assert isinstance(dataset, types.MultimodalDataset) |
115 | | - assert ( |
| 123 | + assert isinstance(dataset, types.MultimodalDataset) |
| 124 | + assert ( |
116 | 125 | dataset.metadata.input_config.bigquery_source.uri |
117 | 126 | == "bq://project.dataset.table" |
118 | 127 | ) |
119 | 128 |
|
120 | | - def test_set_bigquery_uri_without_prefix(self): |
121 | | - dataset = types.MultimodalDataset() |
| 129 | + def test_set_bigquery_uri_without_prefix(self): |
| 130 | + dataset = types.MultimodalDataset() |
122 | 131 |
|
123 | | - dataset.set_bigquery_uri("project.dataset.table") |
| 132 | + dataset.set_bigquery_uri("project.dataset.table") |
124 | 133 |
|
125 | | - assert isinstance(dataset, types.MultimodalDataset) |
126 | | - assert ( |
| 134 | + assert isinstance(dataset, types.MultimodalDataset) |
| 135 | + assert ( |
127 | 136 | dataset.metadata.input_config.bigquery_source.uri |
128 | 137 | == "bq://project.dataset.table" |
129 | 138 | ) |
130 | 139 |
|
131 | | - def test_set_bigquery_uri_preserves_other_fields(self): |
132 | | - dataset = types.MultimodalDataset( |
| 140 | + def test_set_bigquery_uri_preserves_other_fields(self): |
| 141 | + dataset = types.MultimodalDataset( |
133 | 142 | metadata={ |
134 | 143 | "gemini_request_read_config": { |
135 | 144 | "assembled_request_column_name": "test_column", |
136 | 145 | }, |
137 | 146 | }, |
138 | 147 | ) |
139 | 148 |
|
140 | | - dataset.set_bigquery_uri("bq://test_table") |
| 149 | + dataset.set_bigquery_uri("bq://test_table") |
141 | 150 |
|
142 | | - assert isinstance(dataset, types.MultimodalDataset) |
143 | | - assert dataset.metadata.input_config.bigquery_source.uri == "bq://test_table" |
144 | | - assert ( |
| 151 | + assert isinstance(dataset, types.MultimodalDataset) |
| 152 | + assert dataset.metadata.input_config.bigquery_source.uri == "bq://test_table" |
| 153 | + assert ( |
145 | 154 | dataset.metadata.gemini_request_read_config.assembled_request_column_name |
146 | 155 | == "test_column" |
147 | 156 | ) |
148 | 157 |
|
149 | | - def test_to_bigframes(self, mock_import_bigframes): |
150 | | - dataset = types.MultimodalDataset() |
151 | | - dataset.set_bigquery_uri("bq://project.dataset.table") |
| 158 | + def test_to_bigframes(self, mock_import_bigframes): |
| 159 | + dataset = types.MultimodalDataset() |
| 160 | + dataset.set_bigquery_uri("bq://project.dataset.table") |
152 | 161 |
|
153 | | - df = dataset.to_bigframes() |
| 162 | + df = dataset.to_bigframes() |
154 | 163 |
|
155 | | - assert "project.dataset.table" in df.sql |
156 | | - mock_import_bigframes.return_value.pandas.read_gbq_table.assert_called_once_with( |
| 164 | + assert "project.dataset.table" in df.sql |
| 165 | + mock_import_bigframes.return_value.pandas.read_gbq_table.assert_called_once_with( |
157 | 166 | "project.dataset.table" |
158 | 167 | ) |
159 | 168 |
|
| 169 | + def test_get_batch_job_destination(self, mock_get_batch_job_unique_name): |
| 170 | + dataset = types.MultimodalDataset( |
| 171 | + name="projects/vertex-sdk-dev/locations/us-central1/datasets/12345", |
| 172 | + display_name="test_multimodal_dataset", |
| 173 | + metadata={ |
| 174 | + "inputConfig": { |
| 175 | + "bigquerySource": { |
| 176 | + "uri": "bq://target_project.target_dataset.target_table" |
| 177 | + }, |
| 178 | + }, |
| 179 | + }, |
| 180 | + ) |
| 181 | + destination = dataset.get_batch_job_destination() |
| 182 | + assert ( |
| 183 | + destination.vertex_dataset.display_name |
| 184 | + == "test_multimodal_dataset_batch_output_12345678901234_abcde" |
| 185 | + ) |
| 186 | + assert ( |
| 187 | + destination.vertex_dataset.bigquery_destination |
| 188 | + == "bq://target_project.target_dataset.target_table_batch_output_12345678901234_abcde" |
| 189 | + ) |
| 190 | + |
160 | 191 |
|
161 | 192 | class TestGeminiRequestReadConfig: |
162 | 193 | def test_single_turn_template(self): |
|
0 commit comments