diff --git a/config.yml b/config.yml index cf6082f..59450b3 100644 --- a/config.yml +++ b/config.yml @@ -1,5 +1,5 @@ api: - url: https://api.transilien.com/gare/{departure_station}/depart/{arrival_station} + url: https://api.transilien.com/gare/${departure_station}/depart/${arrival_station} departure_station: 00000000 arrival_station: 00000000 user: user diff --git a/rerwatcher/api.py b/rerwatcher/api.py index 4026d5e..81ea4a3 100644 --- a/rerwatcher/api.py +++ b/rerwatcher/api.py @@ -8,6 +8,7 @@ """ from datetime import datetime +from string import Template import requests from lxml import etree @@ -66,7 +67,7 @@ class TransilienApi: 'encoding'. Attributes: - _url (str): https://api.transilien.com/gare/{departure_station}/depart/{arrival_station} + _url (str): https://api.transilien.com/gare/${departure_station}/depart/${arrival_station} _auth (HTTPBasicAuth): the basic authentication built with the user and password config params. _date_format (str): '%d/%m/%Y %H:%M' @@ -75,7 +76,8 @@ class TransilienApi: """ def __init__(self, config): - self._url = config['api']['url'].format( + url_template = Template(config['api']['url']) + self._url = url_template.substitute( departure_station=config['api']['departure_station'], arrival_station=config['api']['arrival_station'] ) diff --git a/tests/conftest.py b/tests/conftest.py index 1105010..0a9e292 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,7 +8,7 @@ def fake_config(): return { "api": { - "url": 'https://test.url/{departure_station}/depart/{arrival_station}', + "url": 'https://test.url/${departure_station}/depart/${arrival_station}', "departure_station": 123, "arrival_station": 321, "user": 'user', diff --git a/tests/test_rerwatcher.py b/tests/test_rerwatcher.py index 99b8fc1..ab15510 100644 --- a/tests/test_rerwatcher.py +++ b/tests/test_rerwatcher.py @@ -2,6 +2,7 @@ # coding: utf-8 import os +from string import Template from unittest.mock import patch from requests.auth import HTTPBasicAuth @@ -29,7 +30,7 @@ def test_build_rer_watcher_return_app(load_config, fake_config): assert isinstance(app, RerWatcher) assert app._refresh_time == fake_config['refresh_time']['default'] assert isinstance(app._api, TransilienApi) - assert app._api._url == fake_config['api']['url'].format( + assert app._api._url == Template(fake_config['api']['url']).substitute( departure_station=fake_config['api']['departure_station'], arrival_station=fake_config['api']['arrival_station'], )