tests: adapt dch tests for older devscripts
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 7 Jan 2014 14:10:03 +0000 (16:10 +0200)
committerGuido Günther <agx@sigxcpu.org>
Tue, 7 Jan 2014 16:34:18 +0000 (17:34 +0100)
Determine the default urgency level by determining the version number of
the dch tool from command line.

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
tests/11_test_dch_main.py
tests/testutils.py

index e7de1c4..dbfc25c 100644 (file)
@@ -6,42 +6,46 @@ from . import context
 
 import unittest
 
-from tests.testutils import DebianGitTestRepo, OsReleaseFile
+from tests.testutils import (DebianGitTestRepo, OsReleaseFile,
+                             get_dch_default_urgency)
 
 from gbp.scripts import dch
 
 import os
 import re
 
+# Older dch compatibility
+default_urgency = get_dch_default_urgency()
+
 # For Ubuntu compatibility
 os_release = OsReleaseFile('/etc/lsb-release')
 
 # OS release codename and snapshot of version 0.9-2~1
 if os_release['DISTRIB_ID'] == 'Ubuntu':
     os_codename = os_release['DISTRIB_CODENAME']
-    snap_header_0_9 = r'^test-package\s\(0.9-1ubuntu1~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=medium'
+    snap_header_0_9 = r'^test-package\s\(0.9-1ubuntu1~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=%s' % default_urgency
     new_version_0_9 = '0.9-1ubuntu1'
 else:
     os_codename = 'unstable'
-    snap_header_0_9 = r'^test-package\s\(0.9-2~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=medium'
+    snap_header_0_9 = r'^test-package\s\(0.9-2~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=%s' % default_urgency
     new_version_0_9 = '0.9-2'
 # Snapshot of version 1.0-1~1
-snap_header_1 = r'^test-package\s\(1.0-1~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=medium'
+snap_header_1 = r'^test-package\s\(1.0-1~1\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=%s' % default_urgency
 # Snapshot of version 1.0-1~2
-snap_header_1_2 = r'^test-package\s\(1.0-1~2\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=medium'
+snap_header_1_2 = r'^test-package\s\(1.0-1~2\.gbp([0-9a-f]{6})\)\sUNRELEASED;\surgency=%s' % default_urgency
 
 snap_mark = r'\s{2}\*{2}\sSNAPSHOT\sbuild\s@'
 
 deb_tag = "debian/0.9-1"
 deb_tag_msg = "Pre stable release version 0.9-1"
 
-cl_debian = """test-package (0.9-1) unstable; urgency=medium
+cl_debian = """test-package (0.9-1) unstable; urgency=%s
 
   [ Debian Maintainer ]
   * New pre stable upstream release
 
  -- Debian Maintainer <maint@debian.org>  Mon, 17 Oct 2011 10:15:22 +0200
-"""
+""" % default_urgency
 
 
 @unittest.skipIf(not os.path.exists('/usr/bin/dch'), "Dch not found")
@@ -85,7 +89,7 @@ class TestScriptDch(DebianGitTestRepo):
     def test_dch_main_new_upstream_version(self):
         """Test dch.py like git-dch script does: new upstream version"""
         lines = self.run_dch()
