Merge lp:click/devel into lp:click

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 630
Merged at revision: 618
Proposed branch: lp:click/devel
Merge into: lp:click
Diff against target: 100 lines (+35/-10)
2 files modified
click/tests/integration/test_signatures.py (+27/-10)
debian/changelog (+8/-0)
To merge this branch: bzr merge lp:click/devel
Reviewer Review Type Date Requested Status
Colin Watson Approve
Review via email: mp+305989@code.launchpad.net

Commit message

Fix debsigs-related autopkgtests.

Description of the change

Fix debsigs-related autopkgtests.

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'click/tests/integration/test_signatures.py'
--- click/tests/integration/test_signatures.py 2016-08-11 10:35:54 +0000
+++ click/tests/integration/test_signatures.py 2016-09-16 17:42:44 +0000
@@ -24,6 +24,7 @@
2424
25import apt25import apt
2626
27from click import osextras
27from .helpers import (28from .helpers import (
28 require_root,29 require_root,
29 ClickTestCase,30 ClickTestCase,
@@ -60,11 +61,15 @@
60 """Sign the click at filepath"""61 """Sign the click at filepath"""
61 env = copy.copy(os.environ)62 env = copy.copy(os.environ)
62 env["GNUPGHOME"] = os.path.abspath(self.gpghome)63 env["GNUPGHOME"] = os.path.abspath(self.gpghome)
63 subprocess.check_call(64 try:
64 ["debsigs",65 subprocess.check_call(
65 "--sign=%s" % signature_type,66 ["debsigs",
66 "--default-key=%s" % self.keyid,67 "--sign=%s" % signature_type,
67 filepath], env=env)68 "--default-key=%s" % self.keyid,
69 filepath], env=env)
70 finally:
71 if osextras.find_on_path("gpgconf"):
72 subprocess.call(["gpgconf", "--kill", "gpg-agent"])
6873
69 def install_signature_policy(self):74 def install_signature_policy(self):
70 """Install/update the system-wide signature policy"""75 """Install/update the system-wide signature policy"""
@@ -179,17 +184,27 @@
179 self.datadir = os.path.join(os.path.dirname(__file__), "data")184 self.datadir = os.path.join(os.path.dirname(__file__), "data")
180 origin_keyring_dir = os.path.abspath(185 origin_keyring_dir = os.path.abspath(
181 os.path.join(self.datadir, "origin-keyring"))186 os.path.join(self.datadir, "origin-keyring"))
182 keyid = get_keyid_from_gpghome(origin_keyring_dir)187 gpghome = self.make_gpghome(origin_keyring_dir)
183 self.debsigs = Debsigs(origin_keyring_dir, keyid)188 keyid = get_keyid_from_gpghome(gpghome)
189 self.debsigs = Debsigs(gpghome, keyid)
184 self.debsigs.install_signature_policy()190 self.debsigs.install_signature_policy()
185191
186 def tearDown(self):192 def tearDown(self):
187 self.debsigs.uninstall_signature_policy()193 self.debsigs.uninstall_signature_policy()
188194
195 def make_gpghome(self, source):
196 gpghome = os.path.join(self.temp_dir, "gnupg")
197 if os.path.exists(gpghome):
198 shutil.rmtree(gpghome)
199 shutil.copytree(source, gpghome)
200 os.chmod(gpghome, 0o700)
201 return gpghome
202
189 def test_debsig_install_valid_signature(self):203 def test_debsig_install_valid_signature(self):
190 name = "org.example.debsig-valid-sig"204 name = "org.example.debsig-valid-sig"
191 path_to_click = self._make_click(name, framework="")205 path_to_click = self._make_click(name, framework="")
192 self.debsigs.sign(path_to_click)206 self.debsigs.sign(path_to_click)
207 subprocess.call(["cp", path_to_click, os.path.join("/home/cjwatson/src/ubuntu/click/click", os.path.basename(path_to_click))])
193 subprocess.check_call(208 subprocess.check_call(
194 [self.click_binary, "install",209 [self.click_binary, "install",
195 "--user=%s" % self.user,210 "--user=%s" % self.user,
@@ -206,8 +221,9 @@
206 name = "org.example.debsig-no-keyring-sig"221 name = "org.example.debsig-no-keyring-sig"
207 path_to_click = self._make_click(name, framework="")222 path_to_click = self._make_click(name, framework="")
208 evil_keyring_dir = os.path.join(self.datadir, "evil-keyring")223 evil_keyring_dir = os.path.join(self.datadir, "evil-keyring")
209 keyid = get_keyid_from_gpghome(evil_keyring_dir)224 gpghome = self.make_gpghome(evil_keyring_dir)
210 debsig_bad = Debsigs(evil_keyring_dir, keyid)225 keyid = get_keyid_from_gpghome(gpghome)
226 debsig_bad = Debsigs(gpghome, keyid)
211 debsig_bad.sign(path_to_click)227 debsig_bad.sign(path_to_click)
212 # and ensure its really not there228 # and ensure its really not there
213 self.assertClickInvalidSignatureError(["install", path_to_click])229 self.assertClickInvalidSignatureError(["install", path_to_click])
@@ -349,7 +365,8 @@
349 good_gpg_origin = f.read()365 good_gpg_origin = f.read()
350 # and append a valid signature from a non-keyring key366 # and append a valid signature from a non-keyring key
351 evil_keyring_dir = os.path.join(self.datadir, "evil-keyring")367 evil_keyring_dir = os.path.join(self.datadir, "evil-keyring")
352 debsig_bad = Debsigs(evil_keyring_dir, "18B38B9AC1B67A0D")368 gpghome = self.make_gpghome(evil_keyring_dir)
369 debsig_bad = Debsigs(gpghome, "18B38B9AC1B67A0D")
353 debsig_bad.sign(path_to_click)370 debsig_bad.sign(path_to_click)
354 subprocess.check_call(371 subprocess.check_call(
355 ["ar", "-x", path_to_click, "_gpgorigin"], cwd=self.temp_dir)372 ["ar", "-x", path_to_click, "_gpgorigin"], cwd=self.temp_dir)
356373
=== modified file 'debian/changelog'
--- debian/changelog 2016-08-28 21:00:53 +0000
+++ debian/changelog 2016-09-16 17:42:44 +0000
@@ -1,3 +1,11 @@
1click (0.4.45.1) UNRELEASED; urgency=medium
2
3 * Kill gpg-agent (if possible) after running debsigs in integration tests.
4 * Copy integration test GPG keyring to a temporary directory so that the
5 GPG agent socket name doesn't end up being too long.
6
7 -- Colin Watson <cjwatson@ubuntu.com> Fri, 16 Sep 2016 18:38:59 +0100
8
1click (0.4.45+16.10.20160828.1-0ubuntu1) yakkety; urgency=medium9click (0.4.45+16.10.20160828.1-0ubuntu1) yakkety; urgency=medium
210
3 * Emit more debugging information when libclickpreload/libgimockpreload11 * Emit more debugging information when libclickpreload/libgimockpreload

Subscribers

People subscribed via source and target branches

to all changes: