Пример #1
0
    def test_labels_show_restrictions(self):
        """An ingredient we know will clash must be in the labels"""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(self.today, clients)
        # main dish and its ingredients today
        main_dishes = Component.objects.filter(name='Ginger pork')
        main_dish = main_dishes[0]
        dish_ingredients = Component.get_recipe_ingredients(main_dish.id)
        for ing in dish_ingredients:
            ci = Component_ingredient(component=main_dish,
                                      ingredient=ing,
                                      date=self.today)
            ci.save()
        # Add sides ingredient
        sides_component = Component.objects.get(
            component_group=COMPONENT_GROUP_CHOICES_SIDES)
        # This ingredient is in the restrictions of some clients in the data
        sides_ingredient = Ingredient.objects.get(name='Brussel sprouts')
        ci = Component_ingredient(component=sides_component,
                                  ingredient=sides_ingredient,
                                  date=self.today)
        ci.save()
        # menu today
        Menu.create_menu_and_components(self.today, [
            'Ginger pork', 'Green Salad', 'Fruit Salad', 'Day s Dessert',
            'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote',
            'Days Sides'
        ])

        self.client.get(reverse_lazy('delivery:kitchen_count'))
        response = self.client.get(reverse_lazy('delivery:mealLabels'))
        self.assertTrue('ReportLab' in repr(response.content))
Пример #2
0
 def setUpTestData(cls):
     Menu.create_menu_and_components(
         datetime.date(2016, 5, 21),
         ['Ginger pork',
          'Green Salad', 'Fruit Salad',
          'Day s Dessert', 'Day s Diabetic Dessert',
          'Day s Pudding', 'Day s Compote'])
Пример #3
0
 def test_no_main_dish_exception(self):
     with self.assertRaises(Exception) as cm:
         Menu.create_menu_and_components(
             datetime.date(2016, 7, 15),
             ['Green Salad', 'Fruit Salad', 'Day s Dessert',
              'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'])
         the_exception = cm.exception
         self.assertEqual(the_exception.error_code, 3)
Пример #4
0
 def test_many_dishes_per_component_group_exception(self):
     with self.assertRaises(Exception) as cm:
         Menu.create_menu_and_components(
             datetime.date(2016, 7, 15),
             ['Ginger pork', 'Coq au vin',
              'Green Salad', 'Fruit Salad', 'Day s Dessert',
              'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'])
         the_exception = cm.exception
         self.assertEqual(the_exception.error_code, 3)
Пример #5
0
 def test_menu_existed(self):
     Menu.create_menu_and_components(
         datetime.date(2016, 7, 15),
         ['Ginger pork',
          'Green Salad', 'Fruit Salad', 'Day s Dessert',
          'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'])
     number = Menu.create_menu_and_components(
         datetime.date(2016, 7, 15),
         ['Coq au vin',
          'Green Salad', 'Fruit Salad', 'Day s Dessert',
          'Day s Diabetic Dessert', 'Day s Pudding'])
     self.assertEqual(number, 6)
Пример #6
0
    def test_extra_similar_side_dishes(self):
        """Test cumulative quantities for similar side dishes."""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(
            self.today, clients)
        Menu.create_menu_and_components(
            self.today,
            ['Ginger pork',
             'Green Salad', 'Fruit Salad',
             'Day s Dessert', 'Day s Diabetic Dessert',
             'Day s Pudding', 'Day s Compote'])

        # main dish and its ingredients today
        main_dishes = Component.objects.filter(name='Ginger pork')
        main_dish = main_dishes[0]
        dish_ingredients = Component.get_recipe_ingredients(
            main_dish.id)
        for ing in dish_ingredients:
            ci = Component_ingredient(
                component=main_dish,
                ingredient=ing,
                date=self.today)
            ci.save()
        # Add sides ingredient
        sides_component = Component.objects.get(
            component_group=COMPONENT_GROUP_CHOICES_SIDES)
        sides_ingredient = Ingredient.objects.get(name='Brussel sprouts')
        ci = Component_ingredient(
            component=sides_component,
            ingredient=sides_ingredient,
            date=self.today)
        ci.save()

        # Add two separate extra compote order items for 'Tracy'
        member = Member.objects.filter(lastname='Tracy')[0]
        client = Client.objects.get(member=member.id)
        order = Order.objects.get(client=client.id, delivery_date=self.today)
        order.add_item(
            'meal_component',
            component_group='compote',
            total_quantity=1,
            remark='no sugar')
        order.add_item(
            'meal_component',
            component_group='compote',
            total_quantity=1,
            remark='no sugar')
        response = self.client.get('/delivery/kitchen_count/')
        self.assertTrue(b'Compote' in response.content)
