test_export.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import json
  2. import unittest
  3. from src.export.strategies.json_export import json_export
  4. from src.models.recipe_model import recipe_model
  5. from src.models.nomenclature_group_model import nomenclature_group_model
  6. from src.models.nomenclature_model import nomenclature_model
  7. from src.models.ingredient_model import ingredient_model
  8. from src.export.strategies.csv_export import csv_export
  9. from src.export.exporter import exporter
  10. from src.models.measurement_unit_model import measurement_unit_model
  11. from src.storage.storage import storage
  12. #
  13. # Набор автотестов для проверки работы экспорта
  14. # #
  15. class test_export(unittest.TestCase):
  16. def test_csv_munits(self):
  17. # Подготовка
  18. strg = storage()
  19. munit1 = measurement_unit_model("g")
  20. munit2 = measurement_unit_model("kg")
  21. munit3 = measurement_unit_model("t")
  22. strg.data[strg.measurement_unit_key()] = [munit1, munit2, munit3]
  23. exp = exporter(csv_export())
  24. 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}"
  25. # Действие
  26. csv = exp.export_by_key(strg.measurement_unit_key())
  27. # Проверки
  28. assert isinstance(csv, str)
  29. assert csv == expected
  30. def test_json_recipe(self):
  31. strg = storage()
  32. nom = nomenclature_model(
  33. "A",
  34. "AA",
  35. measurement_unit_model("g"),
  36. nomenclature_group_model.create_group(),
  37. )
  38. ing = ingredient_model("AAA", nom, 10, nom.measurement_unit)
  39. rec = recipe_model.create("AAAA", [ing], ["1", "2", "3"])
  40. conv = exporter(json_export()).export_models([rec])
  41. conv = json.loads(conv)
  42. assert len(conv["items"][0]["ingredients"]) == 1
  43. assert (conv["items"][0]["id"]) == str(rec.id)
  44. assert len(conv["items"][0]["steps"]) == len(rec.steps)