This is the mail archive of the
cygwin-apps-cvs
mailing list for the cygwin-apps project.
[calm - Cygwin server-side packaging maintenance script] branch master, updated. 20171113-6-ge6231b4
- From: jturney at sourceware dot org
- To: cygwin-apps-cvs at sourceware dot org
- Date: 17 Nov 2017 11:42:11 -0000
- Subject: [calm - Cygwin server-side packaging maintenance script] branch master, updated. 20171113-6-ge6231b4
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=e6231b4cff0eba5f0153b7e8f0e869bb1339e9e3
commit e6231b4cff0eba5f0153b7e8f0e869bb1339e9e3
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Sun Apr 9 17:34:13 2017 +0100
Test with python 3.6 as well on Travis
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=2427b7b89d99dce3db44c7d442f2f8f448f309b5
commit 2427b7b89d99dce3db44c7d442f2f8f448f309b5
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Nov 16 01:45:24 2017 +0000
Fix representation of defaultdict in test data for python 3.6
Similarly, pprint of defaultdict was also fixed to print the defaultdict
repr, rather than as a dict
Explicitly convert to a dict in test_scan_uploads to keep the same text
representation
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=190330a4a922699bdf1dbc0651b6f03dc5e91e54
commit 190330a4a922699bdf1dbc0651b6f03dc5e91e54
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Nov 16 13:10:00 2017 +0000
Shrink ldesc in one hint to work around limitations of previous fix
Shrink ldesc slightly in one hint to deal with not quite compatible choice
of where to break the line
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=761a3b79565dea290573d3162f0ab8a21692f1cc
commit 761a3b79565dea290573d3162f0ab8a21692f1cc
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Nov 16 13:03:05 2017 +0000
Extend the sdesc in one hint to work around limitations of previous fix
Due to pprint internals, pprint of an OrderedDict() which fits on a single
line isn't effected by the monkey-patch. Make the sdesc in the one hint
which is rendered this way a little longer.
https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/calm.git;h=b666c2dbe4157293bef99a4abdcb2d92699e7bd8
commit b666c2dbe4157293bef99a4abdcb2d92699e7bd8
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date: Thu Nov 16 00:47:30 2017 +0000
Fix representation of OrderedDict in test data with python 3.6
pprint was fixed by [1] from printing an OrderedDict as a dict, with the
lines in order, to printing the repr of the OrderedDict.
Monkey-patch pprint on python 3.6 to get the python 3.4 behaviour. Probably
better to do that the other way around, but that means changing the test
data...
[1] https://bugs.python.org/issue23775
Diff:
---
.travis.yml | 1 +
test/test_calm.py | 39 ++++++++++++++++++--
test/testdata/hints/x86/release/rpm-doc/expected | 2 +-
.../x86/release/testpackage/setup.hint | 2 +-
test/testdata/htdocs.expected/x86/packages.inc | 2 +-
.../htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2 | 4 +-
.../htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2-src | 4 +-
.../htdocs.expected/x86/rpm-doc/rpm-doc-999-1 | 4 +-
test/testdata/inifile/setup.ini.expected | 2 +-
test/testdata/process_arch/setup.ini.expected | 4 +-
.../relarea/x86/release/rpm-doc/setup.hint | 2 +-
test/testdata/uploads/pkglist.expected | 3 +-
12 files changed, 51 insertions(+), 18 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index ceda33e..e54b58a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,6 +2,7 @@ language: python
sudo: false
python:
- "3.4"
+ - "3.6"
install: "pip install pycodestyle dirq"
script:
- ./pep8
diff --git a/test/test_calm.py b/test/test_calm.py
index 0f30e85..7cacd01 100755
--- a/test/test_calm.py
+++ b/test/test_calm.py
@@ -25,6 +25,8 @@
# tests
#
+import collections
+import contextlib
import filecmp
import logging
import os
@@ -87,6 +89,35 @@ def capture_dirtree(basedir):
#
+# a context to monkey-patch pprint so OrderedDict appears as with python <3.5
+# (a dict, with lines ordered, rather than OrderedDict repr)
+#
+
+def patched_pprint_ordered_dict(self, object, stream, indent, allowance, context, level):
+ write = stream.write
+ write('{')
+ if self._indent_per_level > 1:
+ write((self._indent_per_level - 1) * ' ')
+ length = len(object)
+ if length:
+ items = list(object.items())
+ self._format_dict_items(items, stream, indent, allowance + 1,
+ context, level)
+ write('}')
+
+@contextlib.contextmanager
+def pprint_patch():
+ if isinstance(getattr(pprint.PrettyPrinter, '_dispatch', None), dict):
+ orig = pprint.PrettyPrinter._dispatch[collections.OrderedDict.__repr__]
+ pprint.PrettyPrinter._dispatch[collections.OrderedDict.__repr__] = patched_pprint_ordered_dict
+ try:
+ yield
+ finally:
+ pprint.PrettyPrinter._dispatch[collections.OrderedDict.__repr__] = orig
+ else:
+ yield
+
+#
#
#
@@ -101,7 +132,8 @@ class CalmTest(unittest.TestCase):
with self.subTest(package=os.path.basename(dirpath)):
logging.info('Reading %s' % os.path.join(dirpath, 'setup.hint'))
results = hint.hint_file_parse(os.path.join(dirpath, 'setup.hint'), hint.setup)
- compare_with_expected_file(self, os.path.join('testdata/hints', relpath), results)
+ with pprint_patch():
+ compare_with_expected_file(self, os.path.join('testdata/hints', relpath), results)
#
# something like "find -name results -exec sh -c 'cd `dirname {}` ; cp results
@@ -278,11 +310,12 @@ class CalmTest(unittest.TestCase):
scan_result = uploads.scan(m, pkglist + ['not-on-maintainer-list'], args.arch, args)
self.assertEqual(scan_result.error, False)
- compare_with_expected_file(self, 'testdata/uploads', scan_result.to_relarea, 'move')
+ compare_with_expected_file(self, 'testdata/uploads', dict(scan_result.to_relarea), 'move')
self.assertCountEqual(scan_result.to_vault, {'x86/release/testpackage': ['x86/release/testpackage/testpackage-0.1-1.tar.bz2']})
self.assertCountEqual(scan_result.remove_always, [f for (f, t) in ready_fns])
self.assertEqual(scan_result.remove_success, ['testdata/homes/Blooey McFooey/x86/release/testpackage/-testpackage-0.1-1-src.tar.bz2', 'testdata/homes/Blooey McFooey/x86/release/testpackage/-testpackage-0.1-1.tar.bz2'])
- compare_with_expected_file(self, 'testdata/uploads', scan_result.packages, 'pkglist')
+ with pprint_patch():
+ compare_with_expected_file(self, 'testdata/uploads', dict(scan_result.packages), 'pkglist')
def test_package_set(self):
self.maxDiff = None
diff --git a/test/testdata/hints/x86/release/rpm-doc/expected b/test/testdata/hints/x86/release/rpm-doc/expected
index db48c82..a47a381 100644
--- a/test/testdata/hints/x86/release/rpm-doc/expected
+++ b/test/testdata/hints/x86/release/rpm-doc/expected
@@ -1,2 +1,2 @@
-{'sdesc': '"Obsolete package for RPM package management system manual pages"',
+{'sdesc': '"Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"',
'category': '_obsolete'}
diff --git a/test/testdata/homes/Blooey McFooey/x86/release/testpackage/setup.hint b/test/testdata/homes/Blooey McFooey/x86/release/testpackage/setup.hint
index 290111b..d1373e3 100644
--- a/test/testdata/homes/Blooey McFooey/x86/release/testpackage/setup.hint
+++ b/test/testdata/homes/Blooey McFooey/x86/release/testpackage/setup.hint
@@ -1,6 +1,6 @@
sdesc: "A test package"
ldesc: "A test package
-It's description might contains some unicode gibberish
+It's description might contains some unicode junk
Like itâ??s youâ??re Markup Languageâ?¢ Nokogiriâ??s toolâ??that Bézier."
category: Devel
requires: cygwin
diff --git a/test/testdata/htdocs.expected/x86/packages.inc b/test/testdata/htdocs.expected/x86/packages.inc
index fa8b66b..2d85324 100755
--- a/test/testdata/htdocs.expected/x86/packages.inc
+++ b/test/testdata/htdocs.expected/x86/packages.inc
@@ -21,7 +21,7 @@
<tr><td><a href="x86/per-version">per-version</a></td><td>Per-version hint test package</td></tr>
<tr><td><a href="x86/per-version-replacement-hint-only">per-version-replacement-hint-only</a></td><td>Per-version hint test package</td></tr>
<tr><td><a href="x86/perl-Net-SMTP-SSL">perl-Net-SMTP-SSL</a></td><td>Perl distribution Net-SMTP-SSL</td></tr>
-<tr><td><a href="x86/rpm-doc">rpm-doc</a></td><td>Obsolete package for RPM package management system manual pages</td></tr>
+<tr><td><a href="x86/rpm-doc">rpm-doc</a></td><td>Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</td></tr>
<tr><td><a href="x86/staleversion">staleversion</a></td><td>Test package for stale version removal</td></tr>
<tr><td><a href="x86/test-c">test-c</a></td><td>test package C</td></tr>
<tr><td><a href="x86/test-d">test-d</a></td><td>test package D</td></tr>
diff --git a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2 b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2
index 9cd2ff7..8ae10d2 100644
--- a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2
+++ b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2
@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html>
<head>
-<title>rpm-doc: Obsolete package for RPM package management system manual pages</title>
+<title>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</title>
</head>
<body>
-<h1>rpm-doc: Obsolete package for RPM package management system manual pages</h1>
+<h1>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</h1>
<pre>
2003-05-02 11:46 25562 usr/man/fr/man8/rpm.8
2003-05-02 11:46 39721 usr/man/ja/man8/rpm.8
diff --git a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2-src b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2-src
index 032a602..c810de5 100644
--- a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2-src
+++ b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-4.1-2-src
@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html>
<head>
-<title>rpm-doc: Obsolete package for RPM package management system manual pages (source code)</title>
+<title>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line) (source code)</title>
</head>
<body>
-<h1>rpm-doc: Obsolete package for RPM package management system manual pages (source code)</h1>
+<h1>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line) (source code)</h1>
<pre>
</pre>
</body>
diff --git a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-999-1 b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-999-1
index 737ef80..6ac87cb 100644
--- a/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-999-1
+++ b/test/testdata/htdocs.expected/x86/rpm-doc/rpm-doc-999-1
@@ -1,10 +1,10 @@
<!DOCTYPE html>
<html>
<head>
-<title>rpm-doc: Obsolete package for RPM package management system manual pages</title>
+<title>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</title>
</head>
<body>
-<h1>rpm-doc: Obsolete package for RPM package management system manual pages</h1>
+<h1>rpm-doc: Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)</h1>
<pre>
</pre>
</body>
diff --git a/test/testdata/inifile/setup.ini.expected b/test/testdata/inifile/setup.ini.expected
index ced8b29..ee8d17d 100644
--- a/test/testdata/inifile/setup.ini.expected
+++ b/test/testdata/inifile/setup.ini.expected
@@ -250,7 +250,7 @@
'4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n'
'\n'
'@ rpm-doc\n'
- 'sdesc: "Obsolete package for RPM package management system manual pages"\n'
+ 'sdesc: "Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"\n'
'category: _obsolete\n'
'version: 999-1\n'
'install: x86/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 '
diff --git a/test/testdata/process_arch/setup.ini.expected b/test/testdata/process_arch/setup.ini.expected
index 01766f0..bdeea8c 100644
--- a/test/testdata/process_arch/setup.ini.expected
+++ b/test/testdata/process_arch/setup.ini.expected
@@ -262,7 +262,7 @@
'4de528554acb0b63f2a964bc8a0421118f96ce05cb4c9d111983aaea1a4a93025b31627fd66875fa09c2dfaecc11a89f2a294bdd3c77055bfaa93a27fdfc1f07\n'
'\n'
'@ rpm-doc\n'
- 'sdesc: "Obsolete package for RPM package management system manual pages"\n'
+ 'sdesc: "Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"\n'
'category: _obsolete\n'
'version: 999-1\n'
'install: x86/release/rpm-doc/rpm-doc-999-1.tar.bz2 42 '
@@ -329,7 +329,7 @@
'@ testpackage\n'
'sdesc: "A test package"\n'
'ldesc: "A test package\n'
- "It's description might contains some unicode gibberish\n"
+ "It's description might contains some unicode junk\n"
'Like itâ??s youâ??re Markup Languageâ?¢ Nokogiriâ??s toolâ??that Bézier."\n'
'category: Devel\n'
'requires: cygwin\n'
diff --git a/test/testdata/relarea/x86/release/rpm-doc/setup.hint b/test/testdata/relarea/x86/release/rpm-doc/setup.hint
index f3bbf78..087a6dd 100644
--- a/test/testdata/relarea/x86/release/rpm-doc/setup.hint
+++ b/test/testdata/relarea/x86/release/rpm-doc/setup.hint
@@ -1,2 +1,2 @@
-sdesc: "Obsolete package for RPM package management system manual pages"
+sdesc: "Obsolete package for RPM package management system manual pages (extra text to so repr is not one line)"
category: _obsolete
diff --git a/test/testdata/uploads/pkglist.expected b/test/testdata/uploads/pkglist.expected
index aec9b6f..4275391 100644
--- a/test/testdata/uploads/pkglist.expected
+++ b/test/testdata/uploads/pkglist.expected
@@ -1,8 +1,7 @@
{'testpackage': Package('x86/release/testpackage', {'1.0-1': {'testpackage-1.0-1-src.tar.bz2': Tar('aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83', 195, False),
'testpackage-1.0-1.tar.bz2': Tar('aff488008bee3486e25b539fe6ccd1397bd3c5c0ba2ee2cf34af279554baa195af7493ee51d6f8510735c9a2ea54436d776a71e768165716762aec286abbbf83', 195, False)}}, {'1.0-1': {'sdesc': '"A test package"',
'ldesc': '"A test package\n'
- "It's description might contains some unicode "
- 'gibberish\n'
+ "It's description might contains some unicode junk\n"
'Like itâ??s youâ??re Markup Languageâ?¢ Nokogiriâ??s toolâ??that '
'Bézier."',
'category': 'Devel',