from parseHtml import Parser, iParser, ParserError
from BeautifulSoup import BeautifulSoup
+origin = 'Karlsplatz'
+destination = 'Handelskai'
+dtime = datetime.now()
+dtime = dtime.replace(hour=15, minute=0)
+search = Search(origin, destination)
+bs = BeautifulSoup(search.get_html(dtime))
class FetchTest(unittest.TestCase):
- def setUp(self):
- origin = 'Karlsplatz'
- destination = 'Handelskai'
- dtime = datetime.now()
- dtime = dtime.replace(hour=15, minute=0)
- search = Search(origin, destination)
- self.bs = BeautifulSoup(search.get_html(dtime))
-
def test_overview(self):
- self.assertEquals(1, len(self.bs.findAll('table', {'id': 'tbl_fahrten'})))
+ self.assertEquals(1, len(bs.findAll('table', {'id': 'tbl_fahrten'})))
def test_details(self):
- self.assertTrue(len(self.bs.findAll('div', {'class': 'data_table tourdetail'})) > 0)
+ self.assertTrue(len(bs.findAll('div', {'class': 'data_table tourdetail'})) > 0)
+origin = 'Zwicklgasse 1'
+destination = 'Himmelstrasse 1'
+ot = dt = 'address'
+s = Search(origin, destination, origin_type=ot, destination_type=dt)
+p = Parser(s.get_html(dtime))
-class ParseTest(unittest.TestCase):
+origin = 'Foobar Strasse 123'
+destination = 'Bazgasse 321'
+s = Search(origin, destination, origin_type=ot, destination_type=dt)
+invalid_parser = Parser(s.get_html(dtime))
- def setUp(self):
- origin = 'Favoritenstrasse 9'
- destination = 'Rathausstrasse 6'
- ot = dt = 'address'
- dtime = datetime.now()
- dtime = dtime.replace(hour=15, minute=0)
- s = Search(origin, destination, origin_type=ot, destination_type=dt)
- self.p = Parser(s.get_html())
- origin = 'Foobar Strasse 123'
- destination = 'Bazgasse 321'
- s = Search(origin, destination, origin_type=ot, destination_type=dt)
- self.invalid_parser = Parser(s.get_html())
+class ParseTest(unittest.TestCase):
def test_overview_shouldFindMultipleItems(self):
# TODO Replace with assertGreater in new python version
- self.assertTrue(len(self.p.overview) > 1)
+ self.assertTrue(len(p.overview) > 1)
def test_detail_shouldFindMultipleItems(self):
# TODO Replace with assertGreater in new python version
- self.assertTrue(len(self.p.details) > 1)
+ self.assertTrue(len(p.details) > 1)
def test_detail_shouldFindMultipleStations(self):
# TODO Replace with assertGreater in new python version
- self.assertTrue(len(self.p.details[0]) > 1)
+ self.assertTrue(len(p.details[0]) > 1)
def test_parser_overviewAndDetailsShouldHaveSameLength(self):
- self.assertEqual(len(self.p.details), len(self.p.overview))
+ self.assertEqual(len(p.details), len(p.overview))
def test_parser_shouldRaiseError(self):
# TODO Replace with expectedFailure decorator in new python version
- self.assertRaises(ParserError, self.invalid_parser._parse_overview)
+ self.assertRaises(ParserError, invalid_parser._parse_overview)
+
+ def test_parser_shouldFindMoreThanOneChange(self):
+ self.assertTrue(p.overview[0]['change'] > 0)
+
+ def test_parser_shouldFindPriceGreaterZero(self):
+ self.assertTrue(p.overview[0]['price'] > 0.0)
+
+ def test_parser_shouldFindDate(self):
+ self.assertTrue(p.overview[0]['date'] == dtime.date())
if __name__ == '__main__':