def test_package_external_profile_invalid_local_from_descriptor(): profile = "data/profiles/camtrap.json" resource = Resource(name="table", path="data/table.csv") package = Package({"resources": [resource.to_dict()], "profile": profile}) assert len(package.metadata_errors) == 5 for error in package.metadata_errors: assert "required" in error.message
def test_package_external_profile_invalid_local_from_descriptor_unsafe(): profile = "data/../data/profiles/camtrap.json" resource = Resource(name="table", path="data/table.csv") package = Package({"resources": [resource.to_dict()], "profile": profile}) if IS_UNIX: with pytest.raises(FrictionlessException): package.metadata_errors
def test_transform_resource_from_descriptor(): source = Resource(path="data/transform.csv") source.infer() target = transform( source.to_dict(), steps=[ steps.table_normalize(), steps.table_melt(field_name="id"), steps.table_recast(field_name="id"), ], ) assert target.schema == source.schema assert target.read_rows() == [ { "id": 1, "name": "germany", "population": 83 }, { "id": 2, "name": "france", "population": 66 }, { "id": 3, "name": "spain", "population": 47 }, ]
def test_package_external_profile_invalid_remote_from_descriptor(): profile = ( "https://raw.githubusercontent.com/tdwg/camtrap-dp/main/camtrap-dp-profile.json" ) resource = Resource(name="table", path="data/table.csv") package = Package({"resources": [resource.to_dict()], "profile": profile}) assert len(package.metadata_errors) == 5 for error in package.metadata_errors: assert "required" in error.message