mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
Creating a new Collection model for use in organizing FileGroups.
Replacing Channels and Domains with Collection. Moving downloading relationships from Channel to Collection. Created domains.yaml config to manage tagged domain collections. Adding turn-key upgrade solution in the UI.
This commit is contained in:
parent
1f7b1c8744
commit
4fae4ae1b4
115 changed files with 13309 additions and 986 deletions
|
|
@ -3,10 +3,11 @@ from http import HTTPStatus
|
|||
from itertools import zip_longest
|
||||
|
||||
import mock
|
||||
import pytest
|
||||
|
||||
|
||||
def assert_map_file_status(test_client, expected, status_code=HTTPStatus.OK):
|
||||
request, response = test_client.get('/api/map/files')
|
||||
async def assert_map_file_status(async_client, expected, status_code=HTTPStatus.OK):
|
||||
request, response = await async_client.get('/api/map/files')
|
||||
assert response.status_code == status_code
|
||||
for pbf, expected_ in zip_longest(response.json['files'], expected):
|
||||
imported = 'to be imported' if expected_['imported'] else 'to NOT be imported'
|
||||
|
|
@ -16,9 +17,10 @@ def assert_map_file_status(test_client, expected, status_code=HTTPStatus.OK):
|
|||
assert response.json['pending'] is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@mock.patch('modules.map.lib.is_pbf_file', lambda i: True)
|
||||
@mock.patch('modules.map.lib.is_dump_file', lambda i: True)
|
||||
def test_status_and_import(test_client, test_session, make_files_structure, mock_run_command):
|
||||
async def test_status_and_import(async_client, test_session, make_files_structure, mock_run_command):
|
||||
"""PBF files can be imported, and the status of the import can be monitored."""
|
||||
pbf1, pbf2, dump1 = make_files_structure([
|
||||
'map/pbf/some-country.osm.pbf',
|
||||
|
|
@ -32,10 +34,10 @@ def test_status_and_import(test_client, test_session, make_files_structure, mock
|
|||
{'imported': False, 'path': 'map/pbf/other-country.osm.pbf'},
|
||||
{'imported': False, 'path': 'map/pbf/some-country.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
body = {'files': [str(pbf1), str(pbf2)]}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# Can import multiple pbf files.
|
||||
|
|
@ -44,10 +46,10 @@ def test_status_and_import(test_client, test_session, make_files_structure, mock
|
|||
{'imported': True, 'path': 'map/pbf/other-country.osm.pbf'},
|
||||
{'imported': True, 'path': 'map/pbf/some-country.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
body = {'files': [str(pbf1), ], }
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# Importing one pbf resets the import statuses.
|
||||
|
|
@ -56,10 +58,10 @@ def test_status_and_import(test_client, test_session, make_files_structure, mock
|
|||
{'imported': False, 'path': 'map/pbf/other-country.osm.pbf'},
|
||||
{'imported': True, 'path': 'map/pbf/some-country.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
body = {'files': [str(dump1), ]}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# Importing a dump also resets statuses.
|
||||
|
|
@ -68,12 +70,13 @@ def test_status_and_import(test_client, test_session, make_files_structure, mock
|
|||
{'imported': False, 'path': 'map/pbf/other-country.osm.pbf'},
|
||||
{'imported': True, 'path': 'map/pbf/some-country.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@mock.patch('modules.map.lib.is_pbf_file', lambda i: True)
|
||||
@mock.patch('modules.map.lib.is_dump_file', lambda i: True)
|
||||
def test_multiple_import(test_client, test_session, test_directory, make_files_structure, mock_run_command):
|
||||
async def test_multiple_import(async_client, test_session, test_directory, make_files_structure, mock_run_command):
|
||||
"""Multiple PBFs can be imported. Importing a second time overwrites the previous imports."""
|
||||
pbf1, pbf2, pbf3, dump = make_files_structure([
|
||||
'map/pbf/country1.osm.pbf',
|
||||
|
|
@ -83,7 +86,7 @@ def test_multiple_import(test_client, test_session, test_directory, make_files_s
|
|||
])
|
||||
|
||||
body = {'files': [str(pbf2), str(pbf1)]}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# Two PBFs can be merged and imported.
|
||||
|
|
@ -93,10 +96,10 @@ def test_multiple_import(test_client, test_session, test_directory, make_files_s
|
|||
{'imported': True, 'path': 'map/pbf/country2.osm.pbf'},
|
||||
{'imported': False, 'path': 'map/pbf/country3.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
body = {'files': [str(pbf3), ]}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# New imports overwrite old imports.
|
||||
|
|
@ -106,11 +109,11 @@ def test_multiple_import(test_client, test_session, test_directory, make_files_s
|
|||
{'imported': False, 'path': 'map/pbf/country2.osm.pbf'},
|
||||
{'imported': True, 'path': 'map/pbf/country3.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
# Can't mix PBF and dump.
|
||||
body = {'files': [str(dump), ]}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.NO_CONTENT
|
||||
|
||||
# Dump does not overwrite.
|
||||
|
|
@ -120,12 +123,13 @@ def test_multiple_import(test_client, test_session, test_directory, make_files_s
|
|||
{'imported': False, 'path': 'map/pbf/country2.osm.pbf'},
|
||||
{'imported': True, 'path': 'map/pbf/country3.osm.pbf'},
|
||||
]
|
||||
assert_map_file_status(test_client, expected)
|
||||
await assert_map_file_status(async_client, expected)
|
||||
|
||||
|
||||
def test_empty_import(test_client, test_session, test_directory):
|
||||
@pytest.mark.asyncio
|
||||
async def test_empty_import(async_client, test_session, test_directory):
|
||||
"""Some files must be requested."""
|
||||
body = {'files': []}
|
||||
request, response = test_client.post('/api/map/import', content=json.dumps(body))
|
||||
request, response = await async_client.post('/api/map/import', content=json.dumps(body))
|
||||
assert response.status_code == HTTPStatus.BAD_REQUEST
|
||||
assert 'validate' in response.json['message']
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue