Beispiel #1
0
def test_pandas_write_constraints():
    source = Package("data/storage/constraints.json").get_resource("constraints")
    target = source.write(format="pandas")
    with target:

        # Assert schema
        assert target.schema == {
            "fields": [
                {"name": "required", "type": "string"},  # constraint removal
                {"name": "minLength", "type": "string"},  # constraint removal
                {"name": "maxLength", "type": "string"},  # constraint removal
                {"name": "pattern", "type": "string"},  # constraint removal
                {"name": "enum", "type": "string"},  # constraint removal
                {"name": "minimum", "type": "integer"},  # constraint removal
                {"name": "maximum", "type": "integer"},  # constraint removal
            ],
        }

        # Assert rows
        assert target.read_rows() == [
            {
                "required": "passing",
                "minLength": "passing",
                "maxLength": "passing",
                "pattern": "passing",
                "enum": "passing",
                "minimum": 5,
                "maximum": 5,
            },
        ]
def test_spss_storage_constraints(tmpdir):
    source = Package("data/storage/constraints.json").get_resource(
        "constraints")
    if not IS_MACOS:
        target = source.write(str(tmpdir.join("table.sav")))
        with target:

            # Assert schema
            assert target.schema == {
                "fields": [
                    {
                        "name": "required",
                        "type": "string"
                    },  # constraint removal
                    {
                        "name": "minLength",
                        "type": "string"
                    },  # constraint removal
                    {
                        "name": "maxLength",
                        "type": "string"
                    },  # constraint removal
                    {
                        "name": "pattern",
                        "type": "string"
                    },  # constraint removal
                    {
                        "name": "enum",
                        "type": "string"
                    },  # constraint removal
                    {
                        "name": "minimum",
                        "type": "integer"
                    },  # constraint removal
                    {
                        "name": "maximum",
                        "type": "integer"
                    },  # constraint removal
                ],
            }

            # Asssert rows
            assert target.read_rows() == [
                {
                    "required": "passing",
                    "minLength": "passing",
                    "maxLength": "passing",
                    "pattern": "passing",
                    "enum": "passing",
                    "minimum": 5,
                    "maximum": 5,
                },
            ]
Beispiel #3
0
def test_pandas_parser_write_types():
    source = Package("data/storage/types.json").get_resource("types")
    target = source.write(format="pandas")
    with target:

        # Assert schema
        assert target.schema == {
            "fields": [
                {"name": "any", "type": "string"},  # type fallback
                {"name": "array", "type": "array"},
                {"name": "boolean", "type": "boolean"},
                {"name": "date", "type": "date"},
                {"name": "date_year", "type": "date"},  # format removal
                {"name": "datetime", "type": "datetime"},
                {"name": "duration", "type": "duration"},
                {"name": "geojson", "type": "object"},
                {"name": "geopoint", "type": "array"},
                {"name": "integer", "type": "integer"},
                {"name": "number", "type": "number"},
                {"name": "object", "type": "object"},
                {"name": "string", "type": "string"},
                {"name": "time", "type": "time"},
                {"name": "year", "type": "integer"},  # type downgrade
                {"name": "yearmonth", "type": "array"},  # type downgrade
            ],
        }

        # Assert rows
        assert target.read_rows() == [
            {
                "any": "中国人",
                "array": ["Mike", "John"],
                "boolean": True,
                "date": datetime.date(2015, 1, 1),
                "date_year": datetime.date(2015, 1, 1),
                "datetime": datetime.datetime(2015, 1, 1, 3, 0),
                "duration": isodate.parse_duration("P1Y1M"),
                "geojson": {"type": "Point", "coordinates": [33, 33.33]},
                "geopoint": [30, 70],
                "integer": 1,
                "number": 7,
                "object": {"chars": 560},
                "string": "english",
                "time": datetime.time(3, 0),
                "year": 2015,
                "yearmonth": [2015, 1],
            },
        ]
Beispiel #4
0
def test_spss_parser_write_types(tmpdir):
    source = Package("data/storage/types.json").get_resource("types")
    target = source.write(str(tmpdir.join("table.sav")))
    with target:

        # Assert schema
        assert target.schema == {
            "fields": [
                {
                    "name": "any",
                    "type": "string"
                },  # type fallback
                {
                    "name": "array",
                    "type": "string"
                },  # type fallback
                {
                    "name": "boolean",
                    "type": "string"
                },  # type fallback
                {
                    "name": "date",
                    "type": "date"
                },
                {
                    "name": "date_year",
                    "type": "date"
                },  # format removal
                {
                    "name": "datetime",
                    "type": "datetime"
                },
                {
                    "name": "duration",
                    "type": "string"
                },  # type fallback
                {
                    "name": "geojson",
                    "type": "string"
                },  # type fallback
                {
                    "name": "geopoint",
                    "type": "string"
                },  # type fallback
                {
                    "name": "integer",
                    "type": "integer"
                },
                {
                    "name": "number",
                    "type": "number"
                },
                {
                    "name": "object",
                    "type": "string"
                },  # type fallback
                {
                    "name": "string",
                    "type": "string"
                },
                {
                    "name": "time",
                    "type": "time"
                },
                {
                    "name": "year",
                    "type": "integer"
                },  # type downgrade
                {
                    "name": "yearmonth",
                    "type": "string"
                },  # type fallback
            ],
        }

        # Asssert rows
        assert target.read_rows() == [
            {
                "any": "中国人",
                "array": '["Mike", "John"]',
                "boolean": "true",
                "date": datetime.date(2015, 1, 1),
                "date_year": datetime.date(2015, 1, 1),
                "datetime": datetime.datetime(2015, 1, 1, 3, 0),
                "duration": "P1Y1M",
                "geojson": '{"type": "Point", "coordinates": [33, 33.33]}',
                "geopoint": "30,70",
                "integer": 1,
                "number": 7.0,
                "object": '{"chars": 560}',
                "string": "english",
                "time": datetime.time(3, 0),
                "year": 2015,
                "yearmonth": "2015-01",
            },
        ]