prvi kod za live uporabu
Some checks failed
ERP CI Pipeline / test (push) Has been cancelled

This commit is contained in:
mariomitte
2026-07-09 21:21:17 +02:00
parent 857bb65d52
commit 5d39e048ba
239 changed files with 25151 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
import uuid
from django.test import TestCase
from django.contrib.auth import get_user_model
from modules.fleet.services import VehicleService
from modules.fleet.models import Vehicle, WorkOrder, VehicleServiceRecord
class FleetServiceTests(TestCase):
def setUp(self):
User = get_user_model()
self.user = User.objects.create_user(username="tech2", email=f"tech2+{uuid.uuid4()}@example.test", password="pass")
self.vehicle = Vehicle.objects.create(
registration_number=f"RI-{uuid.uuid4().hex[:6].upper()}",
make="VW",
model="Polo",
current_mileage=5000,
service_interval_km=10000,
assigned_servicer=self.user
)
def test_create_work_order_via_service(self):
data = {"vehicle": self.vehicle, "creator": self.user, "start_mileage": 5000, "end_mileage": 5200, "purpose": "Delivery"}
wo = VehicleService.create_work_order(data)
self.vehicle.refresh_from_db()
self.assertEqual(self.vehicle.current_mileage, 5200)
self.assertEqual(wo.distance, 200)
def test_create_service_record_via_service(self):
data = {"vehicle": self.vehicle, "performed_by": self.user, "description": "Brake pads", "mileage": 5200, "cost": "120.00"}
rec = VehicleService.create_service_record(data)
self.vehicle.refresh_from_db()
self.assertEqual(rec.next_service_due_at, 5200 + self.vehicle.service_interval_km)
self.assertEqual(self.vehicle.current_mileage, 5200)
def test_vehicle_next_service_at_logic(self):
# current=12000, interval=15000 -> blocks=(12000//15000)+1 = 1 -> 1*15000 = 15000
v = Vehicle.objects.create(current_mileage=12000, service_interval_km=15000)
assert v.next_service_at() == 15000
# current=16000, interval=15000 -> blocks=(16000//15000)+1 = 2 -> 2*15000 = 30000
v.current_mileage = 16000
assert v.next_service_at() == 30000
def test_work_order_distance_property(self):
vehicle = Vehicle.objects.create(registration_number="ZG-004")
# Nalog bez završne kilometraže
wo = WorkOrder.objects.create(vehicle=vehicle, creator=self.user, start_mileage=1000)
assert wo.distance is None
# Nalog sa završnom kilometražom
wo.end_mileage = 1100
assert wo.distance == 100