This is the mail archive of the cygwin-apps-cvs mailing list for the cygwin-apps project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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',


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]