Files
edx-platform/requirements/edx/testing.in
Jeremy Bowman 63574e12b8 Remove pytest version constraint (#22626)
Fix the issue that was preventing us from upgrading pytest.  pytest does some manipulation of test packages that prevents `pkg_resources` from loading resources from them, but used to contain a workaround for the problem.  That workaround was [removed](https://github.com/pytest-dev/pytest/issues/5392) in 4.6.0 as a performance enhancement when pytest switched from `pkg_resources` to `importlib-metadata` for its own entrypoint handling.  This tripped up one of our test modules which defined classes that loaded templates from inside a test package.  Moving these resources to the parent package fixes the problem.

More and more, `pkg_resources` is being abandoned in favor of `importlib-metadata` and `importlib_resources` as they have a simpler design with much better performance.  However, `importlib_resources` doesn't support loading files from any directory which isn't itself a Python package (and doesn't allow direct use of paths including directories within the package).  Jinja2 chose a [different approach](https://github.com/pallets/jinja/pull/1082) that we may want to emulate in our resource handling.

Also fixed usage of a removed `pytest.raises()` parameter and a bug in our configuration of the `common/lib` tests that became a problem after the upgrade.
2019-12-30 09:10:57 -05:00

51 lines
3.3 KiB
Plaintext

# This requirements file is only for python packages that need to be installed
# for the edx-platform in testing environments. This includes:
# * Jenkins
# * devstack
# Please do not use this file for packages that are needed in production
#
# DON'T JUST ADD NEW DEPENDENCIES!!!
#
# If you open a pull request that adds a new dependency, you should:
# * verify that the dependency has a license compatible with AGPLv3
# * confirm that it has no system requirements beyond what we already install
# * run "make upgrade" to update the detailed requirements files
# * add an appropriate pattern to scripts/dependencies/testing.py
-c ../constraints.txt
-r base.txt # Core edx-platform production dependencies
-r coverage.txt # Utilities for calculating test coverage
beautifulsoup4 # Library for extracting data from HTML and XML files
bok-choy # Framework for browser automation tests, based on selenium
code-annotations # Perform code annotation checking, such as for PII annotations
cssselect # Used to extract HTML fragments via CSS selectors in 2 test cases and pyquery
ddt # Run a test case multiple times with different input; used in many, many of our tests
edx-i18n-tools>=0.4.6 # Commands for developers and translators to extract, compile and validate translations
edx-lint==1.3.0 # pylint extensions for Open edX repositories
factory_boy==2.8.1 # Library for creating test fixtures, used in many tests
freezegun # Allows tests to mock the output of assorted datetime module functions
httpretty # Library for mocking HTTP requests, used in many tests
isort # For checking and fixing the order of imports
moto==1.3.1 # Lets tests mock AWS access via the boto library
pycodestyle # Checker for compliance with the Python style guide (PEP 8)
polib # Library for manipulating gettext translation files, used to test paver i18n commands
pyquery # jQuery-like API for retrieving fragments of HTML and XML files in tests
pytest # Testing framework
pytest-attrib # Select tests based on attributes
git+https://github.com/nedbat/pytest-cov.git@nedbat/cov5-combine#egg=pytest-cov==0.0
git+https://github.com/nedbat/coverage_pytest_plugin.git@29de030251471e200ff255eb9e549218cd60e872#egg=coverage_pytest_plugin==0.0
pytest-django # Django support for pytest
pytest-randomly # pytest plugin to randomly order tests
pytest-xdist # Parallel execution of tests on multiple CPU cores or hosts
radon # Calculates cyclomatic complexity of Python code (code quality utility)
selenium # Browser automation library, used for acceptance tests
singledispatch # Backport of functools.singledispatch from Python 3.4+, used in tests of XBlock rendering
testfixtures # Provides a LogCapture utility used by several tests
tox # virtualenv management for tests
tox-battery # Makes tox aware of requirements file changes
transifex-client # Command-line interface for the Transifex localization service
unidiff # Required by coverage_pytest_plugin