# Pip requirements file for test dependencies.

# These dependencies have been separated from the other development dependencies
# in dev-requirements.txt in order to be able to run tests from just the
# source archive using 'setup.py test', without having the rest of the files
# in the repo.


# Include install dependencies
-r requirements.txt


# Direct dependencies for test and indirect dependencies for test that are
# needed for some reason (must be consistent with minimum-constraints.txt)

# Unit test (imports into testcases):
packaging>=19.0; python_version == '3.6'
packaging>=21.3; python_version >= '3.7'
funcsigs>=1.0.2; python_version == '2.7'
# pytest 5.0.0 has removed support for Python < 3.5
# pytest 4.3.1 solves an issue on Python 3 with minimum package levels
# pytest==6.0.0 causes pylint to report "not-callable" issues
# pytest>=6.0.0 causes pylint to report "abstract-method" issues
# For both, see https://github.com/pytest-dev/pytest/issues/7591
pytest>=4.3.1,<5.0.0; python_version == '2.7'
# Max pytest version < 8.0 because of issue with Deprecated warnings in
# pytest 8.0.x.
pytest>=4.3.1,!=6.0,<8.0; python_version == '3.6'
pytest>=4.4.0,!=6.0,<8.0; python_version >= '3.7' and python_version <= '3.9'
pytest>=6.2.5,<8.0; python_version >= '3.10'
testfixtures>=6.9.0; python_version == '2.7'
testfixtures>=6.9.0; python_version >= '3.6'
# pylint>=2.15 requires colorama>=0.4.5
colorama>=0.3.9,<0.4.0; python_version == '2.7'
colorama>=0.4.5; python_version >= '3.6'

# Easy-server packages
easy-vault>=0.7.0
easy-server>=0.8.0
pytest-easy-server>=0.8.0
cryptography>=3.3; python_version == '2.7'
cryptography>=3.4.7; python_version == '3.6'
cryptography>=42.0.5; python_version >= '3.7'
keyring>=18.0.0

jsonschema>=2.6.0,!=4.0.0; python_version <= '3.6'
jsonschema>=4.17.3; python_version == '3.7'
# jsonschema v 4.18.0 required by jupyter-events 0.9.1
jsonschema>=4.18.0; python_version >= '3.8'

requests-mock>=1.6.0
requests-toolbelt>=0.8.0
yagot>=0.5.0

#  flake8 fails with python 3.7. in importlib-metadata. See issue #2931
#  Issue with importlib-metadata 5.0.0
importlib-metadata>=0.22,<5.0.0; python_version <= '3.6'
importlib-metadata>=0.22,<5.0.0; python_version == '3.7'
importlib-metadata>=4.8.3; python_version >= '3.8'

# pytz before 2019.1 fails on Python 3.10 because it uses collections.Mapping
pytz>=2016.10; python_version <= '3.9'
pytz>=2019.1; python_version >= '3.10'

# Unit test (indirect dependencies):

# Pluggy 0.12.0 has a bug causing pytest plugins to fail loading on py38
pluggy>=0.7.1; python_version == '2.7'
pluggy>=0.12.0; python_version == '3.6'
pluggy>=0.13.0; python_version >= '3.7'

# Decorator version 5.0 no longer supports python < 3.5
decorator>=4.0.11,<5.0.0; python_version == '2.7'
decorator>=4.0.11; python_version >= '3.6'

backports.statistics>=0.1.0; python_version == '2.7'
# FormEncode is used for xml comparisons in unit test
# FormEncode 1.3.1 has no python_requires and fails install on Python 3.10 due to incorrect version checking
# FormEncode 1.3.1 uses the use_2to3 directive, so attempting to install FormEncode<2 on setuptools>=58 breaks
FormEncode>=1.3.1; python_version == '2.7'
FormEncode>=2.0.0; python_version >= '3.6'

# Lxml
# lxml 4.4.3 added Python 3.8 support and exposed it correctly
# lxml 4.6.1 addressed safety issue 38892
# lxml 4.6.2 addressed safety issue 39194
# lxml 4.6.3 addressed safety issue 40072
# lxml 4.9.2 addresses changes in Python 3.11
# lxml 4.9.3 python 3.12
lxml>=4.6.2; python_version == '2.7'
lxml>=4.6.2; python_version >= '3.6' and python_version <= '3.9'
lxml>=4.6.4; python_version == '3.10'
lxml>=4.9.2; python_version == '3.11'
lxml>=4.9.3; python_version == '3.12'

virtualenv>=16.1.0,!=20.0.19,!=20.0.32; python_version <= '3.7'
virtualenv>=20.15.0; python_version >= '3.8' and python_version <= '3.11'  # requires six<2,>=1.12.0
virtualenv>=20.23.0; python_version >= '3.12'