Пример #7
0
    def test_pdf_report_show_restrictions(self):
        """An ingredient we know will clash must be in the pdf report"""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(self.today, clients)
        Menu.create_menu_and_components(self.today, [
            'Ginger pork', 'Green Salad', 'Fruit Salad', 'Day s Dessert',
            'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'
        ])

        self.client.get('/delivery/kitchen_count/')
        response = self.client.get('/delivery/viewDownloadKitchenCount/')
        self.assertTrue('ReportLab' in repr(response.content))
Пример #8
0
    def test_pdf_report_show_restrictions(self):
        """An ingredient we know will clash must be in the pdf report"""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(
            self.today, clients)
        Menu.create_menu_and_components(
            self.today,
            ['Ginger pork',
             'Green Salad', 'Fruit Salad',
             'Day s Dessert', 'Day s Diabetic Dessert',
             'Day s Pudding', 'Day s Compote'])

        self.client.get('/delivery/kitchen_count/')
        response = self.client.get('/delivery/viewDownloadKitchenCount/')
        self.assertTrue('ReportLab' in repr(response.content))
Пример #9
0
 def test_clashing_ingredient(self):
     """An ingredient we know will clash must be in the page"""
     self.today = datetime.date.today()
     # create orders today
     clients = Client.active.all()
     numorders = Order.objects.auto_create_orders(
         self.today, clients)
     # main dish and its ingredients today
     main_dishes = Component.objects.filter(name='Ginger pork')
     main_dish = main_dishes[0]
     dish_ingredients = Component.get_recipe_ingredients(
         main_dish.id)
     for ing in dish_ingredients:
         ci = Component_ingredient(
             component=main_dish,
             ingredient=ing,
             date=self.today)
         ci.save()
     # Add extra ingredient so that more clashing clients will
     #  require two pages on the PDF kitchen count report
     extra = Ingredient.objects.get(name='Walnuts')
     ci = Component_ingredient(
         component=main_dish,
         ingredient=extra,
         date=self.today)
     ci.save()
     # add sides ingredient
     sides_component = Component.objects.get(
         component_group=COMPONENT_GROUP_CHOICES_SIDES)
     extra = Ingredient.objects.get(name='Cabbage')
     ci = Component_ingredient(
         component=sides_component,
         ingredient=extra,
         date=self.today)
     ci.save()
     # menu today
     Menu.create_menu_and_components(
         self.today,
         ['Ginger pork',
          'Green Salad', 'Fruit Salad',
          'Day s Dessert', 'Day s Diabetic Dessert',
          'Day s Pudding', 'Day s Compote'])
     response = self.client.get(reverse_lazy('delivery:kitchen_count'))
     self.assertTrue(b'Ground porc' in response.content)
Пример #10
0
    def test_extra_similar_side_dishes(self):
        """Test cumulative quantities for similar side dishes."""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(self.today, clients)
        Menu.create_menu_and_components(self.today, [
            'Ginger pork', 'Green Salad', 'Fruit Salad', 'Day s Dessert',
            'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'
        ])

        # main dish and its ingredients today
        main_dishes = Component.objects.filter(name='Ginger pork')
        main_dish = main_dishes[0]
        dish_ingredients = Component.get_recipe_ingredients(main_dish.id)
        for ing in dish_ingredients:
            ci = Component_ingredient(component=main_dish,
                                      ingredient=ing,
                                      date=self.today)
            ci.save()
        # Add sides ingredient
        sides_component = Component.objects.get(
            component_group=COMPONENT_GROUP_CHOICES_SIDES)
        sides_ingredient = Ingredient.objects.get(name='Brussel sprouts')
        ci = Component_ingredient(component=sides_component,
                                  ingredient=sides_ingredient,
                                  date=self.today)
        ci.save()

        # Add two separate extra compote order items for 'Tracy'
        member = Member.objects.filter(lastname='Tracy')[0]
        client = Client.objects.get(member=member.id)
        order = Order.objects.get(client=client.id, delivery_date=self.today)
        order.add_item('meal_component',
                       component_group='compote',
                       total_quantity=1,
                       remark='no sugar')
        order.add_item('meal_component',
                       component_group='compote',
                       total_quantity=1,
                       remark='no sugar')
        response = self.client.get('/delivery/kitchen_count/')
        self.assertTrue(b'Compote' in response.content)
