diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml new file mode 100644 index 0000000..eaa5210 --- /dev/null +++ b/.github/workflows/test-package.yml @@ -0,0 +1,51 @@ +name: Tests + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.9" + - "3.10" + - "3.11" + # - "3.12" + steps: + # This cancels any such job that is still runnning + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.6.0 + with: + access_token: ${{ github.token }} + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install Linux libraries + run: | + sudo apt-get install -y libdbus-1-3 libxkbcommon-x11-0 libxcb-icccm4 \ + libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 \ + libxcb-xinerama0 libxcb-xinput0 libxcb-xfixes0 + - name: Install dependencies + run: | + pip install --upgrade pip + pip install zstandard==0.16.0 + pip install numpy + pip install flybrains --no-deps + pip install pyarrow + - name: Install fafbseb + run: pip install -e . + - name: Report dependency versions + run: pip freeze -r requirements.txt + - name: Set FlyWire CAVE token for tests + env: + CAVE_TOKEN: ${{ secrets.cave_token }} + run: | + python -c "from fafbseg import flywire;flywire.set_chunkedgraph_secret('$CAVE_TOKEN')" + - name: Test with pytest + with: + run: | + export NAVIS_HEADLESS=TRUE + pytest --verbose diff --git a/conftest.py b/conftest.py new file mode 100644 index 0000000..d0c6631 --- /dev/null +++ b/conftest.py @@ -0,0 +1,11 @@ + +SKIP = ['conf.py'] + +def pytest_ignore_collect(path): + # Do not test the Blender module - for some reason that can't be imported + if "blender" in str(path): + return True + for s in SKIP: + if str(path).endswith(s): + return True + diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 0000000..93ee4ed --- /dev/null +++ b/pytest.ini @@ -0,0 +1,5 @@ +[pytest] +doctest_optionflags = IGNORE_EXCEPTION_DETAIL NUMBER NORMALIZE_WHITESPACE +addopts = --doctest-modules +env = + NAVIS_HEADLESS=TRUE \ No newline at end of file