Exemplo n.º 1
0
def test_step_table_recast():
    source = Resource(path="data/transform.csv")
    source.infer()
    target = transform(
        source,
        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
        },
    ]
Exemplo n.º 2
0
def test_transform():
    source = Resource(path="data/transform.csv")
    source.infer()
    target = transform(
        source,
        steps=[
            steps.table_normalize(),
            steps.table_melt(field_name="id"),
        ],
    )
    assert target.schema == {
        "fields": [
            {"name": "id", "type": "integer"},
            {"name": "variable"},
            {"name": "value"},
        ]
    }
    assert target.read_rows() == [
        {"id": 1, "variable": "name", "value": "germany"},
        {"id": 1, "variable": "population", "value": 83},
        {"id": 2, "variable": "name", "value": "france"},
        {"id": 2, "variable": "population", "value": 66},
        {"id": 3, "variable": "name", "value": "spain"},
        {"id": 3, "variable": "population", "value": 47},
    ]
Exemplo n.º 3
0
def test_step_table_melt():
    source = Resource("data/transform.csv")
    target = transform(
        source,
        steps=[
            steps.table_normalize(),
            steps.table_melt(field_name="name"),
        ],
    )
    assert target.schema == {
        "fields": [
            {
                "name": "name",
                "type": "string"
            },
            {
                "name": "variable"
            },
            {
                "name": "value"
            },
        ]
    }
    assert target.read_rows() == [
        {
            "name": "germany",
            "variable": "id",
            "value": 1
        },
        {
            "name": "germany",
            "variable": "population",
            "value": 83
        },
        {
            "name": "france",
            "variable": "id",
            "value": 2
        },
        {
            "name": "france",
            "variable": "population",
            "value": 66
        },
        {
            "name": "spain",
            "variable": "id",
            "value": 3
        },
        {
            "name": "spain",
            "variable": "population",
            "value": 47
        },
    ]
Exemplo n.º 4
0
def test_step_table_melt_with_to_field_names():
    source = Resource(path="data/transform.csv")
    target = transform(
        source,
        steps=[
            steps.table_normalize(),
            steps.table_melt(field_name="name",
                             variables=["population"],
                             to_field_names=["key", "val"]),
        ],
    )
    assert target.schema == {
        "fields": [
            {
                "name": "name",
                "type": "string"
            },
            {
                "name": "key"
            },
            {
                "name": "val"
            },
        ]
    }
    assert target.read_rows() == [
        {
            "name": "germany",
            "key": "population",
            "val": 83
        },
        {
            "name": "france",
            "key": "population",
            "val": 66
        },
        {
            "name": "spain",
            "key": "population",
            "val": 47
        },
    ]