django-ftpserver はDjangoフレームワークに依存するライブラリなので、toxで複数のPythonバージョンとDjangoバージョンの組合せでテストコードを実行するように設定しています。
tox.iniの設定が冗長だなあと感じていたのですが、envlistのマトリックスをシンプルに記載する方法があるのを教えてもらいました。
- https://tox.wiki/en/latest/example/basic.html#compressing-dependency-matrix
- https://tox.wiki/en/latest/config.html#generative-envlist
envlistで {} を使うとenvlistのマトリックスをすっきりまとめることができ、depsに pattern: のように記述することで、条件付きのライブラリ依存を記述できます。
[tox]
envlist =
py{36,37,38,39}-dj{22,30,31},
py{36,37,38,39,310}-dj32,
py{38,39,310}-dj40,
coverage,
flake8
[testenv]
commands = pytest
setenv =
PYTHONDONTWRITEBYTECODE=1
PYTHONWARNINGS=once
deps =
dj22: Django>=2.2,<2.3
dj30: Django>=3.0,<3.1
dj31: Django>=3.1,<3.2
dj32: Django>=3.2,<3.3
dj40: Django>=4.0,<4.1
pyftpdlib
pytest
pytest-django
pytest-pythonpath
shkumagaiさんがメンテしてるライブラリのリポジトリを参考にさせてもらいました。ありがとうございます。
GitHub - shkumagai/drf_renderer_svgheatmap: Rendering SVG Heatmap for Django REST Framework