# SPDX-License-Identifier: AGPL-3.0-or-later # Repository tests # # This file is part of Hydrilla # # Copyright (C) 2021 Wojtek Kosior # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . # # # I, Wojtek Kosior, thereby promise not to sue for violation of this # file's license. Although I request that you do not make use this code # in a proprietary program, I am not going to enforce this in court. import pytest import sys import shutil from pathlib import Path from os import mkdir, unlink, environ import json from pydrilla import pydrilla, create_app test_dir = Path(__file__).resolve().parent packages_dir = test_dir.parent test_config_path = test_dir / 'development_config.json' @pytest.fixture def client(): app = create_app(test_config_path, flask_config={'TESTING': True}) with app.test_client() as client: yield client def test_api_basic(client): response = client.get('/') assert b'html' in response.data for item_type in ['mapping', 'resource']: response = client.get(f'/{item_type}s/helloapple') definition = json.loads(response.data.decode()) assert definition['type'] == item_type assert definition['source_name'] == 'hello' assert definition['version'] == [2021, 11, 10] response = client.get(f'/{item_type}s/helloapple?ver=2021.11.10.0') assert definition == json.loads(response.data.decode()) response = client.get(f'/{item_type}s/helloapple?ver=2021.11.10.999') assert response.status_code == 404 def test_normalize_version(): assert pydrilla.normalize_version([4, 5, 3, 0, 0]) == [4, 5, 3] assert pydrilla.normalize_version([1, 0, 5, 0]) == [1, 0, 5] assert pydrilla.normalize_version([3, 3]) == [3, 3]