[python-debian/master] changelog: move tests into tests/test_changelog.py

Filippo Giunchedi filippo at esaurito.net
Thu Sep 3 12:36:48 UTC 2009


This ought to complete the move of tests all into tests/
---
 debian/changelog           |    3 +-
 debian/rules               |    2 +-
 debian_bundle/changelog.py |  203 ---------------------------------------
 tests/test_changelog.py    |  226 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 229 insertions(+), 205 deletions(-)
 create mode 100644 tests/test_changelog.py

diff --git a/debian/changelog b/debian/changelog
index 1700a35..2241ba2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -16,8 +16,9 @@ python-debian (0.1.15) UNRELEASED; urgency=low
 
   [ Filippo Giunchedi ]
   * changelog: add iterator over changelog blocks (Closes: #539334)
+  * changelog: split tests into tests/test_changelog.py for consistency
 
- -- Filippo Giunchedi <filippo at debian.org>  Sun, 09 Aug 2009 12:35:00 +0100
+ -- Filippo Giunchedi <filippo at debian.org>  Sun, 09 Aug 2009 13:01:16 +0100
 
 python-debian (0.1.14) unstable; urgency=low
 
diff --git a/debian/rules b/debian/rules
index ae8ab68..6ce409f 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,7 +20,7 @@ build-stamp: setup.py
 	cd tests && ./test_deb822.py
 	cd tests && ./test_debfile.py
 	cd tests && ./test_debtags.py
-	cd tests && python ../debian_bundle/changelog.py
+	cd tests && ./test_changelog.py
 
 	#python debian_bundle/python_support.py
 	debian_bundle/doc-debtags > README.debtags
diff --git a/debian_bundle/changelog.py b/debian_bundle/changelog.py
index 60398ad..7f03dc4 100644
--- a/debian_bundle/changelog.py
+++ b/debian_bundle/changelog.py
@@ -24,7 +24,6 @@
 """This module implements facilities to deal with Debian changelogs."""
 
 import re
-import unittest
 import warnings
 
 import debian_support
@@ -525,205 +524,3 @@ class Changelog(object):
 
     def write_to_open_file(self, file):
         file.write(self.__str__())
-
-def _test():
-    import doctest
-    doctest.testmod()
-
-    unittest.main()
-
-class ChangelogTests(unittest.TestCase):
-
-    def test_create_changelog(self):
-        c = open('test_changelog').read()
-        cl = Changelog(c)
-        cs = str(cl)
-        clines = c.split('\n')
-        cslines = cs.split('\n')
-        for i in range(len(clines)):
-            self.assertEqual(clines[i], cslines[i])
-        self.assertEqual(len(clines), len(cslines), "Different lengths")
-
-    def test_create_changelog_single_block(self):
-        c = open('test_changelog').read()
-        cl = Changelog(c, max_blocks=1)
-        cs = str(cl)
-        self.assertEqual(cs,
-        """gnutls13 (1:1.4.1-1) unstable; urgency=HIGH
-
-  [ James Westby ]
-  * New upstream release.
-  * Remove the following patches as they are now included upstream:
-    - 10_certtoolmanpage.diff
-    - 15_fixcompilewarning.diff
-    - 30_man_hyphen_*.patch
-  * Link the API reference in /usr/share/gtk-doc/html as gnutls rather than
-    gnutls-api so that devhelp can find it.
-
- -- Andreas Metzler <ametzler at debian.org>  Sat, 15 Jul 2006 11:11:08 +0200
-
-""")
-
-    def test_modify_changelog(self):
-        c = open('test_modify_changelog1').read()
-        cl = Changelog(c)
-        cl.package = 'gnutls14'
-        cl.version = '1:1.4.1-2'
-        cl.distributions = 'experimental'
-        cl.urgency = 'medium'
-        cl.add_change('  * Add magic foo')
-        cl.author = 'James Westby <jw+debian at jameswestby.net>'
-        cl.date = 'Sat, 16 Jul 2008 11:11:08 -0200'
-        c = open('test_modify_changelog2').read()
-        clines = c.split('\n')
-        cslines = str(cl).split('\n')
-        for i in range(len(clines)):
-            self.assertEqual(clines[i], cslines[i])
-        self.assertEqual(len(clines), len(cslines), "Different lengths")
-
-    def test_add_changelog_section(self):
-        c = open('test_modify_changelog2').read()
-        cl = Changelog(c)
-        cl.new_block(package='gnutls14',
-                version=Version('1:1.4.1-3'),
-                distributions='experimental',
-                urgency='low',
-                author='James Westby <jw+debian at jameswestby.net>')
-
-        self.assertRaises(ChangelogCreateError, cl.__str__)
-
-        cl.set_date('Sat, 16 Jul 2008 11:11:08 +0200')
-        cl.add_change('')
-        cl.add_change('  * Foo did not work, let us try bar')
-        cl.add_change('')
-
-        c = open('test_modify_changelog3').read()
-        clines = c.split('\n')
-        cslines = str(cl).split('\n')
-        for i in range(len(clines)):
-            self.assertEqual(clines[i], cslines[i])
-        self.assertEqual(len(clines), len(cslines), "Different lengths")
-
-    def test_strange_changelogs(self):
-        """ Just opens and parses a strange changelog """
-        c = open('test_strange_changelog').read()
-        cl = Changelog(c)
-
-    def test_set_version_with_string(self):
-        c1 = Changelog(open('test_modify_changelog1').read())
-        c2 = Changelog(open('test_modify_changelog1').read())
-
-        c1.version = '1:2.3.5-2'
-        c2.version = Version('1:2.3.5-2')
-        self.assertEqual(c1.version, c2.version)
-        self.assertEqual((c1.full_version, c1.epoch, c1.upstream_version,
-                          c1.debian_version),
-                         (c2.full_version, c2.epoch, c2.upstream_version,
-                          c2.debian_version))
-
-    def test_changelog_no_author(self):
-        cl_no_author = """gnutls13 (1:1.4.1-1) unstable; urgency=low
-
-  * New upstream release.
-
- --
-"""
-        c1 = Changelog()
-        c1.parse_changelog(cl_no_author, allow_empty_author=True)
-        self.assertEqual(c1.author, None)
-        self.assertEqual(c1.date, None)
-        self.assertEqual(c1.package, "gnutls13")
-        c2 = Changelog()
-        self.assertRaises(ChangelogParseError, c2.parse_changelog, cl_no_author)
-
-    def test_magic_version_properties(self):
-        c = Changelog(open('test_changelog'))
-        self.assertEqual(c.debian_version, '1')
-        self.assertEqual(c.full_version, '1:1.4.1-1')
-        self.assertEqual(c.upstream_version, '1.4.1')
-        self.assertEqual(c.epoch, '1')
-        self.assertEqual(str(c.version), c.full_version)
-
-    def test_allow_full_stops_in_distribution(self):
-        c = Changelog(open('test_changelog_full_stops'))
-        self.assertEqual(c.debian_version, None)
-        self.assertEqual(c.full_version, '1.2.3')
-        self.assertEqual(str(c.version), c.full_version)
-
-    def test_str_consistent(self):
-        # The parsing of the changelog (including the string representation)
-        # should be consistent whether we give a single string, a list of
-        # lines, or a file object to the Changelog initializer
-        cl_data = open('test_changelog').read()
-        c1 = Changelog(open('test_changelog'))
-        c2 = Changelog(cl_data)
-        c3 = Changelog(cl_data.splitlines())
-        for c in (c1, c2, c3):
-            self.assertEqual(str(c), cl_data)
-
-    def test_block_iterator(self):
-        c = Changelog(open('test_changelog'))
-        self.assertEqual(map(str, c._blocks), map(str, c))
-
-class VersionTests(unittest.TestCase):
-
-    def _test_version(self, full_version, epoch, upstream, debian):
-        v = Version(full_version)
-        self.assertEqual(v.full_version, full_version, "Full version broken")
-        self.assertEqual(v.epoch, epoch, "Epoch broken")
-        self.assertEqual(v.upstream_version, upstream, "Upstram broken")
-        self.assertEqual(v.debian_version, debian, "Debian broken")
-
-    def testversions(self):
-        self._test_version('1:1.4.1-1', '1', '1.4.1', '1')
-        self._test_version('7.1.ds-1', None, '7.1.ds', '1')
-        self._test_version('10.11.1.3-2', None, '10.11.1.3', '2')
-        self._test_version('4.0.1.3.dfsg.1-2', None, '4.0.1.3.dfsg.1', '2')
-        self._test_version('0.4.23debian1', None, '0.4.23debian1', None)
-        self._test_version('1.2.10+cvs20060429-1', None,
-                '1.2.10+cvs20060429', '1')
-        self._test_version('0.2.0-1+b1', None, '0.2.0', '1+b1')
-        self._test_version('4.3.90.1svn-r21976-1', None,
-                '4.3.90.1svn-r21976', '1')
-        self._test_version('1.5+E-14', None, '1.5+E', '14')
-        self._test_version('20060611-0.0', None, '20060611', '0.0')
-        self._test_version('0.52.2-5.1', None, '0.52.2', '5.1')
-        self._test_version('7.0-035+1', None, '7.0', '035+1')
-        self._test_version('1.1.0+cvs20060620-1+2.6.15-8', None,
-            '1.1.0+cvs20060620-1+2.6.15', '8')
-        self._test_version('1.1.0+cvs20060620-1+1.0', None,
-                '1.1.0+cvs20060620', '1+1.0')
-        self._test_version('4.2.0a+stable-2sarge1', None, '4.2.0a+stable',
-                           '2sarge1')
-        self._test_version('1.8RC4b', None, '1.8RC4b', None)
-        self._test_version('0.9~rc1-1', None, '0.9~rc1', '1')
-        self._test_version('2:1.0.4+svn26-1ubuntu1', '2', '1.0.4+svn26',
-                           '1ubuntu1')
-        self._test_version('2:1.0.4~rc2-1', '2', '1.0.4~rc2', '1')
-
-    def test_version_updating(self):
-        v = Version('1:1.4.1-1')
-
-        v.debian_version = '2'
-        self.assertEqual(v.debian_version, '2')
-        self.assertEqual(v.full_version, '1:1.4.1-2')
-
-        v.upstream_version = '1.4.2'
-        self.assertEqual(v.upstream_version, '1.4.2')
-        self.assertEqual(v.full_version, '1:1.4.2-2')
-
-        v.epoch = '2'
-        self.assertEqual(v.epoch, '2')
-        self.assertEqual(v.full_version, '2:1.4.2-2')
-
-        self.assertEqual(str(v), v.full_version)
-
-        v.full_version = '1:1.4.1-1'
-        self.assertEqual(v.full_version, '1:1.4.1-1')
-        self.assertEqual(v.epoch, '1')
-        self.assertEqual(v.upstream_version, '1.4.1')
-        self.assertEqual(v.debian_version, '1')
-
-if __name__ == "__main__":
-    _test()
-
diff --git a/tests/test_changelog.py b/tests/test_changelog.py
new file mode 100644
index 0000000..d8fb037
--- /dev/null
+++ b/tests/test_changelog.py
@@ -0,0 +1,226 @@
+#!/usr/bin/python
+
+# changelog.py -- Python module for Debian changelogs
+# Copyright (C) 2006-7 James Westby <jw+debian at jameswestby.net>
+# Copyright (C) 2008 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# The parsing code is based on that from dpkg which is:
+# Copyright 1996 Ian Jackson
+# Copyright 2005 Frank Lichtenheld <frank at lichtenheld.de>
+# and licensed under the same license as above.
+
+import sys
+import unittest
+
+sys.path.insert(0, '../debian_bundle/')
+
+import changelog
+
+class ChangelogTests(unittest.TestCase):
+
+    def test_create_changelog(self):
+        c = open('test_changelog').read()
+        cl = changelog.Changelog(c)
+        cs = str(cl)
+        clines = c.split('\n')
+        cslines = cs.split('\n')
+        for i in range(len(clines)):
+            self.assertEqual(clines[i], cslines[i])
+        self.assertEqual(len(clines), len(cslines), "Different lengths")
+
+    def test_create_changelog_single_block(self):
+        c = open('test_changelog').read()
+        cl = changelog.Changelog(c, max_blocks=1)
+        cs = str(cl)
+        self.assertEqual(cs,
+        """gnutls13 (1:1.4.1-1) unstable; urgency=HIGH
+
+  [ James Westby ]
+  * New upstream release.
+  * Remove the following patches as they are now included upstream:
+    - 10_certtoolmanpage.diff
+    - 15_fixcompilewarning.diff
+    - 30_man_hyphen_*.patch
+  * Link the API reference in /usr/share/gtk-doc/html as gnutls rather than
+    gnutls-api so that devhelp can find it.
+
+ -- Andreas Metzler <ametzler at debian.org>  Sat, 15 Jul 2006 11:11:08 +0200
+
+""")
+
+    def test_modify_changelog(self):
+        c = open('test_modify_changelog1').read()
+        cl = changelog.Changelog(c)
+        cl.package = 'gnutls14'
+        cl.version = '1:1.4.1-2'
+        cl.distributions = 'experimental'
+        cl.urgency = 'medium'
+        cl.add_change('  * Add magic foo')
+        cl.author = 'James Westby <jw+debian at jameswestby.net>'
+        cl.date = 'Sat, 16 Jul 2008 11:11:08 -0200'
+        c = open('test_modify_changelog2').read()
+        clines = c.split('\n')
+        cslines = str(cl).split('\n')
+        for i in range(len(clines)):
+            self.assertEqual(clines[i], cslines[i])
+        self.assertEqual(len(clines), len(cslines), "Different lengths")
+
+    def test_add_changelog_section(self):
+        c = open('test_modify_changelog2').read()
+        cl = changelog.Changelog(c)
+        cl.new_block(package='gnutls14',
+                version=changelog.Version('1:1.4.1-3'),
+                distributions='experimental',
+                urgency='low',
+                author='James Westby <jw+debian at jameswestby.net>')
+
+        self.assertRaises(changelog.ChangelogCreateError, cl.__str__)
+
+        cl.set_date('Sat, 16 Jul 2008 11:11:08 +0200')
+        cl.add_change('')
+        cl.add_change('  * Foo did not work, let us try bar')
+        cl.add_change('')
+
+        c = open('test_modify_changelog3').read()
+        clines = c.split('\n')
+        cslines = str(cl).split('\n')
+        for i in range(len(clines)):
+            self.assertEqual(clines[i], cslines[i])
+        self.assertEqual(len(clines), len(cslines), "Different lengths")
+
+    def test_strange_changelogs(self):
+        """ Just opens and parses a strange changelog """
+        c = open('test_strange_changelog').read()
+        cl = changelog.Changelog(c)
+
+    def test_set_version_with_string(self):
+        c1 = changelog.Changelog(open('test_modify_changelog1').read())
+        c2 = changelog.Changelog(open('test_modify_changelog1').read())
+
+        c1.version = '1:2.3.5-2'
+        c2.version = changelog.Version('1:2.3.5-2')
+        self.assertEqual(c1.version, c2.version)
+        self.assertEqual((c1.full_version, c1.epoch, c1.upstream_version,
+                          c1.debian_version),
+                         (c2.full_version, c2.epoch, c2.upstream_version,
+                          c2.debian_version))
+
+    def test_changelog_no_author(self):
+        cl_no_author = """gnutls13 (1:1.4.1-1) unstable; urgency=low
+
+  * New upstream release.
+
+ --
+"""
+        c1 = changelog.Changelog()
+        c1.parse_changelog(cl_no_author, allow_empty_author=True)
+        self.assertEqual(c1.author, None)
+        self.assertEqual(c1.date, None)
+        self.assertEqual(c1.package, "gnutls13")
+        c2 = changelog.Changelog()
+        self.assertRaises(changelog.ChangelogParseError, c2.parse_changelog, cl_no_author)
+
+    def test_magic_version_properties(self):
+        c = changelog.Changelog(open('test_changelog'))
+        self.assertEqual(c.debian_version, '1')
+        self.assertEqual(c.full_version, '1:1.4.1-1')
+        self.assertEqual(c.upstream_version, '1.4.1')
+        self.assertEqual(c.epoch, '1')
+        self.assertEqual(str(c.version), c.full_version)
+
+    def test_allow_full_stops_in_distribution(self):
+        c = changelog.Changelog(open('test_changelog_full_stops'))
+        self.assertEqual(c.debian_version, None)
+        self.assertEqual(c.full_version, '1.2.3')
+        self.assertEqual(str(c.version), c.full_version)
+
+    def test_str_consistent(self):
+        # The parsing of the changelog (including the string representation)
+        # should be consistent whether we give a single string, a list of
+        # lines, or a file object to the Changelog initializer
+        cl_data = open('test_changelog').read()
+        c1 = changelog.Changelog(open('test_changelog'))
+        c2 = changelog.Changelog(cl_data)
+        c3 = changelog.Changelog(cl_data.splitlines())
+        for c in (c1, c2, c3):
+            self.assertEqual(str(c), cl_data)
+
+    def test_block_iterator(self):
+        c = changelog.Changelog(open('test_changelog'))
+        self.assertEqual(map(str, c._blocks), map(str, c))
+
+class VersionTests(unittest.TestCase):
+
+    def _test_version(self, full_version, epoch, upstream, debian):
+        v = changelog.Version(full_version)
+        self.assertEqual(v.full_version, full_version, "Full version broken")
+        self.assertEqual(v.epoch, epoch, "Epoch broken")
+        self.assertEqual(v.upstream_version, upstream, "Upstram broken")
+        self.assertEqual(v.debian_version, debian, "Debian broken")
+
+    def testversions(self):
+        self._test_version('1:1.4.1-1', '1', '1.4.1', '1')
+        self._test_version('7.1.ds-1', None, '7.1.ds', '1')
+        self._test_version('10.11.1.3-2', None, '10.11.1.3', '2')
+        self._test_version('4.0.1.3.dfsg.1-2', None, '4.0.1.3.dfsg.1', '2')
+        self._test_version('0.4.23debian1', None, '0.4.23debian1', None)
+        self._test_version('1.2.10+cvs20060429-1', None,
+                '1.2.10+cvs20060429', '1')
+        self._test_version('0.2.0-1+b1', None, '0.2.0', '1+b1')
+        self._test_version('4.3.90.1svn-r21976-1', None,
+                '4.3.90.1svn-r21976', '1')
+        self._test_version('1.5+E-14', None, '1.5+E', '14')
+        self._test_version('20060611-0.0', None, '20060611', '0.0')
+        self._test_version('0.52.2-5.1', None, '0.52.2', '5.1')
+        self._test_version('7.0-035+1', None, '7.0', '035+1')
+        self._test_version('1.1.0+cvs20060620-1+2.6.15-8', None,
+            '1.1.0+cvs20060620-1+2.6.15', '8')
+        self._test_version('1.1.0+cvs20060620-1+1.0', None,
+                '1.1.0+cvs20060620', '1+1.0')
+        self._test_version('4.2.0a+stable-2sarge1', None, '4.2.0a+stable',
+                           '2sarge1')
+        self._test_version('1.8RC4b', None, '1.8RC4b', None)
+        self._test_version('0.9~rc1-1', None, '0.9~rc1', '1')
+        self._test_version('2:1.0.4+svn26-1ubuntu1', '2', '1.0.4+svn26',
+                           '1ubuntu1')
+        self._test_version('2:1.0.4~rc2-1', '2', '1.0.4~rc2', '1')
+
+    def test_version_updating(self):
+        v = changelog.Version('1:1.4.1-1')
+
+        v.debian_version = '2'
+        self.assertEqual(v.debian_version, '2')
+        self.assertEqual(v.full_version, '1:1.4.1-2')
+
+        v.upstream_version = '1.4.2'
+        self.assertEqual(v.upstream_version, '1.4.2')
+        self.assertEqual(v.full_version, '1:1.4.2-2')
+
+        v.epoch = '2'
+        self.assertEqual(v.epoch, '2')
+        self.assertEqual(v.full_version, '2:1.4.2-2')
+
+        self.assertEqual(str(v), v.full_version)
+
+        v.full_version = '1:1.4.1-1'
+        self.assertEqual(v.full_version, '1:1.4.1-1')
+        self.assertEqual(v.epoch, '1')
+        self.assertEqual(v.upstream_version, '1.4.1')
+        self.assertEqual(v.debian_version, '1')
+
+if __name__ == '__main__':
+    unittest.main()
-- 
1.5.6.5





More information about the pkg-python-debian-commits mailing list