[Python-modules-commits] [django-nose] 05/14: Import django-nose_1.4.4.orig.tar.gz
Thomas Goirand
zigo at moszumanska.debian.org
Tue Jul 19 12:24:45 UTC 2016
This is an automated email from the git hooks/post-receive script.
zigo pushed a commit to branch master
in repository django-nose.
commit 99d0c63b56756d6b0f1d83e1d827158fa6493b02
Author: Thomas Goirand <thomas at goirand.fr>
Date: Tue Jul 19 11:52:40 2016 +0000
Import django-nose_1.4.4.orig.tar.gz
---
.gitignore | 25 --
.travis.yml | 51 ----
PKG-INFO | 155 ++++++++++++
README.rst | 7 +-
changelog.rst | 6 +
django_nose.egg-info/PKG-INFO | 155 ++++++++++++
django_nose.egg-info/SOURCES.txt | 55 +++++
django_nose.egg-info/dependency_links.txt | 1 +
django_nose.egg-info/not-zip-safe | 1 +
django_nose.egg-info/requires.txt | 1 +
django_nose.egg-info/top_level.txt | 2 +
django_nose/__init__.py | 6 +-
django_nose/management/commands/test.py | 18 +-
django_nose/runner.py | 398 +++++++++++-------------------
docs/usage.rst | 10 -
runtests.sh | 16 +-
setup.cfg | 17 +-
setup.py | 3 +-
testapp/settings.py | 4 -
testapp/south_migrations/0001_initial.py | 54 ----
testapp/south_migrations/__init__.py | 1 -
tox.ini | 42 ----
22 files changed, 549 insertions(+), 479 deletions(-)
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 5c9b3f8..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,25 +0,0 @@
-# Python binaries
-*.py[cod]
-
-# Editor backups, OS files
-*.swp
-*~
-.DS_Store
-
-# Distutils cruft
-*.egg-info
-South-*.egg/
-build/
-dist/
-
-# Unit test / coverage reports
-.tox/
-.coverage
-.coverage.*
-.noseids
-nosetests.xml
-htmlcov/
-testapp.sqlite3
-
-# Sphinx documentation build
-docs/_build/*
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 68c5f29..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-sudo: false
-language: python
-env:
- global:
- - COVERAGE=1 RUNTEST_ARGS="-v --noinput"
- matrix:
- # Quality checks
- - TOXENV=flake8
- - TOXENV=docs
- # Supported Python / Django versions w/ SQLite
- - TOXENV=py27-django-19
- - TOXENV=py34-django-19
- - TOXENV=py27-django-18
- - TOXENV=py34-django-18
- - TOXENV=py27-django-17
- - TOXENV=py34-django-17
- - TOXENV=py26-django-14
- - TOXENV=py27-django-14
- # Test with PostgreSQL
- - TOXENV=py27-django-19-postgres DATABASE_URL="postgres://postgres@localhost:5432/py27-django-19-postgres"
- - TOXENV=py34-django-19-postgres DATABASE_URL="postgres://postgres@localhost:5432/py34-django-19-postgres"
- - TOXENV=py27-django-18-postgres DATABASE_URL="postgres://postgres@localhost:5432/py27-django-18-postgres"
- - TOXENV=py27-django-17-postgres DATABASE_URL="postgres://postgres@localhost:5432/py27-django-17-postgres"
- - TOXENV=py27-django-14-postgres DATABASE_URL="postgres://postgres@localhost:5432/py27-django-14-postgres"
- # Test with MySQL
- - TOXENV=py27-django-19-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-19-mysql"
- - TOXENV=py34-django-19-mysql DATABASE_URL="mysql://travis@localhost:3306/py34-django-19-mysql"
- - TOXENV=py27-django-18-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-18-mysql"
- - TOXENV=py27-django-17-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-17-mysql"
- - TOXENV=py27-django-14-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-14-mysql"
- # Django master is allowed to fail
- - TOXENV=py27-django-master
- - TOXENV=py34-django-master
- - TOXENV=py27-django-master-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-master-mysql"
- - TOXENV=py34-django-master-postgres DATABASE_URL="postgres://postgres@localhost:5432/py34-django-master-postgres"
-matrix:
- allow_failures:
- # Master is allowed to fail
- - env: TOXENV=py27-django-master
- - env: TOXENV=py34-django-master
- - env: TOXENV=py27-django-master-mysql DATABASE_URL="mysql://travis@localhost:3306/py27-django-master-mysql"
- - env: TOXENV=py34-django-master-postgres DATABASE_URL="postgres://postgres@localhost:5432/py34-django-master-postgres"
-
-install:
- - pip install tox coveralls
-before_script:
- - coverage erase
- - bash -c "if [[ \"$DATABASE_URL\" == postgres* ]]; then psql -c 'create database \"$TOXENV\";' -U postgres; fi"
- - bash -c "if [[ \"$DATABASE_URL\" == mysql* ]]; then mysql -e 'create database IF NOT EXISTS \`$TOXENV\`;'; fi"
-script: tox
-after_success: coveralls
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..d926585
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,155 @@
+Metadata-Version: 1.1
+Name: django-nose
+Version: 1.4.4
+Summary: Makes your Django tests simple and snappy
+Home-page: http://github.com/django-nose/django-nose
+Author: Erik Rose
+Author-email: erikrose at grinchcentral.com
+License: BSD
+Description:
+ ===========
+ django-nose
+ ===========
+
+
+ **django-nose** provides all the goodness of `nose`_ in your Django tests, like:
+
+ * Testing just your apps by default, not all the standard ones that happen to
+ be in ``INSTALLED_APPS``
+ * Running the tests in one or more specific modules (or apps, or classes, or
+ folders, or just running a specific test)
+ * Obviating the need to import all your tests into ``tests/__init__.py``.
+ This not only saves busy-work but also eliminates the possibility of
+ accidentally shadowing test classes.
+ * Taking advantage of all the useful `nose plugins`_
+
+ .. _nose: https://nose.readthedocs.org/en/latest/
+ .. _nose plugins: http://nose-plugins.jottit.com/
+
+ It also provides:
+
+ * Fixture bundling, an optional feature which speeds up your fixture-based
+ tests by a factor of 4
+ * Reuse of previously created test DBs, cutting 10 seconds off startup time
+ * Hygienic TransactionTestCases, which can save you a DB flush per test
+ * Support for various databases. Tested with MySQL, PostgreSQL, and SQLite.
+ Others should work as well.
+
+ django-nose requires nose 1.2.1 or later, and the `latest release`_ is
+ recommended. It follows the `Django's support policy`_, supporting:
+
+ * Django 1.8 (LTS) with Python 2.7, 3.4, or 3.5
+ * Django 1.9 with Python 2.7, 3.4, or 3.5
+ * Django 1.10 with Python 2.7, 3.4, or 3.5
+
+ .. _latest release: https://pypi.python.org/pypi/nose
+ .. _Django's support policy: https://docs.djangoproject.com/en/1.8/internals/release-process/#supported-versions
+
+ Development
+ -----------
+ :Code: https://github.com/django-nose/django-nose
+ :Issues: https://github.com/django-nose/django-nose/issues?state=open
+ :Docs: https://django-nose.readthedocs.org
+
+
+ Changelog
+ ---------
+
+ 1.4.4 (2016-06-27)
+ ~~~~~~~~~~~~~~~~~~
+ * Add Django 1.10 support
+ * Drop Django 1.4, 1.7, and Python 2.6 support
+ * Drop South support
+
+ 1.4.3 (2015-12-28)
+ ~~~~~~~~~~~~~~~~~~
+ * Add Django 1.9 support
+ * Support long options without equals signs, such as "--attr selected"
+ * Support nose plugins using callback options
+ * Support nose options without default values (jsatt)
+ * Remove Django from install dependencies, to avoid accidental upgrades
+ (jsocol, willkg)
+ * Setting REUSE_DB to an empty value now disables REUSE_DB, instead of
+ enabling it (wdoekes)
+
+ 1.4.2 (2015-10-07)
+ ~~~~~~~~~~~~~~~~~~
+ * Warn against using REUSE_DB=1 and FastFixtureTestCase in docs
+ * REUSE_DB=1 uses new transaction management in Django 1.7, 1.8 (scottsexton)
+ * Try to avoid accidentally using production database with REUSE_DB=1 (alexjg, eroninjapan)
+ * Supported Django versions limited to current supported Django version 1.4,
+ 1.7, and 1.8, as well as relevant Python versions.
+
+ 1.4.1 (2015-06-29)
+ ~~~~~~~~~~~~~~~~~~
+ * Fix version number (ezarowny)
+ * Fix choice options, unbreaking nose-cover (aamirtharaj-rpx, jwhitlock)
+ * Support 1.8 app loading system (dgladkov)
+ * Support non-ASCII file names (singingwolfboy)
+ * Better PEP8'd assertion names (roganov)
+
+ 1.4 (2015-04-23)
+ ~~~~~~~~~~~~~~~~
+ * Django 1.8 support (timc3, adepue, jwhitlock)
+ * Support --testrunner option (st4lk)
+ * Fix REUSE_DB second run in py3k (edrmp)
+
+ 1.3 (2014-12-05)
+ ~~~~~~~~~~~~~~~~
+ * Django 1.6 and 1.7 support (conrado, co3k, Nepherhotep, mbertheau)
+ * Python 3.3 and 3.4 testing and support (frewsxcv, jsocol)
+
+ 1.2 (2013-07-23)
+ ~~~~~~~~~~~~~~~~
+ * Python 3 support (melinath and jonashaag)
+ * Django 1.5 compat (fabiosantoscode)
+
+ 1.1 (2012-05-19)
+ ~~~~~~~~~~~~~~~~
+ * Django TransactionTestCases don't clean up after themselves; they leave
+ junk in the DB and clean it up only on ``_pre_setup``. Thus, Django makes
+ sure these tests run last. Now django-nose does, too. This means one fewer
+ source of failures on existing projects. (Erik Rose)
+ * Add support for hygienic TransactionTestCases. (Erik Rose)
+ * Support models that are used only for tests. Just put them in any file
+ imported in the course of loading tests. No more crazy hacks necessary.
+ (Erik Rose)
+ * Make the fixture bundler more conservative, fixing some conceivable
+ situations in which fixtures would not appear as intended if a
+ TransactionTestCase found its way into the middle of a bundle. (Erik Rose)
+ * Fix an error that would surface when using SQLAlchemy with connection
+ pooling. (Roger Hu)
+ * Gracefully ignore the new ``--liveserver`` option introduced in Django 1.4;
+ don't let it through to nose. (Adam DePue)
+
+ 1.0 (2012-03-12)
+ ~~~~~~~~~~~~~~~~
+ * New fixture-bundling plugin for avoiding needless fixture setup (Erik Rose)
+ * Moved FastFixtureTestCase in from test-utils, so now all the
+ fixture-bundling stuff is in one library. (Erik Rose)
+ * Added the REUSE_DB setting for faster startup and shutdown. (Erik Rose)
+ * Fixed a crash when printing options with certain verbosities. (Daniel Abel)
+ * Broke hard dependency on MySQL. Support PostgreSQL. (Roger Hu)
+ * Support SQLite, both memory- and disk-based. (Roger Hu and Erik Rose)
+ * Nail down versions of the package requirements. (Daniel Mizyrycki)
+
+
+
+ _(Older changes can be found in the full documentation)._
+
+Keywords: d,j,a,n,g,o, ,n,o,s,e, ,d,j,a,n,g,o,-,n,o,s,e
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Web Environment
+Classifier: Framework :: Django
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Topic :: Software Development :: Testing
diff --git a/README.rst b/README.rst
index 3429de8..047ab35 100644
--- a/README.rst
+++ b/README.rst
@@ -46,10 +46,9 @@ It also provides:
django-nose requires nose 1.2.1 or later, and the `latest release`_ is
recommended. It follows the `Django's support policy`_, supporting:
- * Django 1.4 (LTS) with Python 2.6 and 2.7
- * Django 1.7 with Python 2.7 or 3.4
- * Django 1.8 (LTS) with Python 2.7 or 3.4
- * Django 1.9 with Python 2.7 or 3.4
+ * Django 1.8 (LTS) with Python 2.7, 3.4, or 3.5
+ * Django 1.9 with Python 2.7, 3.4, or 3.5
+ * Django 1.10 with Python 2.7, 3.4, or 3.5
.. _latest release: https://pypi.python.org/pypi/nose
.. _Django's support policy: https://docs.djangoproject.com/en/1.8/internals/release-process/#supported-versions
diff --git a/changelog.rst b/changelog.rst
index 830a14f..1512d4e 100644
--- a/changelog.rst
+++ b/changelog.rst
@@ -1,6 +1,12 @@
Changelog
---------
+1.4.4 (2016-06-27)
+~~~~~~~~~~~~~~~~~~
+* Add Django 1.10 support
+* Drop Django 1.4, 1.7, and Python 2.6 support
+* Drop South support
+
1.4.3 (2015-12-28)
~~~~~~~~~~~~~~~~~~
* Add Django 1.9 support
diff --git a/django_nose.egg-info/PKG-INFO b/django_nose.egg-info/PKG-INFO
new file mode 100644
index 0000000..d926585
--- /dev/null
+++ b/django_nose.egg-info/PKG-INFO
@@ -0,0 +1,155 @@
+Metadata-Version: 1.1
+Name: django-nose
+Version: 1.4.4
+Summary: Makes your Django tests simple and snappy
+Home-page: http://github.com/django-nose/django-nose
+Author: Erik Rose
+Author-email: erikrose at grinchcentral.com
+License: BSD
+Description:
+ ===========
+ django-nose
+ ===========
+
+
+ **django-nose** provides all the goodness of `nose`_ in your Django tests, like:
+
+ * Testing just your apps by default, not all the standard ones that happen to
+ be in ``INSTALLED_APPS``
+ * Running the tests in one or more specific modules (or apps, or classes, or
+ folders, or just running a specific test)
+ * Obviating the need to import all your tests into ``tests/__init__.py``.
+ This not only saves busy-work but also eliminates the possibility of
+ accidentally shadowing test classes.
+ * Taking advantage of all the useful `nose plugins`_
+
+ .. _nose: https://nose.readthedocs.org/en/latest/
+ .. _nose plugins: http://nose-plugins.jottit.com/
+
+ It also provides:
+
+ * Fixture bundling, an optional feature which speeds up your fixture-based
+ tests by a factor of 4
+ * Reuse of previously created test DBs, cutting 10 seconds off startup time
+ * Hygienic TransactionTestCases, which can save you a DB flush per test
+ * Support for various databases. Tested with MySQL, PostgreSQL, and SQLite.
+ Others should work as well.
+
+ django-nose requires nose 1.2.1 or later, and the `latest release`_ is
+ recommended. It follows the `Django's support policy`_, supporting:
+
+ * Django 1.8 (LTS) with Python 2.7, 3.4, or 3.5
+ * Django 1.9 with Python 2.7, 3.4, or 3.5
+ * Django 1.10 with Python 2.7, 3.4, or 3.5
+
+ .. _latest release: https://pypi.python.org/pypi/nose
+ .. _Django's support policy: https://docs.djangoproject.com/en/1.8/internals/release-process/#supported-versions
+
+ Development
+ -----------
+ :Code: https://github.com/django-nose/django-nose
+ :Issues: https://github.com/django-nose/django-nose/issues?state=open
+ :Docs: https://django-nose.readthedocs.org
+
+
+ Changelog
+ ---------
+
+ 1.4.4 (2016-06-27)
+ ~~~~~~~~~~~~~~~~~~
+ * Add Django 1.10 support
+ * Drop Django 1.4, 1.7, and Python 2.6 support
+ * Drop South support
+
+ 1.4.3 (2015-12-28)
+ ~~~~~~~~~~~~~~~~~~
+ * Add Django 1.9 support
+ * Support long options without equals signs, such as "--attr selected"
+ * Support nose plugins using callback options
+ * Support nose options without default values (jsatt)
+ * Remove Django from install dependencies, to avoid accidental upgrades
+ (jsocol, willkg)
+ * Setting REUSE_DB to an empty value now disables REUSE_DB, instead of
+ enabling it (wdoekes)
+
+ 1.4.2 (2015-10-07)
+ ~~~~~~~~~~~~~~~~~~
+ * Warn against using REUSE_DB=1 and FastFixtureTestCase in docs
+ * REUSE_DB=1 uses new transaction management in Django 1.7, 1.8 (scottsexton)
+ * Try to avoid accidentally using production database with REUSE_DB=1 (alexjg, eroninjapan)
+ * Supported Django versions limited to current supported Django version 1.4,
+ 1.7, and 1.8, as well as relevant Python versions.
+
+ 1.4.1 (2015-06-29)
+ ~~~~~~~~~~~~~~~~~~
+ * Fix version number (ezarowny)
+ * Fix choice options, unbreaking nose-cover (aamirtharaj-rpx, jwhitlock)
+ * Support 1.8 app loading system (dgladkov)
+ * Support non-ASCII file names (singingwolfboy)
+ * Better PEP8'd assertion names (roganov)
+
+ 1.4 (2015-04-23)
+ ~~~~~~~~~~~~~~~~
+ * Django 1.8 support (timc3, adepue, jwhitlock)
+ * Support --testrunner option (st4lk)
+ * Fix REUSE_DB second run in py3k (edrmp)
+
+ 1.3 (2014-12-05)
+ ~~~~~~~~~~~~~~~~
+ * Django 1.6 and 1.7 support (conrado, co3k, Nepherhotep, mbertheau)
+ * Python 3.3 and 3.4 testing and support (frewsxcv, jsocol)
+
+ 1.2 (2013-07-23)
+ ~~~~~~~~~~~~~~~~
+ * Python 3 support (melinath and jonashaag)
+ * Django 1.5 compat (fabiosantoscode)
+
+ 1.1 (2012-05-19)
+ ~~~~~~~~~~~~~~~~
+ * Django TransactionTestCases don't clean up after themselves; they leave
+ junk in the DB and clean it up only on ``_pre_setup``. Thus, Django makes
+ sure these tests run last. Now django-nose does, too. This means one fewer
+ source of failures on existing projects. (Erik Rose)
+ * Add support for hygienic TransactionTestCases. (Erik Rose)
+ * Support models that are used only for tests. Just put them in any file
+ imported in the course of loading tests. No more crazy hacks necessary.
+ (Erik Rose)
+ * Make the fixture bundler more conservative, fixing some conceivable
+ situations in which fixtures would not appear as intended if a
+ TransactionTestCase found its way into the middle of a bundle. (Erik Rose)
+ * Fix an error that would surface when using SQLAlchemy with connection
+ pooling. (Roger Hu)
+ * Gracefully ignore the new ``--liveserver`` option introduced in Django 1.4;
+ don't let it through to nose. (Adam DePue)
+
+ 1.0 (2012-03-12)
+ ~~~~~~~~~~~~~~~~
+ * New fixture-bundling plugin for avoiding needless fixture setup (Erik Rose)
+ * Moved FastFixtureTestCase in from test-utils, so now all the
+ fixture-bundling stuff is in one library. (Erik Rose)
+ * Added the REUSE_DB setting for faster startup and shutdown. (Erik Rose)
+ * Fixed a crash when printing options with certain verbosities. (Daniel Abel)
+ * Broke hard dependency on MySQL. Support PostgreSQL. (Roger Hu)
+ * Support SQLite, both memory- and disk-based. (Roger Hu and Erik Rose)
+ * Nail down versions of the package requirements. (Daniel Mizyrycki)
+
+
+
+ _(Older changes can be found in the full documentation)._
+
+Keywords: d,j,a,n,g,o, ,n,o,s,e, ,d,j,a,n,g,o,-,n,o,s,e
+Platform: UNKNOWN
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Environment :: Web Environment
+Classifier: Framework :: Django
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: BSD License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Topic :: Software Development :: Testing
diff --git a/django_nose.egg-info/SOURCES.txt b/django_nose.egg-info/SOURCES.txt
new file mode 100644
index 0000000..836b5ec
--- /dev/null
+++ b/django_nose.egg-info/SOURCES.txt
@@ -0,0 +1,55 @@
+AUTHORS.rst
+CONTRIBUTING.rst
+LICENSE
+MANIFEST.in
+Makefile
+README.rst
+changelog.rst
+contribute.json
+manage.py
+requirements-rtd.txt
+requirements.txt
+runtests.sh
+setup.cfg
+setup.py
+django_nose/__init__.py
+django_nose/fixture_tables.py
+django_nose/plugin.py
+django_nose/runner.py
+django_nose/testcases.py
+django_nose/tools.py
+django_nose/utils.py
+django_nose.egg-info/PKG-INFO
+django_nose.egg-info/SOURCES.txt
+django_nose.egg-info/dependency_links.txt
+django_nose.egg-info/not-zip-safe
+django_nose.egg-info/requires.txt
+django_nose.egg-info/top_level.txt
+django_nose/management/__init__.py
+django_nose/management/commands/__init__.py
+django_nose/management/commands/test.py
+docs/Makefile
+docs/authors.rst
+docs/changelog.rst
+docs/conf.py
+docs/contributing.rst
+docs/index.rst
+docs/installation.rst
+docs/make.bat
+docs/upgrading.rst
+docs/usage.rst
+docs/_static/.keep
+testapp/__init__.py
+testapp/custom_runner.py
+testapp/models.py
+testapp/plugins.py
+testapp/runtests.py
+testapp/settings.py
+testapp/test_for_nose.py
+testapp/test_only_this.py
+testapp/tests.py
+testapp/fixtures/testdata.json
+testapp/migrations/0001_initial.py
+testapp/migrations/__init__.py
+testapp/plugin_t/test_with_plugins.py
+unittests/test_databases.py
\ No newline at end of file
diff --git a/django_nose.egg-info/dependency_links.txt b/django_nose.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/django_nose.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/django_nose.egg-info/not-zip-safe b/django_nose.egg-info/not-zip-safe
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/django_nose.egg-info/not-zip-safe
@@ -0,0 +1 @@
+
diff --git a/django_nose.egg-info/requires.txt b/django_nose.egg-info/requires.txt
new file mode 100644
index 0000000..18980ba
--- /dev/null
+++ b/django_nose.egg-info/requires.txt
@@ -0,0 +1 @@
+nose>=1.2.1
diff --git a/django_nose.egg-info/top_level.txt b/django_nose.egg-info/top_level.txt
new file mode 100644
index 0000000..a9b9ba1
--- /dev/null
+++ b/django_nose.egg-info/top_level.txt
@@ -0,0 +1,2 @@
+django_nose
+testapp
diff --git a/django_nose/__init__.py b/django_nose/__init__.py
index d18f29c..07d9bcb 100644
--- a/django_nose/__init__.py
+++ b/django_nose/__init__.py
@@ -5,10 +5,8 @@ from __future__ import unicode_literals
from django_nose.runner import BasicNoseRunner, NoseTestSuiteRunner
from django_nose.testcases import FastFixtureTestCase
assert BasicNoseRunner
+assert NoseTestSuiteRunner
assert FastFixtureTestCase
-VERSION = (1, 4, 3)
+VERSION = (1, 4, 4)
__version__ = '.'.join(map(str, VERSION))
-
-# Django < 1.2 compatibility.
-run_tests = run_gis_tests = NoseTestSuiteRunner
diff --git a/django_nose/management/commands/test.py b/django_nose/management/commands/test.py
index 1c29160..40390d7 100644
--- a/django_nose/management/commands/test.py
+++ b/django_nose/management/commands/test.py
@@ -7,24 +7,10 @@ This enables browsing all the nose options from the command line.
from __future__ import unicode_literals
from django.conf import settings
+from django.core.management.commands.test import Command
from django.test.utils import get_runner
-if 'south' in settings.INSTALLED_APPS:
- from south.management.commands.test import Command
-else:
- from django.core.management.commands.test import Command
-
-
-# Django < 1.2 compatibility
-test_runner = settings.TEST_RUNNER
-if test_runner.endswith('run_tests') or test_runner.endswith('run_gis_tests'):
- import warnings
- warnings.warn(
- 'Use `django_nose.NoseTestSuiteRunner` instead of `%s`' % test_runner,
- DeprecationWarning)
-
-
TestRunner = get_runner(settings)
if hasattr(TestRunner, 'options'):
@@ -36,4 +22,4 @@ else:
class Command(Command):
"""Implement the ``test`` command."""
- option_list = Command.option_list + tuple(extra_options)
+ option_list = getattr(Command, 'option_list', ()) + tuple(extra_options)
diff --git a/django_nose/runner.py b/django_nose/runner.py
index 485a9f4..14a26f4 100644
--- a/django_nose/runner.py
+++ b/django_nose/runner.py
@@ -9,57 +9,25 @@ in settings.py for arguments that you want always passed to nose.
"""
from __future__ import print_function, unicode_literals
+
import os
import sys
-from optparse import make_option, NO_DEFAULT
+from importlib import import_module
+from optparse import NO_DEFAULT
from types import MethodType
-import django
+from django import setup
+from django.apps import apps
from django.conf import settings
from django.core import exceptions
-from django.core.management.base import BaseCommand
from django.core.management.color import no_style
from django.core.management.commands.loaddata import Command
from django.db import connections, transaction, DEFAULT_DB_ALIAS
-
-try:
- from django.db.backends.base.creation import BaseDatabaseCreation
-except ImportError:
- # Django < 1.7
- from django.db.backends.creation import BaseDatabaseCreation
-
-try:
- from importlib import import_module
-except ImportError:
- # Django < 1.7 and Python < 2.7
- from django.utils.importlib import import_module
-
-try:
- from django.apps import apps
-except ImportError:
- # Django < 1.7
- from django.db.models.loading import cache as apps
-
-import nose.core
+from django.test.runner import DiscoverRunner
from django_nose.plugin import DjangoSetUpPlugin, ResultPlugin, TestReorderer
from django_nose.utils import uses_mysql
-
-try:
- any
-except NameError:
- def any(iterable):
- for element in iterable:
- if element:
- return True
- return False
-
-try:
- from django.test.runner import DiscoverRunner
-except ImportError:
- # Django < 1.8
- from django.test.simple import DjangoTestSuiteRunner as DiscoverRunner
-
+import nose.core
__all__ = ('BasicNoseRunner', 'NoseTestSuiteRunner')
@@ -77,18 +45,6 @@ def translate_option(opt):
return OPTION_TRANSLATION.get(opt, opt)
-# Django v1.2 does not have a _get_test_db_name() function.
-if not hasattr(BaseDatabaseCreation, '_get_test_db_name'):
- def _get_test_db_name(self):
- TEST_DATABASE_PREFIX = 'test_'
-
- if self.connection.settings_dict['TEST_NAME']:
- return self.connection.settings_dict['TEST_NAME']
- return TEST_DATABASE_PREFIX + self.connection.settings_dict['NAME']
-
- BaseDatabaseCreation._get_test_db_name = _get_test_db_name
-
-
def _get_plugins_from_settings():
plugins = (list(getattr(settings, 'NOSE_PLUGINS', [])) +
['django_nose.plugin.TestReorderer'])
@@ -116,193 +72,147 @@ def _get_plugins_from_settings():
yield p_class()
-def _get_options():
- """Return all nose options that don't conflict with django options."""
- cfg_files = nose.core.all_config_files()
- manager = nose.core.DefaultPluginManager()
- config = nose.core.Config(env=os.environ, files=cfg_files, plugins=manager)
- config.plugins.addPlugins(list(_get_plugins_from_settings()))
- options = config.getParser()._get_all_options()
-
- # copy nose's --verbosity option and rename to --nose-verbosity
- verbosity = [o for o in options if o.get_opt_string() == '--verbosity'][0]
- verbosity_attrs = dict((attr, getattr(verbosity, attr))
- for attr in verbosity.ATTRS
- if attr not in ('dest', 'metavar'))
- options.append(make_option('--nose-verbosity',
- dest='nose_verbosity',
- metavar='NOSE_VERBOSITY',
- **verbosity_attrs))
-
- # Django 1.6 introduces a "--pattern" option, which is shortened into "-p"
- # do not allow "-p" to collide with nose's "--plugins" option.
- plugins_option = [
- o for o in options if o.get_opt_string() == '--plugins'][0]
- plugins_option._short_opts.remove('-p')
-
- django_opts = [opt.dest for opt in BaseCommand.option_list] + ['version']
- return tuple(
- o for o in options if o.dest not in django_opts and o.action != 'help')
-
-
-if hasattr(BaseCommand, 'use_argparse'):
- # Django 1.8 and later uses argparse.ArgumentParser
- # Translate nose optparse arguments to argparse
- class BaseRunner(DiscoverRunner):
-
- # Don't pass the following options to nosetests
- django_opts = [
- '--noinput', '--liveserver', '-p', '--pattern', '--testrunner',
- '--settings',
- # 1.8 arguments
- '--keepdb', '--reverse', '--debug-sql',
- # 1.9 arguments
- '--parallel',
- ]
-
- #
- # For optparse -> argparse conversion
- #
- # Option strings to remove from Django options if found
- _argparse_remove_options = (
- '-p', # Short arg for nose's --plugins, not Django's --patterns
- '-d', # Short arg for nose's --detailed-errors, not Django's
- # --debug-sql
- )
-
- # Convert nose optparse options to argparse options
- _argparse_type = {
- 'int': int,
- 'float': float,
- 'complex': complex,
- 'string': str,
- 'choice': str,
- }
- # If optparse has a None argument, omit from call to add_argument
- _argparse_omit_if_none = (
- 'action', 'nargs', 'const', 'default', 'type', 'choices',
- 'required', 'help', 'metavar', 'dest')
-
- # Always ignore these optparse arguments
- # Django will parse without calling the callback
- # nose will then reparse with the callback
- _argparse_callback_options = (
- 'callback', 'callback_args', 'callback_kwargs')
-
- # Keep track of nose options with nargs=1
- _has_nargs = set(['--verbosity'])
-
- @classmethod
- def add_arguments(cls, parser):
- """Convert nose's optparse arguments to argparse."""
- super(BaseRunner, cls).add_arguments(parser)
-
- # Read optparse options for nose and plugins
- cfg_files = nose.core.all_config_files()
- manager = nose.core.DefaultPluginManager()
- config = nose.core.Config(
- env=os.environ, files=cfg_files, plugins=manager)
- config.plugins.addPlugins(list(_get_plugins_from_settings()))
- options = config.getParser()._get_all_options()
-
- # Gather existing option strings`
- django_options = set()
- for action in parser._actions:
- for override in cls._argparse_remove_options:
- if override in action.option_strings:
- # Emulate parser.conflict_handler='resolve'
- parser._handle_conflict_resolve(
- None, ((override, action),))
- django_options.update(action.option_strings)
-
- # Process nose optparse options
- for option in options:
- # Skip any options also in Django options
- opt_long = option.get_opt_string()
- if opt_long in django_options:
+class BaseRunner(DiscoverRunner):
+ """Runner that translates nose optparse arguments to argparse.
+
+ Django 1.8 and later uses argparse.ArgumentParser. Nose's optparse
+ arguments need to be translated to this format, so that the Django
+ command line parsing will pass. This parsing is (mostly) thrown out,
+ and reassembled into command line arguments for nose to reparse.
+ """
+
+ # Don't pass the following options to nosetests
+ django_opts = [
+ '--noinput', '--liveserver', '-p', '--pattern', '--testrunner',
+ '--settings',
+ # 1.8 arguments
+ '--keepdb', '--reverse', '--debug-sql',
+ # 1.9 arguments
+ '--parallel',
+ ]
+
+ #
+ # For optparse -> argparse conversion
+ #
+ # Option strings to remove from Django options if found
+ _argparse_remove_options = (
+ '-p', # Short arg for nose's --plugins, not Django's --patterns
+ '-d', # Short arg for nose's --detailed-errors, not Django's
+ # --debug-sql
+ )
+
+ # Convert nose optparse options to argparse options
+ _argparse_type = {
+ 'int': int,
+ 'float': float,
+ 'complex': complex,
+ 'string': str,
+ 'choice': str,
+ }
+ # If optparse has a None argument, omit from call to add_argument
+ _argparse_omit_if_none = (
+ 'action', 'nargs', 'const', 'default', 'type', 'choices',
+ 'required', 'help', 'metavar', 'dest')
+
+ # Always ignore these optparse arguments
+ # Django will parse without calling the callback
+ # nose will then reparse with the callback
+ _argparse_callback_options = (
+ 'callback', 'callback_args', 'callback_kwargs')
+
+ # Keep track of nose options with nargs=1
+ _has_nargs = set(['--verbosity'])
+
+ @classmethod
+ def add_arguments(cls, parser):
+ """Convert nose's optparse arguments to argparse."""
+ super(BaseRunner, cls).add_arguments(parser)
+
+ # Read optparse options for nose and plugins
+ cfg_files = nose.core.all_config_files()
+ manager = nose.core.DefaultPluginManager()
+ config = nose.core.Config(
+ env=os.environ, files=cfg_files, plugins=manager)
+ config.plugins.addPlugins(list(_get_plugins_from_settings()))
+ options = config.getParser()._get_all_options()
+
+ # Gather existing option strings`
+ django_options = set()
+ for action in parser._actions:
+ for override in cls._argparse_remove_options:
+ if override in action.option_strings:
+ # Emulate parser.conflict_handler='resolve'
+ parser._handle_conflict_resolve(
+ None, ((override, action),))
+ django_options.update(action.option_strings)
+
+ # Process nose optparse options
+ for option in options:
+ # Gather options
+ opt_long = option.get_opt_string()
+ if option._short_opts:
+ opt_short = option._short_opts[0]
+ else:
+ opt_short = None
+
+ # Rename nose's --verbosity to --nose-verbosity
+ if opt_long == '--verbosity':
+ opt_long = '--nose-verbosity'
+
+ # Skip any options also in Django options
+ if opt_long in django_options:
+ continue
+ if opt_short and opt_short in django_options:
+ opt_short = None
+
+ # Convert optparse attributes to argparse attributes
+ option_attrs = {}
+ for attr in option.ATTRS:
+ # Ignore callback options
+ if attr in cls._argparse_callback_options:
+ continue
+
+ value = getattr(option, attr)
+
+ if attr == 'default' and value == NO_DEFAULT:
continue
- if option._short_opts:
- opt_short = option._short_opts[0]
- if opt_short in django_options:
- continue
- else:
- opt_short = None
-
- # Rename nose's --verbosity to --nose-verbosity
- if opt_long == '--verbosity':
- opt_long = '--nose-verbosity'
-
- # Convert optparse attributes to argparse attributes
- option_attrs = {}
- for attr in option.ATTRS:
- # Ignore callback options
- if attr in cls._argparse_callback_options:
- continue
-
- value = getattr(option, attr)
-
- if attr == 'default' and value == NO_DEFAULT:
- continue
-
- # Rename options for nose's --verbosity
- if opt_long == '--nose-verbosity':
- if attr == 'dest':
- value = 'nose_verbosity'
- elif attr == 'metavar':
- value = 'NOSE_VERBOSITY'
-
- # Omit arguments that are None, use default
- if attr in cls._argparse_omit_if_none and value is None:
- continue
-
- # Convert type from optparse string to argparse type
- if attr == 'type':
- value = cls._argparse_type[value]
-
- # Convert action='callback' to action='store'
- if attr == 'action' and value == 'callback':
- action = 'store'
-
- # Keep track of nargs=1
- if attr == 'nargs':
- assert value == 1, (
- 'argparse option nargs=%s is not supported' %
- value)
- cls._has_nargs.add(opt_long)
- if opt_short:
- cls._has_nargs.add(opt_short)
-
- # Pass converted attribute to optparse option
- option_attrs[attr] = value
-
- # Add the optparse argument
- if opt_short:
- parser.add_argument(opt_short, opt_long, **option_attrs)
- else:
- parser.add_argument(opt_long, **option_attrs)
-else:
- # Django 1.7 and earlier use optparse
- class BaseRunner(DiscoverRunner):
- # Replace the builtin options with the merged django/nose options:
- options = _get_options()
-
- # Not add following options to nosetests
- django_opts = [
- '--noinput', '--liveserver', '-p', '--pattern', '--testrunner']
-
- # Default nosetest options with an argument
- _has_nargs = set([
- '--attr', '--config', '--cover-html-dir', '--cover-min-percentage',
- '--cover-package', '--cover-xml-file', '--debug', '--debug-log',
- '--doctest-extension', '--doctest-fixtures', '--doctest-options',
- '--doctest-result-variable', '--eval-attr', '--exclude',
- '--id-file', '--ignore-files', '--include', '--logging-config',
- '--logging-datefmt', '--logging-filter', '--logging-format',
- '--logging-level', '--match', '--process-timeout', '--processes',
- '--profile-restrict', '--profile-sort', '--profile-stats-file',
- '--py3where', '--tests', u'--verbosity', '--where', '--xunit-file',
- '--xunit-testsuite-name', '-A', '-I', '-a', '-c', '-e', '-i', '-l',
... 325 lines suppressed ...
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/django-nose.git
More information about the Python-modules-commits
mailing list