diff --git a/docs/internals/contributing/writing-code/unit-tests.txt b/docs/internals/contributing/writing-code/unit-tests.txt index 0737b84888..f47ac5e788 100644 --- a/docs/internals/contributing/writing-code/unit-tests.txt +++ b/docs/internals/contributing/writing-code/unit-tests.txt @@ -136,23 +136,40 @@ Running all the tests If you want to run the full suite of tests, you'll need to install a number of dependencies: +* Pillow_ * PyYAML_ +* pytz_ * setuptools_ * memcached_, plus a :ref:`supported Python binding ` * gettext_ (:ref:`gettext_on_windows`) -* selenium_ (if also using Python >= 2.6) +* selenium_ + +You can find these dependencies in `pip requirements files`_ inside the +``tests/requirements`` directory of the Django source tree and install them +like so:: + + pip install -r tests/requirements/py2.txt # Python 3: py3.txt + +You can also install the database adapter(s) of your choice using +``oracle.txt``, ``mysql.txt``, or ``postgres.txt``. If you want to test the memcached cache backend, you'll also need to define a :setting:`CACHES` setting that points at your memcached instance. +To run the GeoDjango tests, you will need to :doc:`setup a spatial database +and install the Geospatial libraries`. + Each of these dependencies is optional. If you're missing any of them, the associated tests will be skipped. +.. _Pillow: https://pypi.python.org/pypi/Pillow/ .. _PyYAML: http://pyyaml.org/wiki/PyYAML +.. _pytz: https://pypi.python.org/pypi/pytz/ .. _setuptools: http://pypi.python.org/pypi/setuptools/ .. _memcached: http://memcached.org/ .. _gettext: http://www.gnu.org/software/gettext/manual/gettext.html .. _selenium: http://pypi.python.org/pypi/selenium +.. _pip requirements files: http://www.pip-installer.org/en/latest/requirements.html Code coverage ~~~~~~~~~~~~~ diff --git a/tests/requirements/base.txt b/tests/requirements/base.txt new file mode 100644 index 0000000000..89bd8230b2 --- /dev/null +++ b/tests/requirements/base.txt @@ -0,0 +1,6 @@ +bcrypt +docutils +Pillow +PyYAML +pytz +selenium diff --git a/tests/requirements/mysql.txt b/tests/requirements/mysql.txt new file mode 100644 index 0000000000..c7a2347407 --- /dev/null +++ b/tests/requirements/mysql.txt @@ -0,0 +1 @@ +MySQL-python diff --git a/tests/requirements/oracle.txt b/tests/requirements/oracle.txt new file mode 100644 index 0000000000..ae5b7349cd --- /dev/null +++ b/tests/requirements/oracle.txt @@ -0,0 +1 @@ +cx_oracle diff --git a/tests/requirements/postgres.txt b/tests/requirements/postgres.txt new file mode 100644 index 0000000000..658130bb2c --- /dev/null +++ b/tests/requirements/postgres.txt @@ -0,0 +1 @@ +psycopg2 diff --git a/tests/requirements/py2.txt b/tests/requirements/py2.txt new file mode 100644 index 0000000000..a9f6804039 --- /dev/null +++ b/tests/requirements/py2.txt @@ -0,0 +1,2 @@ +-r base.txt +python-memcached diff --git a/tests/requirements/py3.txt b/tests/requirements/py3.txt new file mode 100644 index 0000000000..ced3eed101 --- /dev/null +++ b/tests/requirements/py3.txt @@ -0,0 +1,2 @@ +-r base.txt +python3-memcached diff --git a/tests/runtests.py b/tests/runtests.py index 349373aa73..8d5b375fb3 100755 --- a/tests/runtests.py +++ b/tests/runtests.py @@ -23,6 +23,7 @@ os.environ['DJANGO_TEST_TEMP_DIR'] = TEMP_DIR SUBDIRS_TO_SKIP = [ 'data', + 'requirements', 'templates', 'test_discovery_sample', 'test_discovery_sample2',