def __init__( self, filepath: str, table_params: dict, metadata: Union[dict, str, Metadata], **kwargs, ): """Base class for validators. Not a useable, but used to be inherited for other validators. Args: filepath (str): path to data to validate table_params (dict): Parameters which define how data is validated. Taken from config. metadata (dict): Standard metadata for the table to validate. """ self.filepath = filepath self.table_params = table_params self.metadata = Metadata.from_infer(metadata) self.metadata.set_col_type_category_from_types() self.response = ValidatorResult( result_dict=kwargs.get("result_dict"), validator_valid_key_name=kwargs.get("validator_valid_key_name"), )
def test_non_unique_column_names(): with pytest.raises(ValueError): Metadata.from_infer({ "name": "non_unique_column_test", "columns": [ { "name": "c1", "type": "string" }, { "name": "c1", "type": "int64" }, ], })
def validate_and_enrich_metadata(metadata: Union[Metadata, dict]) -> Metadata: m = Metadata.from_infer(metadata) m = deepcopy(m) m.set_col_type_category_from_types() return m
def test_inferred_input_fails(fake_input): with pytest.raises(TypeError): Metadata.from_infer(fake_input)
def test_inferred_input_passes(monkeypatch, patch_out, fake_input): monkeypatch.setattr(Metadata, patch_out, lambda x: True) assert Metadata.from_infer(fake_input)