From a14ab0a7601ff5c197fe43d42410d8ed6bfd26a8 Mon Sep 17 00:00:00 2001 From: Wojtek Kosior Date: Sat, 13 Nov 2021 20:33:57 +0100 Subject: initial commit --- src/test/test_pydrilla.py | 90 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/test/test_pydrilla.py (limited to 'src/test/test_pydrilla.py') diff --git a/src/test/test_pydrilla.py b/src/test/test_pydrilla.py new file mode 100644 index 0000000..0ed5fa9 --- /dev/null +++ b/src/test/test_pydrilla.py @@ -0,0 +1,90 @@ +# 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]] -- cgit v1.2.3