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)