diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000000..23d17ae1af --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,45 @@ +name: Python package + +on: [push, pull_request] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8"] +# python-version: ["3.7", "3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install flake8 pytest wheel + cat autoptsclient_requirements.txt | xargs -n 1 pip install || true + cat autoptsserver_requirements.txt | xargs -n 1 pip install || true + pip install -U -e . + - name: Compile + run: | + python -m py_compile autoptsserver.py + python -m py_compile autoptsclient_bot.py + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pytest ./test/unittests.py + - name: Test MMI parser + run: | + ./test/test-mmi-parser.py +# - name: Style check +# run: | +# ./test/stylecheck.py diff --git a/test/stylecheck.py b/test/stylecheck.py index 504674ae4a..5b60a58127 100755 --- a/test/stylecheck.py +++ b/test/stylecheck.py @@ -47,7 +47,7 @@ def run_checks(py_files): try: subprocess.check_output(shlex.split(cmd), stderr=subprocess.STDOUT) except subprocess.CalledProcessError as exc: - print("\nCheck failed:\n", exc.output) + print("\nCheck failed:\n", exc.output.decode("utf-8")) sys.exit(1) @@ -55,9 +55,8 @@ def main(): top_level = subprocess.check_output( "git rev-parse --show-toplevel", shell=True).strip() os.chdir(top_level) - files = subprocess.check_output("git ls-files", shell=True) - py_files = [ - fl for fl in files.splitlines() if os.path.splitext(fl)[1] == ".py"] + files = subprocess.check_output("git ls-files", shell=True).decode("utf-8") + py_files = [fl for fl in files.splitlines() if fl.endswith(".py")] run_checks(py_files) diff --git a/test/unittests.py b/test/unittests.py new file mode 100644 index 0000000000..d5af60aaf9 --- /dev/null +++ b/test/unittests.py @@ -0,0 +1,10 @@ +import unittest + + +class MyTestCase(unittest.TestCase): + def test_something(self): + self.assertEqual(True, True) # add assertion here + + +if __name__ == '__main__': + unittest.main()