Allowed a port range for the liveserver by default.

This is required for running tests in parallel.
This commit is contained in:
Aymeric Augustin 2015-02-05 23:02:10 +01:00
parent e39dd61808
commit 326bc0955b
6 changed files with 23 additions and 9 deletions

View File

@ -47,7 +47,7 @@ class Command(BaseCommand):
action='store', dest='liveserver', default=None,
help='Overrides the default address where the live server (used '
'with LiveServerTestCase) is expected to run from. The '
'default value is localhost:8081.'),
'default value is localhost:8081-8179.'),
test_runner_class = get_runner(settings, self.test_runner)
if hasattr(test_runner_class, 'option_list'):

View File

@ -1318,7 +1318,7 @@ class LiveServerTestCase(TransactionTestCase):
# Launch the live server's thread
specified_address = os.environ.get(
'DJANGO_LIVE_TEST_SERVER_ADDRESS', 'localhost:8081')
'DJANGO_LIVE_TEST_SERVER_ADDRESS', 'localhost:8081-8179')
# The specified ports may be of the form '8000-8010,8080,9200-9300'
# i.e. a comma-separated list of ports or ranges of ports, so we break

View File

@ -1227,7 +1227,11 @@ provided by the :setting:`TEST_RUNNER` setting.
The ``--liveserver`` option can be used to override the default address where
the live server (used with :class:`~django.test.LiveServerTestCase`) is
expected to run from. The default value is ``localhost:8081``.
expected to run from. The default value is ``localhost:8081-8179``.
.. versionchanged:: 1.9
In earlier versions, the default value was ``localhost:8081``.
.. django-admin-option:: --keepdb

View File

@ -1055,6 +1055,9 @@ Miscellaneous
changed. They used to be ``(old_names, mirrors)`` tuples. Now they're just
the first item, ``old_names``.
* By default :class:`~django.test.LiveServerTestCase` attempts to find an
available port in the 8081-8179 range instead of just trying port 8081.
.. _deprecated-features-1.9:
Features deprecated in 1.9

View File

@ -812,11 +812,18 @@ This allows the use of automated test clients other than the
client, to execute a series of functional tests inside a browser and simulate a
real user's actions.
By default the live server's address is ``'localhost:8081'`` and the full URL
can be accessed during the tests with ``self.live_server_url``. If you'd like
to change the default address (in the case, for example, where the 8081 port is
already taken) then you may pass a different one to the :djadmin:`test` command
via the :djadminopt:`--liveserver` option, for example:
By default the live server listens on ``localhost`` and picks the first
available port in the ``8081-8179`` range. Its full URL can be accessed with
``self.live_server_url`` during the tests.
.. versionchanged:: 1.9
In earlier versions, the live server's default address was always
``'localhost:8081'``.
If you'd like to select another address then you may pass a different one to
the :djadmin:`test` command via the :djadminopt:`--liveserver` option, for
example:
.. code-block:: console

View File

@ -388,7 +388,7 @@ if __name__ == "__main__":
parser.add_argument('--liveserver',
help='Overrides the default address where the live server (used with '
'LiveServerTestCase) is expected to run from. The default value '
'is localhost:8081.')
'is localhost:8081-8179.')
parser.add_argument(
'--selenium', action='store_true', dest='selenium', default=False,
help='Run the Selenium tests as well (if Selenium is installed).')