| 
									
										
										
										
											2024-05-28 09:30:30 +02:00
										 |  |  | from typing import List | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import pytest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from metadata.generated.schema.tests.basic import TestCaseStatus | 
					
						
							|  |  |  | from metadata.generated.schema.tests.testCase import TestCase | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestDataQuality: | 
					
						
							|  |  |  |     @pytest.mark.parametrize( | 
					
						
							|  |  |  |         "test_case_name,expected_status", | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             ("first_name_includes_john", TestCaseStatus.Success), | 
					
						
							|  |  |  |             ("first_name_is_john", TestCaseStatus.Failed), | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     def test_data_quality( | 
					
						
							|  |  |  |         self, run_test_suite_workflow, metadata, test_case_name, expected_status | 
					
						
							|  |  |  |     ): | 
					
						
							|  |  |  |         test_cases: List[TestCase] = metadata.list_entities( | 
					
						
							|  |  |  |             TestCase, fields=["*"], skip_on_failure=True | 
					
						
							|  |  |  |         ).entities | 
					
						
							|  |  |  |         test_case: TestCase = next( | 
					
						
							| 
									
										
										
										
											2024-06-05 21:18:37 +02:00
										 |  |  |             (t for t in test_cases if t.name.root == test_case_name), None | 
					
						
							| 
									
										
										
										
											2024-05-28 09:30:30 +02:00
										 |  |  |         ) | 
					
						
							|  |  |  |         assert test_case is not None | 
					
						
							|  |  |  |         assert test_case.testCaseResult.testCaseStatus == expected_status |