Merge lp:~cjwatson/launchpad/control-tar-xz into lp:launchpad

Proposed by Colin Watson
Status: Merged
Merged at revision: 18257
Proposed branch: lp:~cjwatson/launchpad/control-tar-xz
Merge into: lp:launchpad
Diff against target: 80 lines (+25/-13)
2 files modified
lib/lp/archiveuploader/nascentuploadfile.py (+3/-3)
lib/lp/archiveuploader/tests/test_nascentuploadfile.py (+22/-10)
To merge this branch: bzr merge lp:~cjwatson/launchpad/control-tar-xz
Reviewer Review Type Date Requested Status
William Grant code Approve
Review via email: mp+310364@code.launchpad.net

Commit message

Accept .debs containing control.tar.xz.

To post a comment you must log in.
Revision history for this message
William Grant (wgrant) :
review: Approve (code)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/lp/archiveuploader/nascentuploadfile.py'
2--- lib/lp/archiveuploader/nascentuploadfile.py 2016-05-31 12:45:18 +0000
3+++ lib/lp/archiveuploader/nascentuploadfile.py 2016-11-08 20:32:48 +0000
4@@ -722,10 +722,10 @@
5 yield UploadError(
6 "%s: first chunk is %s, expected debian-binary." % (
7 self.filename, debian_binary))
8- if control_tar != "control.tar.gz":
9+ if control_tar not in ("control.tar.gz", "control.tar.xz"):
10 yield UploadError(
11- "%s: second chunk is %s, expected control.tar.gz." % (
12- self.filename, control_tar))
13+ "%s: second chunk is %s, expected control.tar.gz or "
14+ "control.tar.xz." % (self.filename, control_tar))
15 if data_tar not in ("data.tar.gz", "data.tar.bz2", "data.tar.lzma",
16 "data.tar.xz"):
17 yield UploadError(
18
19=== modified file 'lib/lp/archiveuploader/tests/test_nascentuploadfile.py'
20--- lib/lp/archiveuploader/tests/test_nascentuploadfile.py 2016-05-09 18:05:06 +0000
21+++ lib/lp/archiveuploader/tests/test_nascentuploadfile.py 2016-11-08 20:32:48 +0000
22@@ -360,13 +360,13 @@
23 "protocols",
24 }
25
26- def createDeb(self, filename, data_format, members=None):
27+ def createDeb(self, filename, control_format, data_format, members=None):
28 """Return the contents of a dummy .deb file."""
29 tempdir = self.makeTemporaryDirectory()
30 if members is None:
31 members = [
32 "debian-binary",
33- "control.tar.gz",
34+ "control.tar.%s" % control_format,
35 "data.tar.%s" % data_format,
36 ]
37 for member in members:
38@@ -379,10 +379,13 @@
39
40 def createDebBinaryUploadFile(self, filename, component_and_section,
41 priority_name, package, version, changes,
42- data_format=None, members=None):
43+ control_format=None, data_format=None,
44+ members=None):
45 """Create a DebBinaryUploadFile."""
46- if data_format is not None or members is not None:
47- data = self.createDeb(filename, data_format, members=members)
48+ if (control_format is not None or data_format is not None or
49+ members is not None):
50+ data = self.createDeb(
51+ filename, control_format, data_format, members=members)
52 else:
53 data = "DUMMY DATA"
54 (path, md5, sha1, size) = self.writeUploadFile(filename, data)
55@@ -408,11 +411,20 @@
56 self.assertEquals("0.42", uploadfile.source_version)
57 self.assertEquals("0.42", uploadfile.control_version)
58
59- def test_verifyFormat_xz(self):
60- # verifyFormat accepts xz-compressed .debs.
61- uploadfile = self.createDebBinaryUploadFile(
62- "foo_0.42_i386.deb", "main/python", "unknown", "mypkg", "0.42",
63- None, data_format="xz")
64+ def test_verifyFormat_control_xz(self):
65+ # verifyFormat accepts .debs with an xz-compressed control member.
66+ uploadfile = self.createDebBinaryUploadFile(
67+ "foo_0.42_i386.deb", "main/python", "unknown", "mypkg", "0.42",
68+ None, control_format="xz", data_format="gz")
69+ control = self.getBaseControl()
70+ uploadfile.parseControl(control)
71+ self.assertEqual([], list(uploadfile.verifyFormat()))
72+
73+ def test_verifyFormat_data_xz(self):
74+ # verifyFormat accepts .debs with an xz-compressed data member.
75+ uploadfile = self.createDebBinaryUploadFile(
76+ "foo_0.42_i386.deb", "main/python", "unknown", "mypkg", "0.42",
77+ None, control_format="gz", data_format="xz")
78 control = self.getBaseControl()
79 uploadfile.parseControl(control)
80 self.assertEqual([], list(uploadfile.verifyFormat()))