From f348838d1fd235c586384e067beaba8f630bc572 Mon Sep 17 00:00:00 2001 From: Luc Edes Date: Tue, 22 Aug 2023 12:41:36 +0200 Subject: [PATCH] Remove caching for vehicle arrival times (#189) * Remove caching for vehicle arrival times * Pin Sphinx to v7.1.2: Newer versions of Sphinx cause issues with enum-tools --------- Co-authored-by: Luc Edes --- conflowgen/domain_models/vehicle.py | 2 - .../tests/domain_models/test_vehicle.py | 120 +++++++++++++++++- setup.py | 2 +- 3 files changed, 120 insertions(+), 4 deletions(-) diff --git a/conflowgen/domain_models/vehicle.py b/conflowgen/domain_models/vehicle.py index 6ad588ab..b0b830ae 100644 --- a/conflowgen/domain_models/vehicle.py +++ b/conflowgen/domain_models/vehicle.py @@ -15,7 +15,6 @@ from conflowgen.domain_models.arrival_information import \ TruckArrivalInformationForDelivery, TruckArrivalInformationForPickup from conflowgen.domain_models.large_vehicle_schedule import Schedule -from conflowgen.data_summaries.data_summaries_cache import DataSummariesCache from .base_model import BaseModel from .data_types.mode_of_transport import ModeOfTransport @@ -107,7 +106,6 @@ class LargeScheduledVehicle(BaseModel): "ModeOfTransportDistribution as obviously the different information does not match." ) - @DataSummariesCache.cache_result def get_arrival_time(self) -> datetime.datetime: """ Returns: diff --git a/conflowgen/tests/domain_models/test_vehicle.py b/conflowgen/tests/domain_models/test_vehicle.py index 09f15634..ee046b56 100644 --- a/conflowgen/tests/domain_models/test_vehicle.py +++ b/conflowgen/tests/domain_models/test_vehicle.py @@ -9,7 +9,7 @@ TruckArrivalInformationForPickup, TruckArrivalInformationForDelivery from conflowgen.domain_models.data_types.mode_of_transport import ModeOfTransport from conflowgen.domain_models.large_vehicle_schedule import Schedule -from conflowgen.domain_models.vehicle import Feeder, LargeScheduledVehicle, Truck +from conflowgen.domain_models.vehicle import Feeder, LargeScheduledVehicle, Truck, Barge from conflowgen.tests.substitute_peewee_database import setup_sqlite_in_memory_db @@ -44,6 +44,16 @@ def test_save_truck_picking_up_a_container_to_database(self) -> None: ) self.assertIsNotNone(truck) + def test_repr(self) -> None: + truck = Truck.create( + delivers_container=True, + picks_up_container=False + ) + self.assertEqual( + repr(truck), + "" + ) + class TestFeeder(unittest.TestCase): @@ -76,3 +86,111 @@ def test_save_feeder_to_database(self) -> None: Feeder.create( large_scheduled_vehicle=lsv ) + + def test_repr(self) -> None: + """Check if feeder can be saved""" + now = datetime.datetime.now() + schedule = Schedule.create( + service_name="MyTestFeederLine", + vehicle_type=ModeOfTransport.feeder, + vehicle_arrives_at=now, + average_vehicle_capacity=1100, + average_moved_capacity=200 + ) + lsv = LargeScheduledVehicle.create( + vehicle_name="TestFeeder1", + capacity_in_teu=1000, + moved_capacity=200, + scheduled_arrival=now, + schedule=schedule + ) + feeder = Feeder.create( + large_scheduled_vehicle=lsv + ) + self.assertEqual( + repr(feeder), + "" + ) + + +class TestBarge(unittest.TestCase): + + def setUp(self) -> None: + """Create container database in memory""" + sqlite_db = setup_sqlite_in_memory_db() + sqlite_db.create_tables([ + Barge, + LargeScheduledVehicle, + Schedule, + ]) + + def test_save_barge_to_database(self) -> None: + """Check if barge can be saved""" + now = datetime.datetime.now() + schedule = Schedule.create( + service_name="MyTestBargeLine", + vehicle_type=ModeOfTransport.barge, + vehicle_arrives_at=now, + average_vehicle_capacity=1100, + average_moved_capacity=200 + ) + lsv = LargeScheduledVehicle.create( + vehicle_name="TestBarge1", + capacity_in_teu=1000, + moved_capacity=200, + scheduled_arrival=now, + schedule=schedule + ) + Barge.create( + large_scheduled_vehicle=lsv + ) + + def test_repr(self) -> None: + """Check if barge can be saved""" + now = datetime.datetime.now() + schedule = Schedule.create( + service_name="MyTestBargeLine", + vehicle_type=ModeOfTransport.barge, + vehicle_arrives_at=now, + average_vehicle_capacity=1100, + average_moved_capacity=200 + ) + lsv = LargeScheduledVehicle.create( + vehicle_name="TestBarge1", + capacity_in_teu=1000, + moved_capacity=200, + scheduled_arrival=now, + schedule=schedule + ) + barge = Barge.create( + large_scheduled_vehicle=lsv + ) + self.assertEqual( + repr(barge), + "" + ) + + def test_get_mode_of_transport(self) -> None: + """Check if barge can be saved""" + now = datetime.datetime.now() + schedule = Schedule.create( + service_name="MyTestBargeLine", + vehicle_type=ModeOfTransport.barge, + vehicle_arrives_at=now, + average_vehicle_capacity=1100, + average_moved_capacity=200 + ) + lsv = LargeScheduledVehicle.create( + vehicle_name="TestBarge1", + capacity_in_teu=1000, + moved_capacity=200, + scheduled_arrival=now, + schedule=schedule + ) + barge = Barge.create( + large_scheduled_vehicle=lsv + ) + self.assertEqual( + barge.get_mode_of_transport(), + ModeOfTransport.barge + ) diff --git a/setup.py b/setup.py index 3d70c443..07ef852a 100644 --- a/setup.py +++ b/setup.py @@ -55,7 +55,7 @@ 'nbconvert', # build documentation - 'sphinx', # build the documentation + 'sphinx==7.1.2', # build the documentation 'sphinx-rtd-theme', # adding the nice sphinx theme 'sphinx-toolbox', # dependency of enum_tools, we got this as a present 'myst-parser', # for Contributing.md