From e5f6a07c729bde884f6de784d925f44fb652acf5 Mon Sep 17 00:00:00 2001 From: Zygmunt Krynicki Date: Mon, 13 Jun 2011 21:49:12 +0200 Subject: [PATCH] Use test project to run tests This allows all tests to be ran via the semi-standardized `setup.py test`. Also drop the old code that was used for this purpose. --- .../test_project/__init__.py | 0 .../test_project/manage.py | 44 +++++++++++++++++ .../test_project/settings.py | 49 +++++++++++++++++++ .../test_project/tests.py | 37 ++++++++++++++ linaro_django_pagination/test_project/urls.py | 36 ++++++++++++++ setup.py | 7 +++ tests/runtests.py | 16 ------ tests/settings.py | 6 --- 8 files changed, 173 insertions(+), 22 deletions(-) create mode 100644 linaro_django_pagination/test_project/__init__.py create mode 100755 linaro_django_pagination/test_project/manage.py create mode 100644 linaro_django_pagination/test_project/settings.py create mode 100644 linaro_django_pagination/test_project/tests.py create mode 100644 linaro_django_pagination/test_project/urls.py delete mode 100644 tests/runtests.py delete mode 100644 tests/settings.py diff --git a/linaro_django_pagination/test_project/__init__.py b/linaro_django_pagination/test_project/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/linaro_django_pagination/test_project/manage.py b/linaro_django_pagination/test_project/manage.py new file mode 100755 index 0000000..4eca077 --- /dev/null +++ b/linaro_django_pagination/test_project/manage.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python +# Copyright (C) 2010, 2011 Linaro Limited +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the author nor the names of other +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +import logging + +from django.core.management import execute_manager + +try: + from linaro_django_pagination.test_project import settings +except ImportError as ex: + logging.exception("Unable to import application settings") + raise SystemExit(ex) + + +if __name__ == "__main__": + execute_manager(settings) diff --git a/linaro_django_pagination/test_project/settings.py b/linaro_django_pagination/test_project/settings.py new file mode 100644 index 0000000..7572985 --- /dev/null +++ b/linaro_django_pagination/test_project/settings.py @@ -0,0 +1,49 @@ +# Copyright (C) 2010, 2011 Linaro Limited +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the author nor the names of other +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +import sys +import os + +from django_testproject.settings import gen_settings + + +locals().update( + gen_settings( + INSTALLED_APPS=[ + 'linaro_django_pagination', + ], + MIDDLEWARE_CLASSES=[ + 'linaro_django_pagination.middleware.PaginationMiddleware', + ], + ROOT_URLCONF="linaro_django_pagination.test_project.urls" + ) +) + + +print "imported as ",__name__ diff --git a/linaro_django_pagination/test_project/tests.py b/linaro_django_pagination/test_project/tests.py new file mode 100644 index 0000000..2af1f48 --- /dev/null +++ b/linaro_django_pagination/test_project/tests.py @@ -0,0 +1,37 @@ +# Copyright (C) 2010, 2011 Linaro Limited +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the author nor the names of other +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +def run_tests(): + from django_testproject.tests import run_tests_for + run_tests_for("linaro_django_pagination.test_project.settings") + + +if __name__ == '__main__': + run_tests() diff --git a/linaro_django_pagination/test_project/urls.py b/linaro_django_pagination/test_project/urls.py new file mode 100644 index 0000000..734ebb5 --- /dev/null +++ b/linaro_django_pagination/test_project/urls.py @@ -0,0 +1,36 @@ +# Copyright (C) 2010, 2011 Linaro Limited +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of the author nor the names of other +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +from django.conf.urls.defaults import ( + patterns, url, include, handler500, handler404) + + +# Empty patterns so that test project can be started and would work normally +urlpatterns = patterns('',) diff --git a/setup.py b/setup.py index 7cc67ec..f5a152d 100755 --- a/setup.py +++ b/setup.py @@ -16,8 +16,15 @@ setup( author='Zygmunt Krynicki', author_email='zygmunt.krynicki@linaro.org', url='https://github.com/zyga/django-pagination', + test_suite='linaro_django_pagination.test_project.tests.run_tests', license='BSD', packages=find_packages(), + install_requires=[ + 'django >= 1.2', + ], + tests_require=[ + 'django-testproject >= 0.1', + ], include_package_data=True, zip_safe=False, ) diff --git a/tests/runtests.py b/tests/runtests.py deleted file mode 100644 index 9851feb..0000000 --- a/tests/runtests.py +++ /dev/null @@ -1,16 +0,0 @@ -import sys -sys.path.append('..') - -import os -# Make a backup of DJANGO_SETTINGS_MODULE environment variable to restore later. -backup = os.environ.get('DJANGO_SETTINGS_MODULE', '') -os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' - -from django.test.simple import run_tests - -if __name__ == "__main__": - failures = run_tests(['linaro_django_pagination', ], verbosity=1) - if failures: - sys.exit(failures) - # Reset the DJANGO_SETTINGS_MODULE to what it was before running tests. - os.environ['DJANGO_SETTINGS_MODULE'] = backup diff --git a/tests/settings.py b/tests/settings.py deleted file mode 100644 index 5ca32a2..0000000 --- a/tests/settings.py +++ /dev/null @@ -1,6 +0,0 @@ -DATABASE_ENGINE = 'sqlite3' -ROOT_URLCONF = '' -SITE_ID = 1 -INSTALLED_APPS = ( - 'linaro_django_pagination', -) -- 2.20.1