# 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 import pydrilla test_dir = Path(__file__).resolve().parent pydrilla_dir = Path(hydrilla.__file__).resolve().parent test_config_path = test_dir / 'config.json' @pytest.fixture def client(): app = pydrilla.create_app(test_config_path, flask_config={'TESTING': True}) with app.test_client() as client: yield client def test_basic(client): response = client.get('/') assert b'html' in response.data 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] ### pad_versions() and compare_versions() likely won't be needed # def test_compare_versions(): # compare_versions = pydrilla.compare_versions # # without revision # assert compare_versions([43], [43]) == 0 # assert compare_versions([54], [34]) == 1 # assert compare_versions([1], [3]) == -1 # assert compare_versions([10, 2], [10, 2]) == 0 # assert compare_versions([11, 6], [11, 2]) == 1 # assert compare_versions([3, 0], [3, 8]) == -1 # assert compare_versions([1, 2, 3], [1, 2]) == 1 # assert compare_versions([1, 2], [1, 2, 3]) == -1 # assert compare_versions([1], [1, 0, 0]) == 0 # # with revision # assert compare_versions([43], [43], rev2=3) == -1 # assert compare_versions([54], [34]), rev2=41) == 1 # assert compare_versions([1], [3]), rev1=6) == -1 # assert compare_versions([10, 2], [10, 2]), rev1=8, rev2=5) == 1 # assert compare_versions([11, 6], [11, 2]), rev2=19) == 1 # assert compare_versions([3, 0], [3, 8]), rev2=5) == -1 # assert compare_versions([1, 2, 3], [1, 2]), rev1=4) == 1 # assert compare_versions([1, 2], [1, 2, 3]), rev2=7) == -1 # assert compare_versions([1], [1, 0, 0]), rev2=9, rev1=9) == 0 # from functools import cmp_to_key # versions = [[43], [54], [3, 0], [34], [3], [1], [4, 5, 3], [1, 0, 5], # [3, 3], [10, 2], [11, 2], [11, 6], [3, 8], [1, 2], [1, 2, 3], # [1, 0, 0]] # versions.sort(cmp_to_key(compare_versions)) # assert versions == [[1], [1, 0, 0], [1, 0, 5], [1, 2], [1, 2, 3], [3, 0], # [3], [3, 3], [3, 8], [4, 5, 3], [10, 2], [11, 2], # [11, 6], [34], [43], [54]]