# Additional pip requirements file for pywbem testing.
#
# The order of packages is significant, because pip processes them in the order
# of appearance.
#
# Make sure that the minimum versions required in this file are consistent with
# the minimum versions specified in minimum-constraints.txt.


-r requirements.txt

# Direct dependencies (just for "setup.py test")


# Unit test (imports into testcases):
packaging>=19.0; python_version <= '3.6'
packaging>=21.0; python_version >= '3.7'
funcsigs>=1.0.2; python_version < '3.3'
# 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'
pytest>=4.3.1,!=6.0; python_version >= '3.5' and python_version <= '3.6'
pytest>=4.4.0,!=6.0; python_version >= '3.7' and python_version <= '3.9'
pytest>=6.2.5; python_version >= '3.10'
testfixtures>=6.9.0; python_version == '2.7'
testfixtures>=6.3.0,<6.4.0; python_version == '3.5'
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.5'

# Easy-server packages
easy-vault>=0.7.0
easy-server>=0.8.0
pytest-easy-server>=0.8.0
jsonschema>=2.6.0,!=4.0.0

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.7'
importlib-metadata>=0.22,<5.0.0; python_version == '3.7'
importlib-metadata>=1.1.0; 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' and 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 < '3.5'
decorator>=4.0.11; python_version >= '3.5'

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; python_version <= '3.9'
FormEncode>=2.0.0; python_version >= '3.10'

# 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 and 3.12
lxml>=4.6.2; python_version == '2.7'
lxml>=4.6.2; python_version >= '3.5' and python_version <= '3.9'
lxml>=4.6.4; python_version == '3.10'
lxml>=4.9.2; python_version >= '3.11'

# Virtualenv
# virtualenv 20.0.35 is required by build
virtualenv>=20.0.35
