コード例 #1
0
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": "中国人"
        },
    ]
コード例 #2
0
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": "中国人"
        },
    ]
コード例 #3
0
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": "中国人"},
    ]
コード例 #4
0
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": "中国人"
        },
    ]