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, }, ]
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], }, ]
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", }, ]