|
28 | 28 | OUTPUT2 = os.path.join(OUTPUT_DIR, "books_flattened_02.tsv") |
29 | 29 |
|
30 | 30 |
|
31 | | -TABLE_SCHEMA = os.path.join(MODEL_DIR, 'table.yaml') |
32 | | -TABLE_DATA_JSON = os.path.join(INPUT_DIR, 'table-json.tsv') |
33 | | -TABLE_DATA_INLINED = os.path.join(INPUT_DIR, 'table-inlined.tsv') |
| 31 | +TABLE_SCHEMA = os.path.join(MODEL_DIR, "table.yaml") |
| 32 | +TABLE_DATA_JSON = os.path.join(INPUT_DIR, "table-json.tsv") |
| 33 | +TABLE_DATA_INLINED = os.path.join(INPUT_DIR, "table-inlined.tsv") |
34 | 34 |
|
35 | 35 |
|
36 | 36 | def _json(obj) -> str: |
37 | | - return json.dumps(obj, indent=' ', sort_keys=True) |
| 37 | + return json.dumps(obj, indent=" ", sort_keys=True) |
38 | 38 |
|
39 | 39 |
|
40 | 40 | class CsvAndTsvGenTestCase(unittest.TestCase): |
41 | | - |
42 | 41 | def test_object_model(self): |
43 | | - book = Book(id='B1', genres=['fantasy'], creator={}) |
| 42 | + book = Book(id="B1", genres=["fantasy"], creator={}) |
44 | 43 | logger.debug(as_json_obj(book.genres[0])) |
45 | | - assert str(book.genres[0]) == 'fantasy' |
46 | | - assert book.genres[0].code.text == 'fantasy' |
| 44 | + assert str(book.genres[0]) == "fantasy" |
| 45 | + assert book.genres[0].code.text == "fantasy" |
47 | 46 | processed = remove_empty_items(book.genres) |
48 | | - assert processed[0] == 'fantasy' |
49 | | - series = BookSeries(id='S1', creator=Author(name="Q. Writer"), reviews=[Review(rating=5)]) |
| 47 | + assert processed[0] == "fantasy" |
| 48 | + series = BookSeries(id="S1", creator=Author(name="Q. Writer"), reviews=[Review(rating=5)]) |
50 | 49 | series.books.append(book) |
51 | 50 | schemaview = SchemaView(SCHEMA) |
52 | 51 | shop = Shop() |
53 | 52 | shop.all_book_series.append(series) |
54 | 53 |
|
55 | | - csvstr = csv_dumper.dumps(shop, index_slot='all_book_series', schemaview=schemaview) |
| 54 | + csvstr = csv_dumper.dumps(shop, index_slot="all_book_series", schemaview=schemaview) |
56 | 55 | assert "," in csvstr |
57 | 56 | assert "\t" not in csvstr |
58 | 57 |
|
59 | | - tsvstr = tsv_dumper.dumps(shop, index_slot='all_book_series', schemaview=schemaview) |
| 58 | + tsvstr = tsv_dumper.dumps(shop, index_slot="all_book_series", schemaview=schemaview) |
60 | 59 | assert "\t" in tsvstr |
61 | 60 |
|
62 | 61 | def test_csvgen_roundtrip(self): |
63 | 62 | schemaview = SchemaView(SCHEMA) |
64 | 63 | data = yaml_loader.load(DATA, target_class=Shop) |
65 | | - csv_dumper.dump(data, to_file=OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
66 | | - roundtrip = csv_loader.load(OUTPUT, target_class=Shop, index_slot='all_book_series', schemaview=schemaview) |
| 64 | + csv_dumper.dump(data, to_file=OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
| 65 | + roundtrip = csv_loader.load(OUTPUT, target_class=Shop, index_slot="all_book_series", schemaview=schemaview) |
67 | 66 | logger.debug(json_dumper.dumps(roundtrip)) |
68 | | - logger.debug(f'COMPARE 1: {roundtrip}') |
69 | | - logger.debug(f'COMPARE 2: {data}') |
| 67 | + logger.debug(f"COMPARE 1: {roundtrip}") |
| 68 | + logger.debug(f"COMPARE 2: {data}") |
70 | 69 | assert roundtrip == data |
71 | 70 |
|
72 | 71 | def test_csvgen_roundtrip_to_dict(self): |
73 | 72 | schemaview = SchemaView(SCHEMA) |
74 | 73 | data = yaml_loader.load(DATA, target_class=Shop) |
75 | | - csv_dumper.dump(data, to_file=OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
76 | | - roundtrip = csv_loader.load_as_dict(OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
| 74 | + csv_dumper.dump(data, to_file=OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
| 75 | + roundtrip = csv_loader.load_as_dict(OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
77 | 76 | assert roundtrip == json_dumper.to_dict(data) |
78 | 77 |
|
79 | 78 | def test_tsvgen_roundtrip(self): |
80 | 79 | schemaview = SchemaView(SCHEMA) |
81 | 80 | data = yaml_loader.load(DATA, target_class=Shop) |
82 | | - tsv_dumper.dump(data, to_file=OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
83 | | - roundtrip = tsv_loader.load(OUTPUT, target_class=Shop, index_slot='all_book_series', schemaview=schemaview) |
| 81 | + tsv_dumper.dump(data, to_file=OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
| 82 | + roundtrip = tsv_loader.load(OUTPUT, target_class=Shop, index_slot="all_book_series", schemaview=schemaview) |
84 | 83 | assert roundtrip == data |
85 | 84 |
|
86 | 85 | def test_tsvgen_roundtrip_to_dict(self): |
87 | 86 | schemaview = SchemaView(SCHEMA) |
88 | 87 | data = yaml_loader.load(DATA, target_class=Shop) |
89 | | - tsv_dumper.dump(data, to_file=OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
90 | | - roundtrip = tsv_loader.load_as_dict(OUTPUT, index_slot='all_book_series', schemaview=schemaview) |
| 88 | + tsv_dumper.dump(data, to_file=OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
| 89 | + roundtrip = tsv_loader.load_as_dict(OUTPUT, index_slot="all_book_series", schemaview=schemaview) |
91 | 90 | assert roundtrip == json_dumper.to_dict(data) |
92 | 91 |
|
93 | 92 | def test_csvgen_unroundtrippable(self): |
94 | 93 | schemaview = SchemaView(SCHEMA) |
95 | | - #schema = YAMLGenerator(SCHEMA).schema |
| 94 | + # schema = YAMLGenerator(SCHEMA).schema |
96 | 95 | data = yaml_loader.load(DATA2, target_class=Shop) |
97 | 96 | logger.debug(data.all_book_series[0]) |
98 | 97 | logger.debug(data.all_book_series[0].genres[0]) |
99 | | - assert str(data.all_book_series[0].genres[0]) == 'fantasy' |
| 98 | + assert str(data.all_book_series[0].genres[0]) == "fantasy" |
100 | 99 | logger.debug(yaml_dumper.dumps(data)) |
101 | 100 | logger.debug(json_dumper.dumps(data)) |
102 | 101 | processed = remove_empty_items(data) |
103 | | - logger.debug(f'PROC {processed["all_book_series"]}') |
| 102 | + logger.debug(f"PROC {processed['all_book_series']}") |
104 | 103 | asj = as_json_object(processed, None) |
105 | | - logger.debug(f'ASJ {asj["all_book_series"]}') |
| 104 | + logger.debug(f"ASJ {asj['all_book_series']}") |
106 | 105 | reconstituted_json = json.loads(json_dumper.dumps(data)) |
107 | | - s0 = reconstituted_json['all_book_series'][0] |
| 106 | + s0 = reconstituted_json["all_book_series"][0] |
108 | 107 | logger.debug(s0) |
109 | 108 | logger.debug(json_dumper.dumps(data)) |
110 | | - #logger.debug(csv_dumper.dumps(data, index_slot='all_book_series', schema=schema)) |
111 | | - csv_dumper.dump(data, to_file=OUTPUT2, index_slot='all_book_series', schemaview=schemaview) |
112 | | - #assert False |
113 | | - roundtrip = csv_loader.load(OUTPUT2, target_class=Shop, index_slot='all_book_series', schemaview=schemaview) |
| 109 | + # logger.debug(csv_dumper.dumps(data, index_slot='all_book_series', schema=schema)) |
| 110 | + csv_dumper.dump(data, to_file=OUTPUT2, index_slot="all_book_series", schemaview=schemaview) |
| 111 | + # assert False |
| 112 | + roundtrip = csv_loader.load(OUTPUT2, target_class=Shop, index_slot="all_book_series", schemaview=schemaview) |
114 | 113 | logger.debug(json_dumper.dumps(roundtrip)) |
115 | 114 | assert roundtrip == data |
116 | 115 |
|
117 | 116 | def test_table_model(self): |
118 | 117 | schemaview = SchemaView(SCHEMA) |
119 | | - table_json= csv_loader.load(TABLE_DATA_JSON, target_class=Table, index_slot='rows', schemaview=schemaview) |
| 118 | + table_json = csv_loader.load(TABLE_DATA_JSON, target_class=Table, index_slot="rows", schemaview=schemaview) |
120 | 119 | for row in table_json.rows: |
121 | 120 | assert len(row["columnB"]) == 2 |
122 | 121 |
|
123 | 122 | def test_tsvgen_unroundtrippable(self): |
124 | 123 | schemaview = SchemaView(SCHEMA) |
125 | 124 | data = yaml_loader.load(DATA2, target_class=Shop) |
126 | | - assert str(data.all_book_series[0].genres[0]) == 'fantasy' |
127 | | - tsv_dumper.dump(data, to_file=OUTPUT2, index_slot='all_book_series', schemaview=schemaview) |
128 | | - roundtrip = tsv_loader.load(OUTPUT2, target_class=Shop, index_slot='all_book_series', schemaview=schemaview) |
| 125 | + assert str(data.all_book_series[0].genres[0]) == "fantasy" |
| 126 | + tsv_dumper.dump(data, to_file=OUTPUT2, index_slot="all_book_series", schemaview=schemaview) |
| 127 | + roundtrip = tsv_loader.load(OUTPUT2, target_class=Shop, index_slot="all_book_series", schemaview=schemaview) |
129 | 128 | assert roundtrip == data |
130 | 129 |
|
131 | | -if __name__ == '__main__': |
| 130 | + |
| 131 | +if __name__ == "__main__": |
132 | 132 | unittest.main() |
0 commit comments