From 66f3135ed36fb94e0c3ba2592a94ea1a5cc024ce Mon Sep 17 00:00:00 2001 From: wang--ge Date: Fri, 7 Apr 2023 00:15:06 +0800 Subject: [PATCH] update to version 2.1.0 --- ...ing-zope.testrunner-rather-than-nose.patch | 269 ------------------ lazr.delegates-2.0.4.tar.gz | Bin 14168 -> 0 bytes lazr.delegates-2.1.0.tar.gz | Bin 0 -> 15877 bytes python-lazr.delegates.spec | 11 +- 4 files changed, 7 insertions(+), 273 deletions(-) delete mode 100644 Test-using-zope.testrunner-rather-than-nose.patch delete mode 100644 lazr.delegates-2.0.4.tar.gz create mode 100644 lazr.delegates-2.1.0.tar.gz diff --git a/Test-using-zope.testrunner-rather-than-nose.patch b/Test-using-zope.testrunner-rather-than-nose.patch deleted file mode 100644 index 4dcf734..0000000 --- a/Test-using-zope.testrunner-rather-than-nose.patch +++ /dev/null @@ -1,269 +0,0 @@ -From dac7edd85c6f6a757a32bde76dcae7778c060f34 Mon Sep 17 00:00:00 2001 -From: chen-jan -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 . -- --"""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 . -- --"""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 . -+ -+"""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 - diff --git a/lazr.delegates-2.0.4.tar.gz b/lazr.delegates-2.0.4.tar.gz deleted file mode 100644 index 20f2341ef0814e5163df4bd7003533c062e17da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14168 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 diff --git a/lazr.delegates-2.1.0.tar.gz b/lazr.delegates-2.1.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..955dab5066a41e2d7b27b32d0037319f0cd24d5b GIT binary patch literal 15877 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 gn`1)HzY+s4%}GDj{(tG?0| - 2.1.0-1 +- update to version 2.1.0 + * Fri Jan 07 2022 Chen Chen - 2.0.4-2 - using zope.testrunner instead of nose - update python version