Departure object changes, tests, small fix
[pywienerlinien] / gotovienna / tests / departures.py
1 from nose.tools import assert_equal, assert_is_instance
2 import sys
3 import os
4 from datetime import time, datetime
5
6 # bananas for the monkey
7 class datetime_static(datetime):
8     @classmethod
9     def now(cls):
10         return datetime(2000, 1, 1, 11, 50)
11
12 from gotovienna import realtime
13 realtime.datetime = datetime_static
14 # </bananas>
15
16 sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
17 from gotovienna.realtime import Departure
18 from utils import sort_departures
19
20 departures = [Departure('U2', 'Karlsplatz', 'Aspernstrasse', time(13, 37), True),
21               Departure('U1', 'Karlsplatz', 'Reumannplatz', time(12, 24), False),
22               Departure('U4', 'Karlsplatz', 'Huetteldorf', time(11, 42), False),
23               Departure('U4', 'Karlsplatz', 'Heiligenstadt', 5, True),
24               Departure('U2', 'Karlsplatz', 'Aspernstrasse', time(13, 38), True)]
25
26 departures_sorted = [Departure('U4', 'Karlsplatz', 'Huetteldorf', time(11, 42), False),
27                      Departure('U4', 'Karlsplatz', 'Heiligenstadt', 5, True),
28                      Departure('U1', 'Karlsplatz', 'Reumannplatz', time(12, 24), False),
29                      Departure('U2', 'Karlsplatz', 'Aspernstrasse', time(13, 37), True),
30                      Departure('U2', 'Karlsplatz', 'Aspernstrasse', time(13, 38), True)]
31
32 def test_sort():
33     assert_equal(departures_sorted, sort_departures(departures))
34
35 def test_atime():
36     for dep in departures:
37         assert_is_instance(dep['departure'], datetime)
38
39 def test_ftime():
40     for dep in departures:
41         assert_is_instance(dep['ftime'], str)
42
43 def test_deltatime():
44     for dep in departures:
45         assert_is_instance(dep['time'], int)