def test_postgresql_storage_comment_support(postgresql_url): # Write source = Resource(path="data/table.csv") source.infer() source.schema.get_field("id").description = "integer field" source.schema.get_field("name").description = "string field" source.to_sql(url=postgresql_url, force=True) # Read target = Resource.from_sql(url=postgresql_url, name="table") assert target.schema == { "fields": [ { "name": "id", "type": "integer", "description": "integer field" }, { "name": "name", "type": "string", "description": "string field" }, ] } assert target.read_rows() == [ { "id": 1, "name": "english" }, { "id": 2, "name": "中国人" }, ]
def test_sql_storage_resource_url_argument(sqlite_url): source = Resource(path="data/table.csv") source.to_sql(url=sqlite_url) target = Resource.from_sql(name="table", url=sqlite_url) assert target.schema == { "fields": [ { "name": "id", "type": "integer" }, { "name": "name", "type": "string" }, ] } assert target.read_rows() == [ { "id": 1, "name": "english" }, { "id": 2, "name": "中国人" }, ]
def test_package_to_zip_resolve_inline_sql(tmpdir, database_url): # Write target = os.path.join(tmpdir, "package.zip") resource = Resource.from_sql(name="table", url=database_url) package = Package(resources=[resource]) package.to_zip(target, resolve=["inline"]) # Read package = Package(target) assert package.get_resource("table").path == "table.csv" assert package.get_resource("table").read_rows() == [ {"id": 1, "name": "english"}, {"id": 2, "name": "中国人"}, ]
def test_resource_to_zip_resolve_inline_sql(tmpdir, database_url): # Write target = os.path.join(tmpdir, "resource.zip") resource = Resource.from_sql(name="table", url=database_url) resource.to_zip(target, resolve=["inline"]) # Read resource = Resource(target) assert resource.name == "table" assert resource.path == "table.csv" assert resource.read_rows() == [ { "id": 1, "name": "english" }, { "id": 2, "name": "中国人" }, ]