Этап: SQLite и запуск пайплайна

This commit is contained in:
vladslav064 committed 2026-11-12 08:43:34 +03:00
1 parent 626ac21b41
commit d90f1f30b2
15 files changed
+2069 -6

No files matched your search

+35
View File
@@ -1,4 +1,6 @@
import csv
from collections import defaultdict
from datetime import date, datetime
from src.generate_data import generate_data
@@ -18,3 +20,36 @@ def test_repeated_generation_is_byte_identical(tmp_path):
first_run = path.read_bytes()
generate_data(path)
assert path.read_bytes() == first_run
def test_planned_examples_are_present_in_generated_csv(tmp_path):
path = tmp_path / "orders.csv"
generate_data(path)
with path.open(encoding="utf-8", newline="") as source:
rows = list(csv.DictReader(source))
expected_values = {
"order_id": {""},
"order_date": {"", "2024-02-30", "03/15/2024"},
"category": {"", " тОВАРЫ для ДОМА "},
"quantity": {"", "1.5", "0", "-2", "три"},
"unit_price": {"", "0", "-12.50", "бесплатно", "12.340", "12,50"},
}
for field, expected in expected_values.items():
assert expected <= {row[field] for row in rows}, field
by_id = defaultdict(list)
for row in rows:
by_id[row["order_id"]].append(row)
first, repeat = by_id["1"]
assert first == repeat
iso, local = sorted(by_id["2"], key=lambda row: "." in row["order_date"])
assert date.fromisoformat(iso["order_date"]) == datetime.strptime(
local["order_date"], "%d.%m.%Y"
).date()
assert iso == local | {"order_date": iso["order_date"]}
first, conflict = by_id["3"]
assert int(first["quantity"]) != int(conflict["quantity"])
assert first == conflict | {"quantity": first["quantity"]}