Make sure bind_ctx() is usable as deco #937
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Tests | |
| on: [push] | |
| jobs: | |
| tests: | |
| name: ${{ matrix.peewee-backend }} - ${{ matrix.python-version }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| services: | |
| mysql: | |
| image: mariadb:latest | |
| env: | |
| MYSQL_ROOT_PASSWORD: peewee | |
| MYSQL_DATABASE: peewee_test | |
| ports: | |
| - 3306:3306 | |
| mysql8: | |
| image: mysql:8 | |
| env: | |
| MYSQL_ROOT_PASSWORD: peewee | |
| MYSQL_DATABASE: peewee_test | |
| ports: | |
| - 3307:3306 | |
| postgres: | |
| image: postgres | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: peewee | |
| POSTGRES_DB: peewee_test | |
| ports: | |
| - 5432:5432 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [3.9, "3.11", "3.13", "3.14"] | |
| peewee-backend: | |
| - "sqlite" | |
| - "postgresql" | |
| - "mysql" | |
| include: | |
| - python-version: "3.8" | |
| peewee-backend: sqlite | |
| - python-version: "3.12" | |
| peewee-backend: sqlite | |
| - python-version: "3.12" | |
| peewee-backend: psycopg3 | |
| - python-version: "3.13" | |
| peewee-backend: psycopg3 | |
| - python-version: "3.14" | |
| peewee-backend: psycopg3 | |
| - python-version: "3.13" | |
| peewee-backend: cysqlite | |
| - python-version: "3.13" | |
| peewee-backend: cockroachdb | |
| - python-version: "3.13" | |
| peewee-backend: mysql8 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: deps | |
| env: | |
| PGUSER: postgres | |
| PGHOST: 127.0.0.1 | |
| PGPASSWORD: peewee | |
| run: | | |
| sudo apt-get install libsqlite3-dev | |
| pip install setuptools psycopg2-binary cython pymysql 'apsw' mysql-connector-python sqlcipher3 pysqlite3 'psycopg[binary]' gevent | |
| pip install greenlet aiosqlite aiomysql asyncpg pydantic | |
| python setup.py build_ext -i | |
| psql peewee_test -c 'CREATE EXTENSION hstore;' | |
| - name: crdb | |
| if: ${{ matrix.peewee-backend == 'cockroachdb' }} | |
| run: | | |
| wget -qO- https://binaries.cockroachdb.com/cockroach-v22.2.6.linux-amd64.tgz | tar xz | |
| ./cockroach-v22.2.6.linux-amd64/cockroach start-single-node --insecure --background | |
| ./cockroach-v22.2.6.linux-amd64/cockroach sql --insecure -e 'create database peewee_test;' | |
| - name: cysqlite | |
| if: ${{ matrix.peewee-backend == 'cysqlite' || matrix.peewee-backend == 'sqlite' }} | |
| run: | | |
| pip install -e 'git+https://github.com/coleifer/cysqlite#egg=cysqlite' | |
| - name: runtests ${{ matrix.peewee-backend }} - ${{ matrix.python-version }} | |
| env: | |
| PEEWEE_TEST_BACKEND: ${{ matrix.peewee-backend }} | |
| PEEWEE_MYSQL_PORT: ${{ matrix.peewee-backend == 'mysql8' && '3307' || '3306' }} | |
| PGUSER: postgres | |
| PGHOST: 127.0.0.1 | |
| PGPASSWORD: peewee | |
| CI: 1 | |
| run: python runtests.py --mysql-user=root --mysql-password=peewee -s -v2 | |
| - name: asyncio stress | |
| if: matrix.peewee-backend == 'postgresql' && matrix.python-version == '3.13' | |
| env: | |
| PGUSER: postgres | |
| PGHOST: 127.0.0.1 | |
| PGPASSWORD: peewee | |
| run: python runtests.py -A | |
| stubs: | |
| name: stub checks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - run: NO_SQLITE=1 pip install . mypy pyright ty typing_extensions | |
| # Fail loudly if a packaging change ever drops the stub from the wheel. | |
| - name: verify stub is packaged | |
| run: python -c "import os,sysconfig;p=os.path.join(sysconfig.get_path('purelib'),'peewee-stubs','__init__.pyi');assert os.path.exists(p),p;print('stub installed at',p)" | |
| - name: stubtest | |
| working-directory: typecheck | |
| run: python -m mypy.stubtest peewee --allowlist stubtest_allowlist.txt | |
| - name: mypy | |
| working-directory: typecheck | |
| run: mypy check_stub.py | |
| # Errors inside an installed stub are silenced, so check the file directly. | |
| - name: mypy stub | |
| run: mypy peewee-stubs/__init__.pyi | |
| - name: pyright | |
| working-directory: typecheck | |
| run: pyright check_stub.py |