mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			171 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Copyright (C) 2018-2025 by BDE ENS Paris-Saclay
 | 
						|
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
						|
 | 
						|
from api.tests import TestAPI
 | 
						|
from django.contrib.auth.models import User
 | 
						|
from django.test import TestCase
 | 
						|
from django.urls import reverse
 | 
						|
from django.utils import timezone
 | 
						|
 | 
						|
from ..api.views import AllergenViewSet, BasicFoodViewSet, TransformedFoodViewSet, QRCodeViewSet
 | 
						|
from ..models import Allergen, BasicFood, TransformedFood, QRCode
 | 
						|
 | 
						|
 | 
						|
class TestFood(TestCase):
 | 
						|
    """
 | 
						|
    Test food
 | 
						|
    """
 | 
						|
    fixtures = ('initial',)
 | 
						|
 | 
						|
    def setUp(self):
 | 
						|
        self.user = User.objects.create_superuser(
 | 
						|
            username='admintoto',
 | 
						|
            password='toto1234',
 | 
						|
            email='toto@example.com'
 | 
						|
        )
 | 
						|
        self.client.force_login(self.user)
 | 
						|
 | 
						|
        sess = self.client.session
 | 
						|
        sess['permission_mask'] = 42
 | 
						|
        sess.save()
 | 
						|
 | 
						|
        self.allergen = Allergen.objects.create(
 | 
						|
            name='allergen',
 | 
						|
        )
 | 
						|
 | 
						|
        self.basicfood = BasicFood.objects.create(
 | 
						|
            name='basicfood',
 | 
						|
            owner_id=1,
 | 
						|
            expiry_date=timezone.now(),
 | 
						|
            is_ready=False,
 | 
						|
            date_type='DLC',
 | 
						|
        )
 | 
						|
 | 
						|
        self.transformedfood = TransformedFood.objects.create(
 | 
						|
            name='transformedfood',
 | 
						|
            owner_id=1,
 | 
						|
            expiry_date=timezone.now(),
 | 
						|
            is_ready=False,
 | 
						|
        )
 | 
						|
 | 
						|
        self.qrcode = QRCode.objects.create(
 | 
						|
            qr_code_number=1,
 | 
						|
            food_container=self.basicfood,
 | 
						|
        )
 | 
						|
 | 
						|
        def test_food_list(self):
 | 
						|
            """
 | 
						|
            Display food list
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:food_list'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_qrcode_create(self):
 | 
						|
            """
 | 
						|
            Display QRCode creation
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:qrcode_create'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_basicfood_create(self):
 | 
						|
            """
 | 
						|
            Display BasicFood creation
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:basicfood_create'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_transformedfood_create(self):
 | 
						|
            """
 | 
						|
            Display TransformedFood creation
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:transformedfood_create'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_food_create(self):
 | 
						|
            """
 | 
						|
            Display Food update
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:food_update'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_food_view(self):
 | 
						|
            """
 | 
						|
            Display Food detail
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:food_view'))
 | 
						|
            self.assertEqual(response.status_code, 302)
 | 
						|
 | 
						|
        def test_basicfood_view(self):
 | 
						|
            """
 | 
						|
            Display BasicFood detail
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:basicfood_view'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_transformedfood_view(self):
 | 
						|
            """
 | 
						|
            Display TransformedFood detail
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:transformedfood_view'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
        def test_add_ingredient(self):
 | 
						|
            """
 | 
						|
            Display add ingredient view
 | 
						|
            """
 | 
						|
            response = self.client.get(reverse('food:add_ingredient'))
 | 
						|
            self.assertEqual(response.status_code, 200)
 | 
						|
 | 
						|
 | 
						|
class TestFoodAPI(TestAPI):
 | 
						|
    def setUp(self) -> None:
 | 
						|
        super().setUP()
 | 
						|
 | 
						|
        self.allergen = Allergen.objects.create(
 | 
						|
            name='name',
 | 
						|
        )
 | 
						|
 | 
						|
        self.basicfood = BasicFood.objects.create(
 | 
						|
            name='basicfood',
 | 
						|
            owner_id=1,
 | 
						|
            expiry_date=timezone.now(),
 | 
						|
            is_ready=False,
 | 
						|
            date_type='DLC',
 | 
						|
        )
 | 
						|
 | 
						|
        self.transformedfood = TransformedFood.objects.create(
 | 
						|
            name='transformedfood',
 | 
						|
            owner_id=1,
 | 
						|
            expiry_date=timezone.now(),
 | 
						|
            is_ready=False,
 | 
						|
        )
 | 
						|
 | 
						|
        self.qrcode = QRCode.objects.create(
 | 
						|
            qr_code_number=1,
 | 
						|
            food_container=self.basicfood,
 | 
						|
        )
 | 
						|
 | 
						|
        def test_allergen_api(self):
 | 
						|
            """
 | 
						|
            Load Allergen API page and test all filters and permissions
 | 
						|
            """
 | 
						|
            self.check_viewset(AllergenViewSet, '/api/food/allergen/')
 | 
						|
 | 
						|
        def test_basicfood_api(self):
 | 
						|
            """
 | 
						|
            Load BasicFood API page and test all filters and permissions
 | 
						|
            """
 | 
						|
            self.check_viewset(BasicFoodViewSet, '/api/food/basicfood/')
 | 
						|
 | 
						|
        def test_transformedfood_api(self):
 | 
						|
            """
 | 
						|
            Load TransformedFood API page and test all filters and permissions
 | 
						|
            """
 | 
						|
            self.check_viewset(TransformedFoodViewSet, '/api/food/transformedfood/')
 | 
						|
 | 
						|
        def test_qrcode_api(self):
 | 
						|
            """
 | 
						|
            Load QRCode API page and test all filters and permissions
 | 
						|
            """
 | 
						|
            self.check_viewset(QRCodeViewSet, '/api/food/qrcode/')
 |