From 3186df0cc7ad75cc26afe6cc470436dbe216b30d Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 15 Dec 2013 14:06:42 +0100 Subject: [PATCH] support comfort classes --- modules/voyagessncf/backend.py | 8 ++++++-- modules/voyagessncf/browser.py | 4 ++-- modules/voyagessncf/pages.py | 3 ++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/voyagessncf/backend.py b/modules/voyagessncf/backend.py index da945642..3d3ad6f9 100644 --- a/modules/voyagessncf/backend.py +++ b/modules/voyagessncf/backend.py @@ -65,7 +65,10 @@ class VoyagesSNCFBackend(BaseBackend, ICapTravel): ('MIFAM', u'Carte Famille Militaire'), ('THBIZ', u'Thalys ThePass Business'), ('THPREM', u'Thalys ThePass Premium'), - ('THWE', u'Thalys ThePass Weekend'))))) + ('THWE', u'Thalys ThePass Weekend')))), + Value('class', label='Comfort class', default='2', + choices=OrderedDict((('1', u'1e classe'), + ('2', u'2e classe'))))) BROWSER = VoyagesSNCFBrowser STATIONS = [] @@ -106,7 +109,8 @@ class VoyagesSNCFBackend(BaseBackend, ICapTravel): with self.browser: for i, d in enumerate(self.browser.iter_departures(station, arrival, date, self.config['age'].get(), - self.config['card'].get())): + self.config['card'].get(), + self.config['class'].get())): departure = Departure(i, d['type'], d['time']) departure.departure_station = d['departure'] departure.arrival_station = d['arrival'] diff --git a/modules/voyagessncf/browser.py b/modules/voyagessncf/browser.py index 893faa27..d75d9083 100644 --- a/modules/voyagessncf/browser.py +++ b/modules/voyagessncf/browser.py @@ -44,8 +44,8 @@ class VoyagesSNCFBrowser(BaseBrowser): self.location('/completion/VSC/FR/fr/cityList.js') return self.page.get_stations() - def iter_departures(self, departure, arrival, date, age, card): + def iter_departures(self, departure, arrival, date, age, card, comfort_class): self.location('/billet-train') - self.page.search(departure, arrival, date, age, card) + self.page.search(departure, arrival, date, age, card, comfort_class) return self.page.iter_results() diff --git a/modules/voyagessncf/pages.py b/modules/voyagessncf/pages.py index 3f42c7d2..31a7de73 100644 --- a/modules/voyagessncf/pages.py +++ b/modules/voyagessncf/pages.py @@ -37,7 +37,7 @@ class CitiesPage(BasePage): return result['CITIES'] class SearchPage(BasePage): - def search(self, departure, arrival, date, age, card): + def search(self, departure, arrival, date, age, card, comfort_class): self.browser.select_form(name='saisie') self.browser['ORIGIN_CITY'] = departure.encode(self.browser.ENCODING) self.browser['DESTINATION_CITY'] = arrival.encode(self.browser.ENCODING) @@ -51,6 +51,7 @@ class SearchPage(BasePage): self.browser['OUTWARD_TIME'] = [str(date.hour)] self.browser['PASSENGER_1'] = [age] self.browser['PASSENGER_1_CARD'] = [card] + self.browser['COMFORT_CLASS'] = [str(comfort_class)] self.browser.controls.append(ClientForm.TextControl('text', 'nbAnimalsForTravel', {'value': ''})) self.browser['nbAnimalsForTravel'] = '0' self.browser.submit()