From 7f2fcb8938dc87f1219468d4068870f2a86d1d7e Mon Sep 17 00:00:00 2001 From: Daniel Townsend Date: Mon, 10 Oct 2022 06:24:41 +0100 Subject: [PATCH] GitHub actions tests (#4) * move test script into `scripts` folder * move dev-requirements to requirements folder * Create test-requirements.txt * Create lint.sh * add more version specifiers to setup.py * add black to linter * Create tests.yaml * Remove Python 3.7 support - no `functools.cached_property` --- .github/workflows/tests.yaml | 49 ++++++++++++++++++++++++++++++ dev-requirements.txt | 3 -- pyproject.toml | 3 ++ requirements/dev-requirements.txt | 3 ++ requirements/test-requirements.txt | 1 + scripts/lint.sh | 7 +++++ {tests => scripts}/run-tests.sh | 1 - setup.py | 2 ++ 8 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/tests.yaml delete mode 100644 dev-requirements.txt create mode 100644 pyproject.toml create mode 100644 requirements/dev-requirements.txt create mode 100644 requirements/test-requirements.txt create mode 100755 scripts/lint.sh rename {tests => scripts}/run-tests.sh (84%) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml new file mode 100644 index 0000000..7645db8 --- /dev/null +++ b/.github/workflows/tests.yaml @@ -0,0 +1,49 @@ +name: Test Suite + +on: + push: + branches: ["master"] + pull_request: + branches: ["master"] + +jobs: + linters: + runs-on: ubuntu-latest + timeout-minutes: 5 + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements/dev-requirements.txt + pip install -r requirements/test-requirements.txt + - name: Lint + run: ./scripts/lint.sh + + unittests: + runs-on: ubuntu-latest + timeout-minutes: 30 + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements/test-requirements.txt + - name: Run unittests + run: ./scripts/run-tests.sh diff --git a/dev-requirements.txt b/dev-requirements.txt deleted file mode 100644 index 6cfd5fd..0000000 --- a/dev-requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -black==19.10b0 -twine==3.1.1 - diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..3c0a461 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,3 @@ +[tool.black] +line-length = 79 +target-version = ['py37', 'py38', 'py39', 'py310'] diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt new file mode 100644 index 0000000..fc9e5be --- /dev/null +++ b/requirements/dev-requirements.txt @@ -0,0 +1,3 @@ +black +flake8 +twine==4.0.1 \ No newline at end of file diff --git a/requirements/test-requirements.txt b/requirements/test-requirements.txt new file mode 100644 index 0000000..e079f8a --- /dev/null +++ b/requirements/test-requirements.txt @@ -0,0 +1 @@ +pytest diff --git a/scripts/lint.sh b/scripts/lint.sh new file mode 100755 index 0000000..333d785 --- /dev/null +++ b/scripts/lint.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +echo "Running black..." +black --check asyncio_tools.py + +echo "Running flake8..." +flake8 asyncio_tools.py diff --git a/tests/run-tests.sh b/scripts/run-tests.sh similarity index 84% rename from tests/run-tests.sh rename to scripts/run-tests.sh index 22f4c66..97ec629 100755 --- a/tests/run-tests.sh +++ b/scripts/run-tests.sh @@ -1,3 +1,2 @@ #!/bin/bash -cd .. python -m pytest -s diff --git a/setup.py b/setup.py index 68d2e04..9daa9e2 100644 --- a/setup.py +++ b/setup.py @@ -33,6 +33,8 @@ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: Implementation :: CPython", ], )