From b3e60b3fb9a4c8a5229ab9e24ee53274d869376b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jelmer=20Vernoo=C4=B3?= Date: Thu, 22 Oct 2020 19:39:38 +0100 Subject: [PATCH] Add testsuite, git action. --- .github/workflows/pythonpackage.yml | 37 +++++++++++++++++++++++++++++ ognibuild/tests/__init__.py | 28 ++++++++++++++++++++++ setup.cfg | 9 +++++++ 3 files changed, 74 insertions(+) create mode 100644 .github/workflows/pythonpackage.yml create mode 100644 ognibuild/tests/__init__.py create mode 100644 setup.cfg diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml new file mode 100644 index 0000000..b7e335e --- /dev/null +++ b/.github/workflows/pythonpackage.yml @@ -0,0 +1,37 @@ +name: Python package + +on: [push, pull_request] + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: [3.7, 3.8, pypy3] + fail-fast: false + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python setup.py develop + - name: Style checks + run: | + python -m flake8 + - name: Typing checks + run: | + pip install -U mypy + python -m mypy ognibuild + if: "matrix.python-version != 'pypy3'" + - name: Test suite run + run: | + python -m unittest ognibuild.tests.test_suite + env: + PYTHONHASHSEED: random diff --git a/ognibuild/tests/__init__.py b/ognibuild/tests/__init__.py new file mode 100644 index 0000000..49e3b94 --- /dev/null +++ b/ognibuild/tests/__init__.py @@ -0,0 +1,28 @@ +# ognibuild +# Copyright (C) 2020 Jelmer Vernooij +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; version 2 +# of the License or (at your option) any later version of +# the License. +# +# 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. + +import unittest + + +def test_suite(): + names = [ + ] + module_names = ['ognibuild.tests.test_' + name for name in names] + loader = unittest.TestLoader() + return loader.loadTestsFromNames(module_names) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..eb9fed9 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,9 @@ +[flake8] +application-package-names = ognibuild + +[mypy] +# A number of ognibuilds' dependencies don't have type hints yet +ignore_missing_imports = True + +[bdist_wheel] +universal = 1