import json import unittest from src.export.strategies.json_export import json_export from src.models.recipe_model import recipe_model from src.models.nomenclature_group_model import nomenclature_group_model from src.models.nomenclature_model import nomenclature_model from src.models.ingredient_model import ingredient_model from src.export.strategies.csv_export import csv_export from src.export.exporter import exporter from src.models.measurement_unit_model import measurement_unit_model from src.storage.storage import storage # # Набор автотестов для проверки работы экспорта # # class test_export(unittest.TestCase): def test_csv_munits(self): # Подготовка strg = storage() munit1 = measurement_unit_model("g") munit2 = measurement_unit_model("kg") munit3 = measurement_unit_model("t") strg.data[strg.measurement_unit_key()] = [munit1, munit2, munit3] exp = exporter(csv_export()) expected = f"base_coefficient;base_measurement_unit;id;name\n{munit1.base_coefficient};{str(munit1.base_measurement_unit)};{munit1.id};{munit1.name}\n{munit2.base_coefficient};{str(munit2.base_measurement_unit)};{munit2.id};{munit2.name}\n{munit3.base_coefficient};{str(munit3.base_measurement_unit)};{munit3.id};{munit3.name}" # Действие csv = exp.export_by_key(strg.measurement_unit_key()) # Проверки assert isinstance(csv, str) assert csv == expected def test_json_recipe(self): strg = storage() nom = nomenclature_model( "A", "AA", measurement_unit_model("g"), nomenclature_group_model.create_group(), ) ing = ingredient_model("AAA", nom, 10, nom.measurement_unit) rec = recipe_model.create("AAAA", [ing], ["1", "2", "3"]) conv = exporter(json_export()).export_models([rec]) conv = json.loads(conv) assert len(conv["items"][0]["ingredients"]) == 1 assert (conv["items"][0]["id"]) == str(rec.id) assert len(conv["items"][0]["steps"]) == len(rec.steps)