This commit is contained in:
33
backend/modules/fleet/tests/test_models.py
Normal file
33
backend/modules/fleet/tests/test_models.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import uuid
|
||||
from django.test import TestCase
|
||||
from django.contrib.auth import get_user_model
|
||||
from modules.fleet.models import Vehicle, WorkOrder, VehicleServiceRecord
|
||||
|
||||
|
||||
class FleetModelTests(TestCase):
|
||||
def setUp(self):
|
||||
User = get_user_model()
|
||||
self.user = User.objects.create_user(username="tech", email=f"tech+{uuid.uuid4()}@example.test", password="pass")
|
||||
self.vehicle = Vehicle.objects.create(
|
||||
registration_number=f"ZG-{uuid.uuid4().hex[:6].upper()}",
|
||||
make="Toyota",
|
||||
model="Yaris",
|
||||
current_mileage=12000,
|
||||
service_interval_km=15000,
|
||||
assigned_servicer=self.user
|
||||
)
|
||||
|
||||
def test_next_service_at(self):
|
||||
self.assertEqual(self.vehicle.next_service_at(), 15000)
|
||||
|
||||
def test_work_order_updates_vehicle_mileage(self):
|
||||
wo = WorkOrder.objects.create(vehicle=self.vehicle, creator=self.user, start_mileage=12000, end_mileage=12500)
|
||||
self.vehicle.refresh_from_db()
|
||||
self.assertEqual(self.vehicle.current_mileage, 12500)
|
||||
self.assertEqual(wo.distance, 500)
|
||||
|
||||
def test_service_record_sets_next_service_due_and_updates_vehicle(self):
|
||||
rec = VehicleServiceRecord.objects.create(vehicle=self.vehicle, performed_by=self.user, description="Oil change", mileage=13000, parts="oil;filter", cost="50.00")
|
||||
self.vehicle.refresh_from_db()
|
||||
self.assertEqual(rec.next_service_due_at, 13000 + self.vehicle.service_interval_km)
|
||||
self.assertEqual(self.vehicle.current_mileage, 13000)
|
||||
Reference in New Issue
Block a user