-        self.assertEqual("test-package (1.0-1) UNRELEASED; urgency=medium\n", lines[0])
+        self.assertEqual("test-package (1.0-1) UNRELEASED; urgency=%s\n" % default_urgency, lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -93,7 +97,7 @@ class TestScriptDch(DebianGitTestRepo):
         """Test dch.py like git-dch script does: new upstream version - release"""
         options = ["--release"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (1.0-1) %s; urgency=medium\n" % os_codename, lines[0])
+        self.assertEqual("test-package (1.0-1) %s; urgency=%s\n" % (os_codename, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -101,7 +105,7 @@ class TestScriptDch(DebianGitTestRepo):
         """Test dch.py like git-dch script does: new upstream version - guess last commit"""
         options = ["--auto"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (1.0-1) UNRELEASED; urgency=medium\n", lines[0])
+        self.assertEqual("test-package (1.0-1) UNRELEASED; urgency=%s\n" % default_urgency, lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -170,7 +174,7 @@ class TestScriptDch(DebianGitTestRepo):
         """Test dch.py like git-dch script does: new upstream version - auto - release"""
         options = ["--auto", "--release"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (1.0-1) %s; urgency=medium\n" % os_codename, lines[0])
+        self.assertEqual("test-package (1.0-1) %s; urgency=%s\n" % (os_codename, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -196,7 +200,7 @@ class TestScriptDch(DebianGitTestRepo):
         """Test dch.py like git-dch script does: new upstream version - set distribution"""
         options = ["--distribution=testing", "--force-distribution"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (1.0-1) testing; urgency=medium\n", lines[0])
+        self.assertEqual("test-package (1.0-1) testing; urgency=%s\n" % default_urgency, lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -204,7 +208,7 @@ class TestScriptDch(DebianGitTestRepo):
         """Test dch.py like git-dch script does: new upstream version - release - set distribution"""
         options = ["--release", "--distribution=testing", "--force-distribution"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (1.0-1) testing; urgency=medium\n", lines[0])
+        self.assertEqual("test-package (1.0-1) testing; urgency=%s\n" % default_urgency, lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -306,7 +310,7 @@ class TestScriptDch(DebianGitTestRepo):
         self.repo.create_tag("debian/0.9-1", msg="Pre stable release version 0.9-1", commit="HEAD~2")
         self.repo.delete_tag("upstream/1.0")
         lines = self.run_dch()
-        self.assertEqual("test-package (%s) UNRELEASED; urgency=medium\n" % new_version_0_9, lines[0])
+        self.assertEqual("test-package (%s) UNRELEASED; urgency=%s\n" % (new_version_0_9, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -315,7 +319,7 @@ class TestScriptDch(DebianGitTestRepo):
         self.repo.delete_tag("upstream/1.0")
         options = ["--release"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (%s) %s; urgency=medium\n" % (new_version_0_9, os_codename), lines[0])
+        self.assertEqual("test-package (%s) %s; urgency=%s\n" % (new_version_0_9, os_codename, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -324,7 +328,7 @@ class TestScriptDch(DebianGitTestRepo):
         self.repo.delete_tag("upstream/1.0")
         options = ["--auto"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (%s) UNRELEASED; urgency=medium\n" % new_version_0_9, lines[0])
+        self.assertEqual("test-package (%s) UNRELEASED; urgency=%s\n" % (new_version_0_9, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
@@ -345,7 +349,7 @@ class TestScriptDch(DebianGitTestRepo):
         self.repo.delete_tag("upstream/1.0")
         options = ["--auto",  "--release"]
         lines = self.run_dch(options)
-        self.assertEqual("test-package (%s) %s; urgency=medium\n" % (new_version_0_9, os_codename), lines[0])
+        self.assertEqual("test-package (%s) %s; urgency=%s\n" % (new_version_0_9, os_codename, default_urgency), lines[0])
         self.assertIn("""  * added debian/control\n""", lines)
 
 
index c863195..0b935b7 100644 (file)
@@ -3,6 +3,7 @@
 from . import context
 
 import os
+import subprocess
 import unittest
 
 import gbp.log
@@ -87,3 +88,20 @@ class MockedChangeLog(ChangeLog):
         ChangeLog.__init__(self,
                            contents=self.contents % (version, changes))
 
+
+def get_dch_default_urgency():
+    """Determine the default urgency level used by dch"""
+    try:
+        popen = subprocess.Popen(['dch', '--version'], stdout=subprocess.PIPE)
+        out, _err = popen.communicate()
+    except OSError:
+        urgency='medium'
+    else:
+        verstr = out.splitlines()[0].split()[-1]
+        major, minor = verstr.split('.')[0:2]
+        if int(major) <= 2 and int(minor) <= 12:
+            urgency = 'low'
+        else:
+            urgency = 'medium'
+    return urgency
+