1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
; SPDX-FileCopyrightText: Christian Amsüss and the aiocoap contributors
; SPDX-License-Identifier: MIT
[tox]
envlist = {py310,py311,py312,py313,py314,pypy3}-{noextras,allextras},py312-uvloop,py312-glib,py312-uvloop-simpleudp,pypy3-simpleudp
skip_missing_interpreters = true
[testenv]
deps =
coverage
pytest
allowlist_externals = sh
commands =
python -m coverage run --source=aiocoap -m aiocoap.cli.defaults
python -Xdev -m coverage run --source=aiocoap -m pytest {posargs}
[testenv:{py310,py311,py312,py313,py314,pypy3}-noextras]
description = Running on plain Python
[testenv:{py310,py311,py312,py313,py314,pypy3}-allextras]
description = Running with all extra dependencies installed
extras =
all
setenv =
AIOCOAP_DEFAULTS_EXPECT_ALL=1
; Not running the non-default loops everywhere to save some CI time
;
; While it's perfectly realistic that older Python versions struggle with
; those, that's likely more that loop's fault (or the fault of the test setup)
; than aiocoap's.
[testenv:py312-uvloop]
description = Running on uvloop
deps =
coverage
pytest
uvloop
extras =
all
setenv =
AIOCOAP_TESTS_LOOP=uvloop
[testenv:py312-glib]
description = Running on the glib / pygobject main loop
# not precisely < 3.52 from aiocoap, but the build dependencies on the
# python3.12 host have libgirepository1.0 while 3.52 expects 2.0 (and odds are
# dev releases)
deps =
coverage
pytest
pygobject >= 3.49, < 3.51
extras =
all
setenv =
AIOCOAP_TESTS_LOOP=glib
; Not running the -simple versions everywhere to save some CI time.
;
; For the CPython part we're using the uvloop runner, because AFAIR there were
; some extra workarounds. uvloop doesn't currently work with pypy, which gives
; us the opportunity there to run it on some Python also without uvloop.
[testenv:py312-uvloop-simpleudp]
description = Running on uvloop with simple* UDP transports
deps =
coverage
pytest
uvloop
extras =
all
; client-/server-transport substitute the default udp6 with the non-udp6
; alternative. that test could just as well be done on the default main loop,
; but AFAIR uvloop required occasional workarounds
setenv =
AIOCOAP_DEFAULTS_EXPECT_ALL=1
AIOCOAP_TESTS_LOOP=uvloop
AIOCOAP_CLIENT_TRANSPORT=oscore:tinydtls:tcpclient:tlsclient:ws:simple6
AIOCOAP_SERVER_TRANSPORT=oscore:tinydtls_server:tinydtls:tcpserver:tcpclient:tlsserver:tlsclient:ws:simplesocketserver
[testenv:pypy3-simpleudp]
description = Running pypy3 with simple UDP transports
deps =
coverage
pytest
extras =
all
setenv =
AIOCOAP_DEFAULTS_EXPECT_ALL=1
AIOCOAP_CLIENT_TRANSPORT=oscore:tinydtls:tcpclient:tlsclient:ws:simple6
AIOCOAP_SERVER_TRANSPORT=oscore:tinydtls_server:tinydtls:tcpserver:tcpclient:tlsserver:tlsclient:ws:simplesocketserver
|