Ver código fonte

Added recipe/ingredient initialization to start_factory.create() and adjusted unit_tests for this matter

Vsevolod Levitan 1 ano atrás
pai
commit
40cd7cafe7
2 arquivos alterados com 51 adições e 20 exclusões
  1. 44 15
      src/logic/start_factory.py
  2. 7 5
      tests/test_factory.py

+ 44 - 15
src/logic/start_factory.py

@@ -1,3 +1,5 @@
+from src.models.recipe_model import recipe_model
+from src.models.ingredient_model import ingredient_model
 from src.models.nomenclature_group_model import nomenclature_group_model
 from src.models.measurement_unit_model import measurement_unit_model
 from src.models.nomenclature_model import nomenclature_model
@@ -48,21 +50,38 @@ class start_factory:
         """
         return self.__storage
     
+    
     @staticmethod
-    def create_nomenclature_list():
+    def create_recipes():
         """
-          Фабричный метод Создать список номенклатуры
+            Фабричный метод Создать список рецептов
         """
-        
+
         result = []
-        
-        
-        item1 = nomenclature_model("Мука", "Мушка пшеничная", measurement_unit_model("грамм"), nomenclature_group_model("name"))
-        item1.group = nomenclature_group_model.create_group()
-        item1.unit = measurement_unit_model.create_kg()
-        
-        result.append(item1)
-        
+        g = measurement_unit_model.create_g()
+        pcs = measurement_unit_model.create_pcs()
+        group = nomenclature_group_model("group")
+
+        ingredients = [
+            ingredient_model("Мука", nomenclature_model("Мука", "Мука пшеничная", g, group), 100, g),
+            ingredient_model("Сахар", nomenclature_model("Сахар", "Сахарный песок", g, group), 80, g),
+            ingredient_model("Масло", nomenclature_model("Масло", "Масло сливочное", g, group), 70, g),
+            ingredient_model("Яйцо", nomenclature_model("Яйцо", "Яйцо куриное", pcs, group), 1, pcs),
+            ingredient_model("Ванилин", nomenclature_model("Ванилин", "Ванилин продуктовый", g, group), 5, g)
+        ]
+        steps = [
+            "Как испечь вафли хрустящие в вафельнице? Подготовьте необходимые продукты. Из данного количества у меня получилось 8 штук диаметром около 10 см.",
+            "Масло положите в сотейник с толстым дном. Растопите его на маленьком огне на плите, на водяной бане либо в микроволновке.",
+            "Добавьте в теплое масло сахар. Перемешайте венчиком до полного растворения сахара. От тепла сахар довольно быстро растает.",
+            "Добавьте в масло яйцо. Предварительно все-таки проверьте масло, не горячее ли оно, иначе яйцо может свариться. Перемешайте яйцо с маслом до однородности.",
+            "Всыпьте муку, добавьте ванилин.",
+            "Перемешайте массу венчиком до состояния гладкого однородного теста.",
+            "Разогрейте вафельницу по инструкции к ней. У меня очень старая, еще советских времен электровафельница. Она может и не очень красивая, но печет замечательно! Я не смазываю вафельницу маслом, в тесте достаточно жира, да и к ней уже давно ничего не прилипает. Но вы смотрите по своей модели. Выкладывайте тесто по столовой ложке. Можно класть немного меньше теста, тогда вафли будут меньше и их получится больше.",
+            "Пеките вафли несколько минут до золотистого цвета. Осторожно откройте вафельницу, она очень горячая! Снимите вафлю лопаткой. Горячая она очень мягкая, как блинчик. Но по мере остывания становится твердой и хрустящей. Такие вафли можно свернуть трубочкой. Но делать это надо сразу же после выпекания, пока она мягкая и горячая, потом у вас ничего не получится, вафля поломается. Приятного аппетита!"
+        ]
+
+        result.append(recipe_model("Вафли хрустящие в вафельнице", ingredients, steps))
+
         return result
     
     
@@ -79,13 +98,23 @@ class start_factory:
             self.__options.is_first_run = False
             
             # Формируем и зпоминаем номеклатуру
-            result = start_factory.create_nomenclature_list()
-            nomenclatures = result.copy()
-            munits = set([x.measurement_unit for x in result])
-            nomgroups = set([x.nomenclature_group for x in result])
+            res = self.create_recipes()
+            ingredients = set()
+            for x in res:
+                for ing in x.ingredients:
+                    ingredients.add(ing)
+            recipes = res.copy()
+            nomenclatures = set()
+            for ingredient in ingredients:
+                nomenclatures.add(ingredient.nomenclature)
+            result = nomenclatures
+            munits = set([x.measurement_unit for x in nomenclatures])
+            nomgroups = set([x.nomenclature_group for x in nomenclatures])
             self.__save(storage.nomenclature_key(), nomenclatures )
             self.__save(storage.measurement_unit_key(), munits)
             self.__save(storage.nomenclature_group_key(), nomgroups)
+            self.__save(storage.ingredient_key(), ingredients)
+            self.__save(storage.recipe_key(), recipes)
 
         return result
 

+ 7 - 5
tests/test_factory.py

@@ -28,9 +28,9 @@ class factory_test(unittest.TestCase):
     # 
     # Проверка создание начальной номенклатуры
     #    
-    def test_create_nomenclature_list(self):
+    def test_create_recipes(self):
         # Подготовка
-        items = start_factory.create_nomenclature_list()
+        items = start_factory.create_recipes()
         
         # действие
         
@@ -53,9 +53,11 @@ class factory_test(unittest.TestCase):
         # Действие
 
         # Проверка
-        assert len(stor.data[storage.nomenclature_key()])
-        assert len(stor.data[storage.measurement_unit_key()])
-        assert len(stor.data[storage.nomenclature_group_key()])
+        assert len(stor.data[stor.nomenclature_key()]) > 0
+        assert len(stor.data[stor.measurement_unit_key()]) > 0
+        assert len(stor.data[stor.nomenclature_group_key()]) > 0
+        assert len(stor.data[stor.ingredient_key()]) > 0
+        assert len(stor.data[stor.recipe_key()]) > 0
 
     #      
     # Проверка работы класса start_factory