import pytest from ereuse_devicehub.devicehub import Devicehub from ereuse_devicehub.client import Client @pytest.mark.mvp def test_dummy(_app: Devicehub): """Tests the dummy cli command.""" runner = _app.test_cli_runner() runner.invoke('dummy', '--yes') with _app.app_context(): _app.db.drop_all() @pytest.mark.mvp def test_dependencies(): with pytest.raises(ImportError): # Simplejson has a different signature than stdlib json # should be fixed though # noinspection PyUnresolvedReferences import simplejson # noinspection PyArgumentList @pytest.mark.mvp def test_api_docs(client: Client): """Tests /apidocs correct initialization.""" docs, _ = client.get('/apidocs') assert set(docs['paths'].keys()) == { '/actions/', '/apidocs', '/batteries/{dev1_id}/merge/{dev2_id}', '/bikes/{dev1_id}/merge/{dev2_id}', '/cameras/{dev1_id}/merge/{dev2_id}', '/cellphones/{dev1_id}/merge/{dev2_id}', '/components/{dev1_id}/merge/{dev2_id}', '/computer-accessories/{dev1_id}/merge/{dev2_id}', '/computer-monitors/{dev1_id}/merge/{dev2_id}', '/computers/{dev1_id}/merge/{dev2_id}', '/cookings/{dev1_id}/merge/{dev2_id}', '/data-storages/{dev1_id}/merge/{dev2_id}', '/dehumidifiers/{dev1_id}/merge/{dev2_id}', '/deliverynotes/', '/desktops/{dev1_id}/merge/{dev2_id}', '/devices/', '/devices/static/{filename}', '/devices/{dev1_id}/merge/{dev2_id}', '/displays/{dev1_id}/merge/{dev2_id}', '/diy-and-gardenings/{dev1_id}/merge/{dev2_id}', '/documents/devices/', '/documents/erasures/', '/documents/lots/', '/documents/static/{filename}', '/documents/stock/', '/drills/{dev1_id}/merge/{dev2_id}', '/graphic-cards/{dev1_id}/merge/{dev2_id}', '/hard-drives/{dev1_id}/merge/{dev2_id}', '/homes/{dev1_id}/merge/{dev2_id}', '/hubs/{dev1_id}/merge/{dev2_id}', '/keyboards/{dev1_id}/merge/{dev2_id}', '/label-printers/{dev1_id}/merge/{dev2_id}', '/laptops/{dev1_id}/merge/{dev2_id}', '/lots/', '/lots/{id}/children', '/lots/{id}/devices', '/manufacturers/', '/memory-card-readers/{dev1_id}/merge/{dev2_id}', '/mice/{dev1_id}/merge/{dev2_id}', '/microphones/{dev1_id}/merge/{dev2_id}', '/mixers/{dev1_id}/merge/{dev2_id}', '/mobiles/{dev1_id}/merge/{dev2_id}', '/monitors/{dev1_id}/merge/{dev2_id}', '/motherboards/{dev1_id}/merge/{dev2_id}', '/network-adapters/{dev1_id}/merge/{dev2_id}', '/networkings/{dev1_id}/merge/{dev2_id}', '/pack-of-screwdrivers/{dev1_id}/merge/{dev2_id}', '/printers/{dev1_id}/merge/{dev2_id}', '/processors/{dev1_id}/merge/{dev2_id}', '/proofs/', '/rackets/{dev1_id}/merge/{dev2_id}', '/ram-modules/{dev1_id}/merge/{dev2_id}', '/recreations/{dev1_id}/merge/{dev2_id}', '/routers/{dev1_id}/merge/{dev2_id}', '/sais/{dev1_id}/merge/{dev2_id}', '/servers/{dev1_id}/merge/{dev2_id}', '/smartphones/{dev1_id}/merge/{dev2_id}', '/solid-state-drives/{dev1_id}/merge/{dev2_id}', '/sound-cards/{dev1_id}/merge/{dev2_id}', '/sounds/{dev1_id}/merge/{dev2_id}', '/stairs/{dev1_id}/merge/{dev2_id}', '/switches/{dev1_id}/merge/{dev2_id}', '/tablets/{dev1_id}/merge/{dev2_id}', '/tags/', '/tags/{tag_id}/device/{device_id}', '/television-sets/{dev1_id}/merge/{dev2_id}', '/users/', '/users/login/', '/video-scalers/{dev1_id}/merge/{dev2_id}', '/videoconferences/{dev1_id}/merge/{dev2_id}', '/videos/{dev1_id}/merge/{dev2_id}', '/wireless-access-points/{dev1_id}/merge/{dev2_id}', '/versions/', '/allocates/', '/deallocates/', '/metrics/', } assert docs['info'] == {'title': 'Devicehub', 'version': '0.2'} assert docs['components']['securitySchemes']['bearerAuth'] == { 'description': 'Basic scheme with token.', 'in': 'header', 'description:': 'HTTP Basic scheme', 'type': 'http', 'scheme': 'basic', 'name': 'Authorization' } assert len(docs['definitions']) == 123