python-lazr.delegates/Test-using-zope.testrunner-rather-than-nose.patch

270 lines
8.2 KiB
Diff
Raw Normal View History

From dac7edd85c6f6a757a32bde76dcae7778c060f34 Mon Sep 17 00:00:00 2001
From: chen-jan <chen_aka_jan@163.com>
Date: Fri, 7 Jan 2022 05:00:45 +0800
Subject: [PATCH] test
---
lazr/delegates/docs/fixture.py | 34 --------------
lazr/delegates/docs/usage_fixture.py | 27 -----------
lazr/delegates/tests/test_docs.py | 67 ++++++++++++++++++++++++++++
lazr/delegates/tests/test_python2.py | 11 +----
setup.cfg | 15 -------
setup.py | 7 +--
tox.ini | 17 ++++++-
7 files changed, 85 insertions(+), 93 deletions(-)
delete mode 100644 lazr/delegates/docs/fixture.py
delete mode 100644 lazr/delegates/docs/usage_fixture.py
create mode 100644 lazr/delegates/tests/test_docs.py
delete mode 100644 setup.cfg
diff --git a/lazr/delegates/docs/fixture.py b/lazr/delegates/docs/fixture.py
deleted file mode 100644
index 1d4aced..0000000
--- a/lazr/delegates/docs/fixture.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2009-2015 Canonical Ltd. All rights reserved.
-#
-# This file is part of lazr.delegates
-#
-# lazr.delegates is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, version 3 of the License.
-#
-# lazr.delegates is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-# License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with lazr.delegates. If not, see <http://www.gnu.org/licenses/>.
-
-"""Doctest fixtures for running under nose."""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-__metaclass__ = type
-__all__ = [
- 'globs',
- ]
-
-
-def globs(globs):
- """Set up globals for doctests."""
- # Enable future statements to make Python 2 act more like Python 3.
- globs['absolute_import'] = absolute_import
- globs['print_function'] = print_function
- globs['unicode_literals'] = unicode_literals
- # Provide a convenient way to clean things up at the end of the test.
- return globs
diff --git a/lazr/delegates/docs/usage_fixture.py b/lazr/delegates/docs/usage_fixture.py
deleted file mode 100644
index 7012cf7..0000000
--- a/lazr/delegates/docs/usage_fixture.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 2009-2015 Canonical Ltd. All rights reserved.
-#
-# This file is part of lazr.delegates
-#
-# lazr.delegates is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation, version 3 of the License.
-#
-# lazr.delegates is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-# License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with lazr.delegates. If not, see <http://www.gnu.org/licenses/>.
-
-"""Doctest fixtures for running under nose."""
-
-from __future__ import absolute_import, print_function, unicode_literals
-
-__metaclass__ = type
-__all__ = [
- 'globs',
- ]
-
-
-from lazr.delegates.docs.fixture import globs
diff --git a/lazr/delegates/tests/test_docs.py b/lazr/delegates/tests/test_docs.py
new file mode 100644
index 0000000..7ca6971
--- /dev/null
+++ b/lazr/delegates/tests/test_docs.py
@@ -0,0 +1,67 @@
+# Copyright 2009-2021 Canonical Ltd. All rights reserved.
+#
+# This file is part of lazr.delegates.
+#
+# lazr.delegates is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, version 3 of the License.
+#
+# lazr.delegates is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+# License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with lazr.delegates. If not, see <http://www.gnu.org/licenses/>.
+
+"""Test harness for doctests."""
+
+from __future__ import absolute_import, print_function, unicode_literals
+
+__metaclass__ = type
+__all__ = []
+
+import atexit
+import doctest
+import os
+
+from pkg_resources import (
+ resource_filename,
+ resource_exists,
+ resource_listdir,
+ cleanup_resources,
+)
+
+
+DOCTEST_FLAGS = (
+ doctest.ELLIPSIS | doctest.NORMALIZE_WHITESPACE | doctest.REPORT_NDIFF
+)
+
+
+def load_tests(loader, tests, pattern):
+ """Load the doc tests (docs/*, if any exist)."""
+ doctest_files = []
+ if resource_exists("lazr.delegates", "docs"):
+ for name in resource_listdir("lazr.delegates", "docs"):
+ if name.endswith(".rst"):
+ doctest_files.append(
+ os.path.abspath(
+ resource_filename("lazr.delegates", "docs/%s" % name)
+ )
+ )
+ atexit.register(cleanup_resources)
+ globs = {
+ "absolute_import": absolute_import,
+ "print_function": print_function,
+ "unicode_literals": unicode_literals,
+ }
+ tests.addTest(
+ doctest.DocFileSuite(
+ *doctest_files,
+ module_relative=False,
+ optionflags=DOCTEST_FLAGS,
+ globs=globs,
+ encoding="UTF-8"
+ )
+ )
+ return tests
diff --git a/lazr/delegates/tests/test_python2.py b/lazr/delegates/tests/test_python2.py
index 1cc873b..ad3de7e 100644
--- a/lazr/delegates/tests/test_python2.py
+++ b/lazr/delegates/tests/test_python2.py
@@ -63,14 +63,7 @@ class BaseOtherFoo(BaseFoo):
another = 'yes, another'
-# Python 2.6 doesn't have skips.
-def skip_python3(cls):
- if sys.version_info[0] > 2:
- return None
- return cls
-
-
-@skip_python3
+@unittest.skipIf(sys.version_info[0] > 2, "only relevant in Python 2")
class TestLegacyAPI(unittest.TestCase):
def test_basic_usage(self):
class SomeClass(object):
@@ -146,7 +139,7 @@ class TestLegacyAPI(unittest.TestCase):
self.assertTrue(IOther.providedBy(foo_with_teapot))
-@skip_python3
+@unittest.skipIf(sys.version_info[0] > 2, "only relevant in Python 2")
class TestNewAPI(unittest.TestCase):
"""Test corner cases in Python 2.
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index ffe1614..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,15 +0,0 @@
-[nosetests]
-verbosity = 3
-with-coverage = 1
-with-doctest = 1
-doctest-extension = .rst
-doctest-options = +ELLIPSIS,+NORMALIZE_WHITESPACE,+REPORT_NDIFF
-doctest-fixtures = _fixture
-cover-package = lazr.delegates
-pdb = 1
-
-[egg_info]
-tag_build =
-tag_date = 0
-tag_svn_revision = 0
-
diff --git a/setup.py b/setup.py
index 8e16e49..c40bdbf 100755
--- a/setup.py
+++ b/setup.py
@@ -37,7 +37,6 @@ delegating behavior.
""",
license='LGPL v3',
install_requires=[
- 'nose',
'setuptools',
'zope.interface',
],
@@ -49,12 +48,8 @@ delegating behavior.
"License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)",
"Operating System :: OS Independent",
'Programming Language :: Python',
- 'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.9',
],
- # nose plugins don't really work with `python setup.py test` so use
- # `python setup.py nosetests` instead, or just `tox`. Gosh, we really
- # should switch to nose2. :/ - BAW 2014-08-20
- #test_suite='nose.collector',
)
diff --git a/tox.ini b/tox.ini
index 12a635e..db96714 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,18 @@
[tox]
-envlist = py27,py32,py33,py34,py35
+envlist =
+ py27
+ py32
+ py33
+ py34
+ py35
+ py36
+ py37
+ py38
+ py39
+ coverage
[testenv]
-commands = python setup.py nosetests
+deps =
+ .
+ zope.testrunner
+commands =
--
2.30.0