33 lines
1.5 KiB
Python
33 lines
1.5 KiB
Python
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) |