def test_resource_sync_schema(): schema = { "fields": [{ "name": "name", "type": "string" }, { "name": "id", "type": "integer" }] } resource = Resource(path="data/sync-schema.csv", schema=schema, sync_schema=True) resource.infer() assert resource.schema == schema assert resource.read_header() == ["name", "id"] assert resource.read_sample() == [["english", "1"], ["中国人", "2"]] assert resource.read_rows() == [ { "id": 1, "name": "english" }, { "id": 2, "name": "中国人" }, ]
def test_resource_source_path(): path = "data/table.csv" resource = Resource({"path": path}) assert resource.path == path assert resource.data is None assert resource.source == path assert resource.basepath == "" assert resource.inline is False assert resource.tabular is True assert resource.multipart is False assert ( resource.read_bytes() == b"id,name\n1,english\n2,\xe4\xb8\xad\xe5\x9b\xbd\xe4\xba\xba\n" ) assert resource.read_data() == [["1", "english"], ["2", "中国人"]] assert resource.read_rows() == [ {"id": 1, "name": "english"}, {"id": 2, "name": "中国人"}, ] assert resource.read_header() == ["id", "name"] assert resource.read_sample() == [["1", "english"], ["2", "中国人"]] assert resource.read_stats() == { "hash": "6c2c61dd9b0e9c6876139a449ed87933", "bytes": 30, "rows": 2, }
def test_resource_source_data(): data = [["id", "name"], ["1", "english"], ["2", "中国人"]] resource = Resource({"data": data}) assert resource.path is None assert resource.data == data assert resource.source == data assert resource.basepath == "" assert resource.inline is True assert resource.tabular is True assert resource.multipart is False assert resource.read_bytes() == b"" assert resource.read_data() == data[1:] assert resource.read_rows() == [ { "id": 1, "name": "english" }, { "id": 2, "name": "中国人" }, ] assert resource.read_header() == ["id", "name"] assert resource.read_sample() == data[1:] assert resource.read_stats() == { "hash": "", "bytes": 0, "fields": 2, "rows": 2, }