API - allow keeping default tile server for static map - #83
This commit is contained in:
parent
cbcd67b3a1
commit
3c4718cc27
@ -25,4 +25,5 @@ export REDIS_URL=
|
|||||||
# Activities
|
# Activities
|
||||||
export TILE_SERVER_URL=
|
export TILE_SERVER_URL=
|
||||||
export MAP_ATTRIBUTION=
|
export MAP_ATTRIBUTION=
|
||||||
|
#export DEFAULT_STATICMAP=False
|
||||||
export WEATHER_API_KEY=
|
export WEATHER_API_KEY=
|
||||||
|
@ -42,6 +42,9 @@ class BaseConfig:
|
|||||||
'target="_blank" rel="noopener noreferrer">OpenStreetMap</a>'
|
'target="_blank" rel="noopener noreferrer">OpenStreetMap</a>'
|
||||||
' contributors',
|
' contributors',
|
||||||
),
|
),
|
||||||
|
'DEFAULT_STATICMAP': (
|
||||||
|
os.environ.get('DEFAULT_STATICMAP', 'False') == 'True'
|
||||||
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
8
fittrackee/tests/fixtures/fixtures_app.py
vendored
8
fittrackee/tests/fixtures/fixtures_app.py
vendored
@ -75,6 +75,14 @@ def app(monkeypatch: pytest.MonkeyPatch) -> Generator:
|
|||||||
monkeypatch.delenv('TILE_SERVER_URL')
|
monkeypatch.delenv('TILE_SERVER_URL')
|
||||||
if os.getenv('MAP_ATTRIBUTION'):
|
if os.getenv('MAP_ATTRIBUTION'):
|
||||||
monkeypatch.delenv('MAP_ATTRIBUTION')
|
monkeypatch.delenv('MAP_ATTRIBUTION')
|
||||||
|
if os.getenv('DEFAULT_STATICMAP'):
|
||||||
|
monkeypatch.delenv('DEFAULT_STATICMAP')
|
||||||
|
yield from get_app(with_config=True)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def app_default_static_map(monkeypatch: pytest.MonkeyPatch) -> Generator:
|
||||||
|
monkeypatch.setenv('DEFAULT_STATICMAP', 'True')
|
||||||
yield from get_app(with_config=True)
|
yield from get_app(with_config=True)
|
||||||
|
|
||||||
|
|
||||||
|
@ -360,6 +360,37 @@ class TestPostWorkoutWithGpx(ApiTestCaseMixin, CallArgsMixin):
|
|||||||
in call_args[0]
|
in call_args[0]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_it_calls_default_tile_server_for_static_map(
|
||||||
|
self,
|
||||||
|
app_default_static_map: Flask,
|
||||||
|
user_1: User,
|
||||||
|
sport_1_cycling: Sport,
|
||||||
|
gpx_file: str,
|
||||||
|
static_map_get_mock: Mock,
|
||||||
|
) -> None:
|
||||||
|
client, auth_token = self.get_test_client_and_auth_token(
|
||||||
|
app_default_static_map
|
||||||
|
)
|
||||||
|
client.post(
|
||||||
|
'/api/workouts',
|
||||||
|
data=dict(
|
||||||
|
file=(BytesIO(str.encode(gpx_file)), 'example.gpx'),
|
||||||
|
data='{"sport_id": 1}',
|
||||||
|
),
|
||||||
|
headers=dict(
|
||||||
|
content_type='multipart/form-data',
|
||||||
|
Authorization=f'Bearer {auth_token}',
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
call_args = self.get_args(static_map_get_mock.call_args)
|
||||||
|
assert (
|
||||||
|
app_default_static_map.config['TILE_SERVER']['URL']
|
||||||
|
.replace('{s}.', '')
|
||||||
|
.replace('/{z}/{x}/{y}.png', '')
|
||||||
|
not in call_args[0]
|
||||||
|
)
|
||||||
|
|
||||||
def test_it_returns_500_if_gpx_file_has_not_tracks(
|
def test_it_returns_500_if_gpx_file_has_not_tracks(
|
||||||
self,
|
self,
|
||||||
app: Flask,
|
app: Flask,
|
||||||
|
@ -265,14 +265,11 @@ def generate_map(map_filepath: str, map_data: List) -> None:
|
|||||||
"""
|
"""
|
||||||
Generate and save map image from map data
|
Generate and save map image from map data
|
||||||
"""
|
"""
|
||||||
m = StaticMap(
|
m = StaticMap(400, 225, 10)
|
||||||
400,
|
if not current_app.config['TILE_SERVER']['DEFAULT_STATICMAP']:
|
||||||
225,
|
m.url_template = current_app.config['TILE_SERVER']['URL'].replace(
|
||||||
10,
|
|
||||||
url_template=current_app.config['TILE_SERVER']['URL'].replace(
|
|
||||||
'{s}.', ''
|
'{s}.', ''
|
||||||
),
|
)
|
||||||
)
|
|
||||||
line = Line(map_data, '#3388FF', 4)
|
line = Line(map_data, '#3388FF', 4)
|
||||||
m.add_line(line)
|
m.add_line(line)
|
||||||
image = m.render()
|
image = m.render()
|
||||||
|
Loading…
Reference in New Issue
Block a user