|
20 | 20 |
|
21 | 21 | import vcf |
22 | 22 |
|
| 23 | +from gcp_variant_transforms.beam_io.vcf_header_io import VcfHeaderFieldTypeConstants |
| 24 | +from gcp_variant_transforms.beam_io.vcf_header_io import VcfParserHeaderKeyConstants |
23 | 25 | from gcp_variant_transforms.libs import bigquery_schema_descriptor |
24 | 26 | from gcp_variant_transforms.libs import vcf_field_conflict_resolver |
25 | 27 | from gcp_variant_transforms.libs.bigquery_util import TableFieldConstants |
26 | | -from gcp_variant_transforms.libs.vcf_field_conflict_resolver import VcfParserConstants |
27 | 28 |
|
28 | 29 |
|
29 | 30 | SchemaTestConfig = namedtuple('SchemaTestConfig', |
30 | 31 | ['schema_type', 'schema_mode', 'field_data', |
31 | 32 | 'expected_resolved_field_data']) |
32 | 33 |
|
| 34 | + |
33 | 35 | class ConflictResolverTest(unittest.TestCase): |
34 | 36 | """Test case for :class:`FieldConflictResolver`.""" |
35 | 37 |
|
@@ -169,79 +171,83 @@ def test_resolving_schema_conflict_type_and_number(self): |
169 | 171 | def test_resolving_attribute_conflict_type(self): |
170 | 172 | self.assertEqual( |
171 | 173 | self._resolver.resolve_attribute_conflict( |
172 | | - VcfParserConstants.TYPE, |
173 | | - VcfParserConstants.INTEGER, |
174 | | - VcfParserConstants.FLOAT), |
175 | | - VcfParserConstants.FLOAT) |
| 174 | + VcfParserHeaderKeyConstants.TYPE, |
| 175 | + VcfHeaderFieldTypeConstants.INTEGER, |
| 176 | + VcfHeaderFieldTypeConstants.FLOAT), |
| 177 | + VcfHeaderFieldTypeConstants.FLOAT) |
176 | 178 | with self.assertRaises(ValueError): |
177 | 179 | self._resolver.resolve_attribute_conflict( |
178 | | - VcfParserConstants.TYPE, |
179 | | - VcfParserConstants.INTEGER, |
180 | | - VcfParserConstants.STRING) |
| 180 | + VcfParserHeaderKeyConstants.TYPE, |
| 181 | + VcfHeaderFieldTypeConstants.INTEGER, |
| 182 | + VcfHeaderFieldTypeConstants.STRING) |
181 | 183 | self.fail('Should raise exception for unresolvable types') |
182 | 184 |
|
183 | 185 | def test_resolving_attribute_conflict_number(self): |
184 | 186 | self.assertEqual( |
185 | 187 | self._resolver.resolve_attribute_conflict( |
186 | | - VcfParserConstants.NUM, 2, 3), |
| 188 | + VcfParserHeaderKeyConstants.NUM, 2, 3), |
187 | 189 | None) |
188 | 190 | self.assertEqual( |
189 | 191 | self._resolver.resolve_attribute_conflict( |
190 | | - VcfParserConstants.NUM, 2, None), |
| 192 | + VcfParserHeaderKeyConstants.NUM, 2, None), |
191 | 193 | None) |
192 | 194 | # Unresolvable cases. |
193 | 195 | for i in [0, 1]: |
194 | 196 | for j in [self._field_count('R'), self._field_count('G'), |
195 | 197 | self._field_count('A'), 2, None]: |
196 | 198 | with self.assertRaises(ValueError): |
197 | 199 | self._resolver.resolve_attribute_conflict( |
198 | | - VcfParserConstants.NUM, i, j) |
| 200 | + VcfParserHeaderKeyConstants.NUM, i, j) |
199 | 201 | self.fail( |
200 | 202 | 'Should raise exception for unresolvable number: %d vs %d'%(i, j)) |
201 | 203 |
|
202 | 204 | def test_resolving_attribute_conflict_in_number_allele(self): |
203 | 205 | self.assertEqual( |
204 | 206 | self._resolver_allele.resolve_attribute_conflict( |
205 | | - VcfParserConstants.NUM, 2, 3), |
| 207 | + VcfParserHeaderKeyConstants.NUM, 2, 3), |
206 | 208 | None) |
207 | 209 | self.assertEqual( |
208 | 210 | self._resolver_allele.resolve_attribute_conflict( |
209 | | - VcfParserConstants.NUM, 2, None), |
| 211 | + VcfParserHeaderKeyConstants.NUM, 2, None), |
210 | 212 | None) |
211 | 213 | # Unresolvable cases. |
212 | 214 | for i in [self._field_count('A')]: |
213 | 215 | for j in [self._field_count('R'), self._field_count('G'), 0, 1, 2, None]: |
214 | 216 | with self.assertRaises(ValueError): |
215 | 217 | self._resolver_allele.resolve_attribute_conflict( |
216 | | - VcfParserConstants.NUM, i, j) |
| 218 | + VcfParserHeaderKeyConstants.NUM, i, j) |
217 | 219 | self.fail( |
218 | 220 | 'Should raise exception for unresolvable number: %d vs %d'%(i, j)) |
219 | 221 |
|
220 | 222 | def test_resolving_all_field_definition_conflict_in_type(self): |
221 | 223 | self.assertEqual( |
222 | 224 | self._resolver_always.resolve_attribute_conflict( |
223 | | - VcfParserConstants.TYPE, VcfParserConstants.INTEGER, |
224 | | - VcfParserConstants.FLOAT), |
225 | | - VcfParserConstants.FLOAT) |
226 | | - for i in [VcfParserConstants.FLOAT, VcfParserConstants.INTEGER, |
227 | | - VcfParserConstants.STRING, VcfParserConstants.CHARACTER]: |
228 | | - for j in [VcfParserConstants.FLAG, VcfParserConstants.STRING]: |
| 225 | + VcfParserHeaderKeyConstants.TYPE, |
| 226 | + VcfHeaderFieldTypeConstants.INTEGER, |
| 227 | + VcfHeaderFieldTypeConstants.FLOAT), |
| 228 | + VcfHeaderFieldTypeConstants.FLOAT) |
| 229 | + for i in [VcfHeaderFieldTypeConstants.FLOAT, |
| 230 | + VcfHeaderFieldTypeConstants.INTEGER, |
| 231 | + VcfHeaderFieldTypeConstants.STRING, |
| 232 | + VcfHeaderFieldTypeConstants.CHARACTER]: |
| 233 | + for j in [VcfHeaderFieldTypeConstants.FLAG, |
| 234 | + VcfHeaderFieldTypeConstants.STRING]: |
229 | 235 | self.assertEqual( |
230 | 236 | self._resolver_always.resolve_attribute_conflict( |
231 | | - VcfParserConstants.TYPE, i, j), |
232 | | - VcfParserConstants.STRING) |
| 237 | + VcfParserHeaderKeyConstants.TYPE, i, j), |
| 238 | + VcfHeaderFieldTypeConstants.STRING) |
233 | 239 |
|
234 | 240 | def test_resolving_all_field_definition_conflict_in_number(self): |
235 | 241 | self.assertEqual( |
236 | 242 | self._resolver_always.resolve_attribute_conflict( |
237 | | - VcfParserConstants.NUM, 2, 3), None) |
| 243 | + VcfParserHeaderKeyConstants.NUM, 2, 3), None) |
238 | 244 | self.assertEqual( |
239 | 245 | self._resolver_always.resolve_attribute_conflict( |
240 | | - VcfParserConstants.NUM, 2, None), None) |
| 246 | + VcfParserHeaderKeyConstants.NUM, 2, None), None) |
241 | 247 |
|
242 | 248 | for i in [0, 1]: |
243 | 249 | for j in [self._field_count('R'), self._field_count('G'), |
244 | 250 | self._field_count('A'), 2, None]: |
245 | 251 | self.assertEqual( |
246 | 252 | self._resolver_always.resolve_attribute_conflict( |
247 | | - VcfParserConstants.NUM, i, j), None) |
| 253 | + VcfParserHeaderKeyConstants.NUM, i, j), None) |
0 commit comments