def test_validate_success(self): mock_fs = create_autospec(DirectIngestGCSFileSystem) mock_fs.get_metadata.return_value = {"total_data_points": "5"} validator = OptimizedMetricBigQueryViewExportValidator(mock_fs) for path in self.staging_paths: result = validator.validate(path) self.assertTrue(result) mock_fs.assert_has_calls([ call.get_metadata(self.staging_paths[0]), call.get_metadata(self.staging_paths[1]), ])
def test_validate_failure(self): mock_fs = create_autospec(DirectIngestGCSFileSystem) mock_fs.get_metadata.side_effect = [ { "total_data_points": "5" }, { "total_data_points": "0" }, ] validator = OptimizedMetricBigQueryViewExportValidator(mock_fs) self.assertTrue(validator.validate(self.staging_paths[0])) self.assertFalse(validator.validate(self.staging_paths[1])) mock_fs.assert_has_calls([ call.get_metadata(self.staging_paths[0]), call.get_metadata(self.staging_paths[1]), ])
def test_validate_no_metadata(self): mock_fs = create_autospec(DirectIngestGCSFileSystem) mock_fs.get_metadata.return_value = None validator = OptimizedMetricBigQueryViewExportValidator(mock_fs) for path in self.staging_paths: result = validator.validate(path) self.assertFalse(result) # We failed before validating the second path mock_fs.assert_has_calls([call.get_metadata(self.staging_paths[0])])
def test_validate_not_integer(self) -> None: mock_fs = create_autospec(DirectIngestGCSFileSystem) mock_fs.get_metadata.return_value = { "total_data_points": "HELLO WORLD" } validator = OptimizedMetricBigQueryViewExportValidator(mock_fs) for path in self.staging_paths: result = validator.validate(path, allow_empty=False) self.assertFalse(result) # We failed before validating the second path mock_fs.assert_has_calls([call.get_metadata(self.staging_paths[0])])