notes are ok
[ottawa-travel-planner.git] / tests / test_itinerary_parser.py
blobd0207a39a6193d7960f4fa0503fd2e7552598194
2 # vi: set softtabstop=4 shiftwidth=4 tabstop=8 expandtab:
4 import unittest
5 import Itinerary
7 # doesn't belong here
8 import ShortFormatter
10 class TestItinGrab(unittest.TestCase):
12 def setUp(self):
13 fp = open(self.filename, "r")
14 html = fp.read()
15 fp.close()
17 itinp = Itinerary.ItineraryParser()
18 itinp.feed(html)
19 itinp.close()
21 self.entries = itinp.entries
23 def checkAllRecognized(self):
24 for ie in self.entries:
25 self.assertNotEquals(ie.type, Itinerary.TYPE_UNKNOWN)
28 class TestChampagneItin(TestItinGrab):
30 filename = "grabs/champagne-itin.html"
32 def testNumEntries(self):
33 self.assertEquals(len(self.entries), 4)
35 def testBasic(self):
36 self.checkAllRecognized()
38 class TestLongItin(TestItinGrab):
40 filename = "grabs/long-itin.html"
42 def testNumEntries(self):
43 self.assertEquals(len(self.entries), 9)
45 def testBasic(self):
46 self.checkAllRecognized()
48 def testHop3(self):
49 ie = self.entries[2];
50 self.assertEquals(ie.type, Itinerary.TYPE_TAKE_BUS)
51 self.assertEquals(ie.busStop, "1635")
52 self.assertEquals(ie.duration, None)
53 self.assertEquals(ie.startTime, '11:10 AM')
54 self.assertEquals(ie.endTime, '11:20 AM')
55 self.assertEquals(ie.route, '116')
56 self.assertEquals(ie.direction, 'Baseline')
57 self.assertEquals(ie.destination, 'MERIVALE / COLONNADE')
59 class TestProblemsIHad(unittest.TestCase):
61 def testTakeBusWithNote(self):
62 text = """At 1:35 PM, take Bus route 97 direction Bayshore
63 and get off at station HURDMAN STOP / ARRET 2A.
64 Arrive at 1:40 PM.
67 Note"""
68 match = Itinerary._take_bus_rx.search(text)
69 self.assert_(match)
72 if __name__ == '__main__':
73 unittest.main()