Пример #11
0
    def test_labels_show_restrictions(self):
        """An ingredient we know will clash must be in the labels"""
        # generate orders today
        self.today = datetime.date.today()
        clients = Client.active.all()
        numorders = Order.objects.auto_create_orders(
            self.today, clients)
        # main dish and its ingredients today
        main_dishes = Component.objects.filter(name='Ginger pork')
        main_dish = main_dishes[0]
        dish_ingredients = Component.get_recipe_ingredients(
            main_dish.id)
        for ing in dish_ingredients:
            ci = Component_ingredient(
                component=main_dish,
                ingredient=ing,
                date=self.today)
            ci.save()
        # Add sides ingredient
        sides_component = Component.objects.get(
            component_group=COMPONENT_GROUP_CHOICES_SIDES)
        # This ingredient is in the restrictions of some clients in the data
        sides_ingredient = Ingredient.objects.get(name='Brussel sprouts')
        ci = Component_ingredient(
            component=sides_component,
            ingredient=sides_ingredient,
            date=self.today)
        ci.save()
        # menu today
        Menu.create_menu_and_components(
            self.today,
            ['Ginger pork',
             'Green Salad', 'Fruit Salad',
             'Day s Dessert', 'Day s Diabetic Dessert',
             'Day s Pudding', 'Day s Compote', 'Days Sides'])

        self.client.get(reverse_lazy('delivery:kitchen_count'))
        response = self.client.get(reverse_lazy('delivery:mealLabels'))
        self.assertTrue('ReportLab' in repr(response.content))
Пример #12
0
 def test_clashing_ingredient(self):
     """An ingredient we know will clash must be in the page"""
     self.today = datetime.date.today()
     # create orders today
     clients = Client.active.all()
     numorders = Order.objects.auto_create_orders(self.today, clients)
     # main dish and its ingredients today
     main_dishes = Component.objects.filter(name='Ginger pork')
     main_dish = main_dishes[0]
     dish_ingredients = Component.get_recipe_ingredients(main_dish.id)
     for ing in dish_ingredients:
         ci = Component_ingredient(component=main_dish,
                                   ingredient=ing,
                                   date=self.today)
         ci.save()
     # Add extra ingredient so that more clashing clients will
     #  require two pages on the PDF kitchen count report
     extra = Ingredient.objects.get(name='Walnuts')
     ci = Component_ingredient(component=main_dish,
                               ingredient=extra,
                               date=self.today)
     ci.save()
     # add sides ingredient
     sides_component = Component.objects.get(
         component_group=COMPONENT_GROUP_CHOICES_SIDES)
     extra = Ingredient.objects.get(name='Cabbage')
     ci = Component_ingredient(component=sides_component,
                               ingredient=extra,
                               date=self.today)
     ci.save()
     # menu today
     Menu.create_menu_and_components(self.today, [
         'Ginger pork', 'Green Salad', 'Fruit Salad', 'Day s Dessert',
         'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'
     ])
     response = self.client.get(reverse_lazy('delivery:kitchen_count'))
     self.assertTrue(b'Ground porc' in response.content)
Пример #13
0
 def setUpTestData(cls):
     Menu.create_menu_and_components(datetime.date(2016, 5, 21), [
         'Ginger pork', 'Green Salad', 'Fruit Salad', 'Day s Dessert',
         'Day s Diabetic Dessert', 'Day s Pudding', 'Day s Compote'
     ])