mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-10-30 23:39:54 +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/')
 |