aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst')
-rw-r--r--tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst192
1 files changed, 0 insertions, 192 deletions
diff --git a/tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst b/tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst
deleted file mode 100644
index 5faf4c6c8ad..00000000000
--- a/tests/wpt/web-platform-tests/tools/pytest/doc/en/example/pythoncollection.rst
+++ /dev/null
@@ -1,192 +0,0 @@
-Changing standard (Python) test discovery
-===============================================
-
-Ignore paths during test collection
------------------------------------
-
-You can easily ignore certain test directories and modules during collection
-by passing the ``--ignore=path`` option on the cli. ``pytest`` allows multiple
-``--ignore`` options. Example::
-
- tests/
- ├── example
- │   ├── test_example_01.py
- │   ├── test_example_02.py
- │   └── test_example_03.py
- ├── foobar
- │   ├── test_foobar_01.py
- │   ├── test_foobar_02.py
- │   └── test_foobar_03.py
- └── hello
- └── world
- ├── test_world_01.py
- ├── test_world_02.py
- └── test_world_03.py
-
-Now if you invoke ``pytest`` with ``--ignore=tests/foobar/test_foobar_03.py --ignore=tests/hello/``,
-you will see that ``pytest`` only collects test-modules, which do not match the patterns specified::
-
- ========= test session starts ==========
- platform darwin -- Python 2.7.10, pytest-2.8.2, py-1.4.30, pluggy-0.3.1
- rootdir: $REGENDOC_TMPDIR, inifile:
- collected 5 items
-
- tests/example/test_example_01.py .
- tests/example/test_example_02.py .
- tests/example/test_example_03.py .
- tests/foobar/test_foobar_01.py .
- tests/foobar/test_foobar_02.py .
-
- ======= 5 passed in 0.02 seconds =======
-
-
-Changing directory recursion
------------------------------------------------------
-
-You can set the :confval:`norecursedirs` option in an ini-file, for example your ``setup.cfg`` in the project root directory::
-
- # content of setup.cfg
- [pytest]
- norecursedirs = .svn _build tmp*
-
-This would tell ``pytest`` to not recurse into typical subversion or sphinx-build directories or into any ``tmp`` prefixed directory.
-
-.. _`change naming conventions`:
-
-Changing naming conventions
------------------------------------------------------
-
-You can configure different naming conventions by setting
-the :confval:`python_files`, :confval:`python_classes` and
-:confval:`python_functions` configuration options. Example::
-
- # content of setup.cfg
- # can also be defined in in tox.ini or pytest.ini file
- [pytest]
- python_files=check_*.py
- python_classes=Check
- python_functions=*_check
-
-This would make ``pytest`` look for tests in files that match the ``check_*
-.py`` glob-pattern, ``Check`` prefixes in classes, and functions and methods
-that match ``*_check``. For example, if we have::
-
- # content of check_myapp.py
- class CheckMyApp:
- def simple_check(self):
- pass
- def complex_check(self):
- pass
-
-then the test collection looks like this::
-
- $ py.test --collect-only
- ======= test session starts ========
- platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
- rootdir: $REGENDOC_TMPDIR, inifile: setup.cfg
- collected 2 items
- <Module 'check_myapp.py'>
- <Class 'CheckMyApp'>
- <Instance '()'>
- <Function 'simple_check'>
- <Function 'complex_check'>
-
- ======= no tests ran in 0.12 seconds ========
-
-.. note::
-
- the ``python_functions`` and ``python_classes`` options has no effect
- for ``unittest.TestCase`` test discovery because pytest delegates
- detection of test case methods to unittest code.
-
-Interpreting cmdline arguments as Python packages
------------------------------------------------------
-
-You can use the ``--pyargs`` option to make ``pytest`` try
-interpreting arguments as python package names, deriving
-their file system path and then running the test. For
-example if you have unittest2 installed you can type::
-
- py.test --pyargs unittest2.test.test_skipping -q
-
-which would run the respective test module. Like with
-other options, through an ini-file and the :confval:`addopts` option you
-can make this change more permanently::
-
- # content of pytest.ini
- [pytest]
- addopts = --pyargs
-
-Now a simple invocation of ``py.test NAME`` will check
-if NAME exists as an importable package/module and otherwise
-treat it as a filesystem path.
-
-Finding out what is collected
------------------------------------------------
-
-You can always peek at the collection tree without running tests like this::
-
- . $ py.test --collect-only pythoncollection.py
- ======= test session starts ========
- platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
- rootdir: $REGENDOC_TMPDIR, inifile: pytest.ini
- collected 3 items
- <Module 'CWD/pythoncollection.py'>
- <Function 'test_function'>
- <Class 'TestClass'>
- <Instance '()'>
- <Function 'test_method'>
- <Function 'test_anothermethod'>
-
- ======= no tests ran in 0.12 seconds ========
-
-customizing test collection to find all .py files
----------------------------------------------------------
-
-.. regendoc:wipe
-
-You can easily instruct ``pytest`` to discover tests from every python file::
-
-
- # content of pytest.ini
- [pytest]
- python_files = *.py
-
-However, many projects will have a ``setup.py`` which they don't want to be imported. Moreover, there may files only importable by a specific python version.
-For such cases you can dynamically define files to be ignored by listing
-them in a ``conftest.py`` file::
-
- # content of conftest.py
- import sys
-
- collect_ignore = ["setup.py"]
- if sys.version_info[0] > 2:
- collect_ignore.append("pkg/module_py2.py")
-
-And then if you have a module file like this::
-
- # content of pkg/module_py2.py
- def test_only_on_python2():
- try:
- assert 0
- except Exception, e:
- pass
-
-and a setup.py dummy file like this::
-
- # content of setup.py
- 0/0 # will raise exception if imported
-
-then a pytest run on python2 will find the one test when run with a python2
-interpreters and will leave out the setup.py file::
-
- $ py.test --collect-only
- ======= test session starts ========
- platform linux -- Python 3.4.0, pytest-2.9.1, py-1.4.31, pluggy-0.3.1
- rootdir: $REGENDOC_TMPDIR, inifile: pytest.ini
- collected 0 items
-
- ======= no tests ran in 0.12 seconds ========
-
-If you run with a Python3 interpreter the moduled added through the conftest.py file will not be considered for test collection.
-