Add return and inbound journey support
This commit is contained in:
parent
6ba71447ef
commit
9691632f65
12 changed files with 1687 additions and 486 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import pytest
|
||||
from scraper.eurostar import _parse_graphql, search_url
|
||||
from scraper.eurostar import _parse_graphql, _parse_graphql_leg, search_url
|
||||
|
||||
|
||||
def _gql_response(journeys: list) -> dict:
|
||||
|
|
@ -110,6 +110,24 @@ def test_parse_graphql_empty_journeys():
|
|||
assert _parse_graphql(data, 'Paris Gare du Nord') == []
|
||||
|
||||
|
||||
def test_parse_graphql_inbound_leg():
|
||||
data = {'data': {'journeySearch': {'inbound': {'journeys': [
|
||||
_journey('17:12', '18:30', price=49, seats=43, service_name='9035')
|
||||
]}}}}
|
||||
services = _parse_graphql_leg(data, 'Paris Gare du Nord', 'inbound', 'inbound')
|
||||
|
||||
assert services == [{
|
||||
'depart_destination': '17:12',
|
||||
'arrive_st_pancras': '18:30',
|
||||
'destination': 'Paris Gare du Nord',
|
||||
'train_number': 'ES 9035',
|
||||
'price': 49.0,
|
||||
'seats': 43,
|
||||
'plus_price': None,
|
||||
'plus_seats': None,
|
||||
}]
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# search_url
|
||||
# ---------------------------------------------------------------------------
|
||||
|
|
@ -120,3 +138,8 @@ def test_search_url():
|
|||
'https://www.eurostar.com/search/uk-en'
|
||||
'?adult=1&origin=7015400&destination=8727100&outbound=2026-04-10'
|
||||
)
|
||||
|
||||
|
||||
def test_search_url_return():
|
||||
url = search_url('Paris Gare du Nord', '2026-04-10', return_date='2026-04-17')
|
||||
assert url.endswith('&outbound=2026-04-10&inbound=2026-04-17')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue