Skip to content

Commit

Permalink
Remove caching for vehicle arrival times (#189)
Browse files Browse the repository at this point in the history
* 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 <luc.edes@tuhh.de>
  • Loading branch information
lucedes27 and Luc Edes committed Aug 22, 2023
1 parent 5e68ff0 commit f348838
Show file tree
Hide file tree
Showing 3 changed files with 120 additions and 4 deletions.
2 changes: 0 additions & 2 deletions conflowgen/domain_models/vehicle.py
Expand Up @@ -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

Expand Down Expand Up @@ -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:
Expand Down
120 changes: 119 additions & 1 deletion conflowgen/tests/domain_models/test_vehicle.py
Expand Up @@ -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


Expand Down Expand Up @@ -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),
"<Truck '1'>"
)


class TestFeeder(unittest.TestCase):

Expand Down Expand Up @@ -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),
"<Feeder: 1>"
)


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),
"<Barge: 1>"
)

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
)
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -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
Expand Down

0 comments on commit f348838

Please sign in to comment.