def bart_info(): bart = BartApi() dbrk = bart.etd("DBRK") result = {} for x in dbrk: destination = x['destination'] value = (x['estimates'][0]['hexcolor'], [train['minutes'] for train in x['estimates']][0:2]) result[destination] = value return result
class TestBartApi(unittest.TestCase): def setUp(self): self.bart = BartApi() def test_api_key(self): expected = "MW9S-E7SL-26DU-VV8V" actual = self.bart.api_key self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_number_of_trains(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/train_count.xml') as f: raw_xml = f.read() mock_urlopen.return_value = raw_xml.encode('utf-8') expected="51" actual = self.bart.number_of_trains() self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_elevator_status(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/elev.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected=" Attention passengers: All elevators are in service. Thank You. " actual = self.bart.elevator_status() self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_stations(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_list.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "West Oakland" stations = self.bart.get_stations() actual = stations[1].get("name") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_bsa_all(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/bsa.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected2 = "No delays reported." actual2 = self.bart.bsa() self.assertEqual(expected2, actual2) @patch('bart_api.urlopen') def test_bsa_specific(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/bsa_woak.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "No delays reported." actual = self.bart.bsa("WOAK") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_station_info(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_info.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "94110" station_info = self.bart.station_info("24TH") actual = station_info.get("zipcode") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_station_access(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_access.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = None station_info = self.bart.station_access("12TH", "1") actual = station_info.get("car_share") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_etd(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/etd.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "2" station_info = self.bart.etd("RICH", "2", "s") actual = station_info[0].get("estimates")[0].get("platform") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_routes(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/routes.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "1" station_info = self.bart.routes("26", "today") actual = station_info[0].get("number") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_route_infO(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/route_info.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "BALB" station_info = self.bart.route_info("6", "26", "today") actual = station_info.get('config')[1] self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_holidays(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/holiday.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "Presidents' Day" actual = self.bart.get_holidays()[1].get('name') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_schedules(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/schedules.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "26" actual = self.bart.get_schedules()[0].get('id') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_special_schedules(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/special_schedules.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "DUBL" actual = self.bart.get_special_schedules().get('orig') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_station_schedule(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_schedule.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "ROUTE 7" actual = self.bart.get_station_schedule("12th")[0].get("line") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_route_schedule(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/route_schedule.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "6:13 AM" actual = self.bart.get_route_schedule("6","today").get("1").get("DALY").get("orig_time") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_fare(self,mock_urlopen): a = Mock() with open('bart_api/test/mocks/fare.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "3.15" actual = self.bart.get_fare("12th", "embr").get("fare") self.assertEqual(expected, actual)
def setUp(self): self.bart = BartApi()
def setUp(self): self.bart = BartApi() self._cur_sched = None
class TestBartApi(unittest.TestCase): def setUp(self): self.bart = BartApi() self._cur_sched = None @property def cur_sched(self): if not self._cur_sched: self._cur_sched = self.bart.get_schedules()[-1]['id'] return self._cur_sched def test_api_key(self): expected = "MW9S-E7SL-26DU-VV8V" actual = self.bart.api_key self.assertEqual(expected, actual) def test_number_of_trains(self): expected = 45 actual = int(self.bart.number_of_trains()) self.assertLess(expected, actual) def test_elevator_status(self): expected = 10 actual = len(self.bart.elevator_status()) self.assertLess(expected, actual) def test_get_stations(self): expected = "12th St. Oakland City Center" stations = self.bart.get_stations() actual = stations[0].get("name") self.assertEqual(expected, actual) def test_bsa_all(self): expected = 10 actual = len(self.bart.bsa()) self.assertLess(expected, actual) def test_bsa_specific(self): expected = 10 actual = len(self.bart.bsa("WOAK")) self.assertLess(expected, actual) def test_station_info(self): expected = "94110" station_info = self.bart.station_info("24TH") actual = station_info.get("zipcode") self.assertEqual(expected, actual) def test_station_access(self): expected = "" station_info = self.bart.station_access("12TH", "1") actual = station_info.get("car_share") self.assertEqual(expected, actual) def test_etd(self): expected = "2" station_info = self.bart.etd("RICH", "2", "s") actual = station_info[0].get("estimates")[0].get("platform") self.assertEqual(expected, actual) def test_routes(self): expected = "1" station_info = self.bart.routes(self.cur_sched) actual = station_info[0].get("number") self.assertEqual(expected, actual) def test_route_info(self): expected = "BALB" station_info = self.bart.route_info("6", self.cur_sched, "today") actual = station_info.get('config')[1] self.assertEqual(expected, actual) def test_get_holidays(self): expected = "Day" # They all in "Day" actual = self.bart.get_holidays()[1].get('name')[-3:] self.assertEqual(expected, actual) def test_get_special_schedules(self): expected = 5 # Example: 'routes_affected': 'ROUTE 3, ROUTE 4, ROUTE 5, ROUTE 6' actual = len(self.bart.get_special_schedules().get('routes_affected')) self.assertLess(expected, actual) def test_get_station_schedule(self): expected = "ROUTE 7" actual = self.bart.get_station_schedule("12th")[0].get("line") self.assertEqual(expected, actual) def test_get_route_schedule(self): expected = "6:13 AM" actual = self.bart.get_route_schedule("6").get("1").get("DALY").get( "orig_time") self.assertEqual(expected, actual) def test_get_fare(self): expected = "3.15" actual = self.bart.get_fare("12th", "embr").get("fare") self.assertLess(expected, actual)
class TestBartApi(unittest.TestCase): def setUp(self): self.bart = BartApi() self._cur_sched = None @property def cur_sched(self): if not self._cur_sched: self._cur_sched = self.bart.get_schedules()[-1]['id'] return self._cur_sched def test_api_key(self): expected = "MW9S-E7SL-26DU-VV8V" actual = self.bart.api_key self.assertEqual(expected, actual) def test_number_of_trains(self): expected = 45 actual = int(self.bart.number_of_trains()) self.assertLess(expected, actual) def test_elevator_status(self): expected = 10 actual = len(self.bart.elevator_status()) self.assertLess(expected, actual) def test_get_stations(self): expected = "12th St. Oakland City Center" stations = self.bart.get_stations() actual = stations[0].get("name") self.assertEqual(expected, actual) def test_bsa_all(self): expected = 10 actual = len(self.bart.bsa()) self.assertLess(expected, actual) def test_bsa_specific(self): expected = 10 actual = len(self.bart.bsa("WOAK")) self.assertLess(expected, actual) def test_station_info(self): expected = "94110" station_info = self.bart.station_info("24TH") actual = station_info.get("zipcode") self.assertEqual(expected, actual) def test_station_access(self): expected = "" station_info = self.bart.station_access("12TH", "1") actual = station_info.get("car_share") self.assertEqual(expected, actual) def test_etd(self): expected = "2" station_info = self.bart.etd("RICH", "2", "s") actual = station_info[0].get("estimates")[0].get("platform") self.assertEqual(expected, actual) def test_routes(self): expected = "1" station_info = self.bart.routes(self.cur_sched) actual = station_info[0].get("number") self.assertEqual(expected, actual) def test_route_info(self): expected = "BALB" station_info = self.bart.route_info("6", self.cur_sched, "today") actual = station_info.get('config')[1] self.assertEqual(expected, actual) def test_get_holidays(self): expected = "Day" # They all in "Day" actual = self.bart.get_holidays()[1].get('name')[-3:] self.assertEqual(expected, actual) def test_get_special_schedules(self): expected = 5 # Example: 'routes_affected': 'ROUTE 3, ROUTE 4, ROUTE 5, ROUTE 6' actual = len(self.bart.get_special_schedules().get('routes_affected')) self.assertLess(expected, actual) def test_get_station_schedule(self): expected = "ROUTE 7" actual = self.bart.get_station_schedule("12th")[0].get("line") self.assertEqual(expected, actual) def test_get_route_schedule(self): expected = "6:13 AM" actual = self.bart.get_route_schedule("6").get("1").get("DALY").get("orig_time") self.assertEqual(expected, actual) def test_get_fare(self): expected = "3.15" actual = self.bart.get_fare("12th", "embr").get("fare") self.assertLess(expected, actual)
class TestBartApi(unittest.TestCase): def setUp(self): self.bart = BartApi() def test_api_key(self): expected = "MW9S-E7SL-26DU-VV8V" actual = self.bart.api_key self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_number_of_trains(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/train_count.xml') as f: raw_xml = f.read() mock_urlopen.return_value = raw_xml.encode('utf-8') expected = "51" actual = self.bart.number_of_trains() self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_elevator_status(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/elev.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = " Attention passengers: All elevators are in service. Thank You. " actual = self.bart.elevator_status() self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_stations(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_list.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "West Oakland" stations = self.bart.get_stations() actual = stations[1].get("name") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_bsa_all(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/bsa.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected2 = "No delays reported." actual2 = self.bart.bsa() self.assertEqual(expected2, actual2) @patch('bart_api.urlopen') def test_bsa_specific(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/bsa_woak.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "No delays reported." actual = self.bart.bsa("WOAK") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_station_info(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_info.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "94110" station_info = self.bart.station_info("24TH") actual = station_info.get("zipcode") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_station_access(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_access.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = None station_info = self.bart.station_access("12TH", "1") actual = station_info.get("car_share") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_etd(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/etd.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "2" station_info = self.bart.etd("RICH", "2", "s") actual = station_info[0].get("estimates")[0].get("platform") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_routes(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/routes.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "1" station_info = self.bart.routes("26", "today") actual = station_info[0].get("number") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_route_infO(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/route_info.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "BALB" station_info = self.bart.route_info("6", "26", "today") actual = station_info.get('config')[1] self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_holidays(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/holiday.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "Presidents' Day" actual = self.bart.get_holidays()[1].get('name') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_schedules(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/schedules.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "26" actual = self.bart.get_schedules()[0].get('id') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_special_schedules(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/special_schedules.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "DUBL" actual = self.bart.get_special_schedules().get('orig') self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_station_schedule(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/station_schedule.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "ROUTE 7" actual = self.bart.get_station_schedule("12th")[0].get("line") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_route_schedule(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/route_schedule.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "6:13 AM" actual = self.bart.get_route_schedule( "6", "today").get("1").get("DALY").get("orig_time") self.assertEqual(expected, actual) @patch('bart_api.urlopen') def test_get_fare(self, mock_urlopen): a = Mock() with open('bart_api/test/mocks/fare.xml') as f: raw_xml = f.read().encode('utf-8') mock_urlopen.return_value = raw_xml expected = "3.15" actual = self.bart.get_fare("12th", "embr").get("fare") self.assertEqual(expected, actual)