github.com/ismailbayram/bigpicture@v0.0.0-20231225173155-e4b21f5efcff/internal/browser/pyproject/cars/tests/test_service.py (about) 1 from django.test import TestCase 2 3 from users.service import UserService 4 from users.enums import GroupType 5 from cars.models import Car 6 from cars.service import CarService 7 from cars.enums import CarType 8 9 10 class CarServiceTest(TestCase): 11 def setUp(self): 12 user_service = UserService() 13 14 data = { 15 "first_name": "Customer 1", 16 "last_name": "CusLast", 17 "phone_number": "555111", 18 "group_type": GroupType.customer 19 } 20 self.customer, self.customer_token = user_service.get_or_create_user(**data) 21 self.service = CarService() 22 23 self.car1 = self.service.create_car( 24 licence_plate="09 TK 40", 25 car_type=CarType.sedan, 26 customer_profile=self.customer.customer_profile 27 ) 28 self.car2 = self.service.create_car( 29 licence_plate="09 TK 41", 30 car_type=CarType.sedan, 31 customer_profile=self.customer.customer_profile 32 ) 33 self.car3 = self.service.create_car( 34 licence_plate="09 TK 42", 35 car_type=CarType.suv, 36 customer_profile=self.customer.customer_profile 37 ) 38 39 def test_create_car(self): 40 data = { 41 'licence_plate': "07 Z 8686", 42 'car_type': CarType.sedan, 43 'customer_profile': self.customer.customer_profile 44 } 45 self.customer.customer_profile.cars.all().delete() 46 self.car1 = self.service.create_car(**data) 47 self.assertIsInstance(self.car1, Car) 48 self.assertEqual(self.car1.licence_plate, "07 Z 8686") 49 self.assertTrue(self.car1.is_selected) 50 51 def test_update_car(self): 52 data = { 53 "car": self.car1, 54 "licence_plate": "06 AT 88", 55 "car_type": CarType.suv, 56 } 57 car = self.service.update_car(**data) 58 self.assertEqual(car.licence_plate, "06 AT 88") 59 self.assertEqual(car.car_type, CarType.suv) 60 61 data = { 62 "car": self.car1, 63 "licence_plate": "22 a 22", 64 } 65 car = self.service.update_car(**data) 66 self.assertEqual(car.licence_plate, "22 a 22") 67 68 data = { 69 "car": self.car1, 70 "car_type": CarType.suv, 71 } 72 car = self.service.update_car(**data) 73 self.assertEqual(car.car_type, CarType.suv) 74 75 def test_select_car(self): 76 self.assertTrue(self.car1.is_selected) 77 self.assertFalse(self.car2.is_selected) 78 self.assertFalse(self.car3.is_selected) 79 80 self.service.select_car(self.car1, self.customer.customer_profile) 81 self.car1.refresh_from_db() 82 self.car2.refresh_from_db() 83 self.car3.refresh_from_db() 84 self.assertTrue(self.car1.is_selected) 85 self.assertFalse(self.car2.is_selected) 86 self.assertFalse(self.car3.is_selected) 87 88 self.service.select_car(self.car2, self.customer.customer_profile) 89 self.car1.refresh_from_db() 90 self.car2.refresh_from_db() 91 self.car3.refresh_from_db() 92 self.assertFalse(self.car1.is_selected) 93 self.assertTrue(self.car2.is_selected) 94 self.assertFalse(self.car3.is_selected) 95 96 self.service.select_car(self.car3, self.customer.customer_profile) 97 self.car1.refresh_from_db() 98 self.car2.refresh_from_db() 99 self.car3.refresh_from_db() 100 self.assertFalse(self.car1.is_selected) 101 self.assertFalse(self.car2.is_selected) 102 self.assertTrue(self.car3.is_selected) 103 104 def test_deactivate_car(self): 105 self.customer.customer_profile.cars.all().delete() 106 car1 = self.service.create_car( 107 licence_plate="09 TK 40", 108 car_type=CarType.sedan, 109 customer_profile=self.customer.customer_profile 110 ) 111 car2 = self.service.create_car( 112 licence_plate="09 TK 41", 113 car_type=CarType.sedan, 114 customer_profile=self.customer.customer_profile 115 ) 116 self.service.deactivate_car(car1) 117 car2.refresh_from_db() 118 self.assertTrue(car2.is_selected)