Merge lp:~jelmer/bzr-builddeb/version-bytestrings into lp:~jelmer/bzr-builddeb/716854-fix-build

Proposed by Jelmer Vernooij
Status: Superseded
Proposed branch: lp:~jelmer/bzr-builddeb/version-bytestrings
Merge into: lp:~jelmer/bzr-builddeb/716854-fix-build
Diff against target: 157 lines (+49/-13)
4 files modified
cmds.py (+1/-0)
import_dsc.py (+2/-2)
tests/test_upstream.py (+40/-7)
upstream/branch.py (+6/-4)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/version-bytestrings
Reviewer Review Type Date Requested Status
Jelmer Vernooij Pending
Review via email: mp+50514@code.launchpad.net
To post a comment you must log in.
522. By Jelmer Vernooij

Force upstream version to byte string.

Unmerged revisions

522. By Jelmer Vernooij

Force upstream version to byte string.

521. By Jelmer Vernooij

Use upstream version strings as byte strings everywhere, properly convert unicode tags to byte strings.

520. By Jelmer Vernooij

Merge build fixes.

519. By Jelmer Vernooij

Merge addition of more PristineTarSource tests.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmds.py'
2--- cmds.py 2011-02-11 14:29:07 +0000
3+++ cmds.py 2011-02-20 17:17:01 +0000
4@@ -708,6 +708,7 @@
5 package, current_version)
6 if version is None:
7 raise BzrCommandError("You must specify the version number using --version.")
8+ assert isinstance(version, str)
9 note("Using version string %s." % (version))
10 # Look up the revision id from the version string
11 if upstream_revision is None and upstream_branch_source is not None:
12
13=== modified file 'import_dsc.py'
14--- import_dsc.py 2011-02-11 14:29:07 +0000
15+++ import_dsc.py 2011-02-20 17:17:01 +0000
16@@ -1385,8 +1385,8 @@
17 upstream_tip = self.pristine_tar_source.version_as_revision(
18 package, previous_version)
19 self.extract_upstream_tree(upstream_tip, tempdir)
20- elif upstream_branch is not None:
21- upstream_tip = self.upstream_branch_source.version_as_revision(package, previous_version)
22+ elif self.upstream_source is not None:
23+ upstream_tip = self.upstream_source.version_as_revision(package, previous_version)
24 self.extract_upstream_tree(upstream_tip, tempdir)
25 else:
26 raise BzrCommandError("Unable to find the tag for the "
27
28=== modified file 'tests/test_upstream.py'
29--- tests/test_upstream.py 2011-02-04 11:30:52 +0000
30+++ tests/test_upstream.py 2011-02-20 17:17:01 +0000
31@@ -22,6 +22,7 @@
32
33 """Tests for the upstream module."""
34
35+from base64 import standard_b64encode
36
37 import os
38 import tarfile
39@@ -386,7 +387,7 @@
40 """Last revision is tagged - use as upstream version."""
41 self.revhistory = ["somerevid"]
42 self.assertEquals(Version("1.3"),
43- _upstream_branch_version(self.revhistory, {"somerevid": ["1.3"]}, "bla", "1.2", self.get_suffix))
44+ _upstream_branch_version(self.revhistory, {"somerevid": [u"1.3"]}, "bla", "1.2", self.get_suffix))
45
46 def test_refresh_snapshot_pre(self):
47 self.revhistory = ["oldrevid", "somerevid"]
48@@ -402,25 +403,28 @@
49 self.revhistory = ["oldrevid", "somerevid", "newrevid"]
50 self.assertEquals(Version("1.3+bzr3"),
51 _upstream_branch_version(self.revhistory,
52- {"somerevid": ["1.3"]}, "bla", "1.2+bzr1", self.get_suffix))
53+ {"somerevid": [u"1.3"]}, "bla", "1.2+bzr1", self.get_suffix))
54
55
56 class TestUpstreamTagToVersion(TestCase):
57
58 def test_prefix(self):
59- self.assertEquals(Version("5.0"), upstream_tag_to_version("release-5.0"))
60+ self.assertEquals(Version("5.0"), upstream_tag_to_version(u"release-5.0"))
61
62 def test_gibberish(self):
63- self.assertIs(None, upstream_tag_to_version("blabla"))
64+ self.assertIs(None, upstream_tag_to_version(u"blabla"))
65
66 def test_vprefix(self):
67- self.assertEquals(Version("2.0"), upstream_tag_to_version("v2.0"))
68+ self.assertEquals("2.0", upstream_tag_to_version(u"v2.0"))
69
70 def test_plain(self):
71- self.assertEquals(Version("2.0"), upstream_tag_to_version("2.0"))
72+ self.assertEquals("2.0", upstream_tag_to_version(u"2.0"))
73
74 def test_package_prefix(self):
75- self.assertEquals(Version("42.0"), upstream_tag_to_version("bla-42.0", "bla"))
76+ self.assertEquals("42.0", upstream_tag_to_version(u"bla-42.0", "bla"))
77+
78+ def test_unicode(self):
79+ self.assertEquals("42.0\xc2\xa9", upstream_tag_to_version("bla-42.0\xc2\xa9".decode("utf-8"), "bla"))
80
81
82 class TestUpstreamVersionAddRevision(TestCaseWithTransport):
83@@ -531,11 +535,40 @@
84 self.assertEqual(self.source.tag_name(upstream_v_no),
85 "upstream-" + upstream_v_no)
86
87+ def test_tag_name_distro(self):
88+ self.assertEquals(self.source.tag_name("0.3", "ubuntu"),
89+ "upstream-ubuntu-0.3")
90+
91 def test_version(self):
92 self.assertEquals(['upstream-3.3', 'upstream-debian-3.3',
93 'upstream-ubuntu-3.3', 'upstream/3.3'],
94 self.source.possible_tag_names("3.3"))
95
96+ def test_pristine_tar_format_gz(self):
97+ rev = Revision("myrevid")
98+ rev.properties["deb-pristine-delta"] = "1"
99+ self.assertEquals("gz", self.source.pristine_tar_format(rev))
100+
101+ def test_pristine_tar_format_bz2(self):
102+ rev = Revision("myrevid")
103+ rev.properties["deb-pristine-delta-bz2"] = "1"
104+ self.assertEquals("bz2", self.source.pristine_tar_format(rev))
105+
106+ def test_pristine_tar_format_unknown(self):
107+ rev = Revision("myrevid")
108+ self.assertRaises(AssertionError,
109+ self.source.pristine_tar_format, rev)
110+
111+ def test_pristine_tar_delta_unknown(self):
112+ rev = Revision("myrevid")
113+ self.assertRaises(AssertionError,
114+ self.source.pristine_tar_delta, rev)
115+
116+ def test_pristine_tar_delta_gz(self):
117+ rev = Revision("myrevid")
118+ rev.properties["deb-pristine-delta"] = standard_b64encode("bla")
119+ self.assertEquals("bla", self.source.pristine_tar_delta(rev))
120+
121
122 class TarfileSourceTests(TestCaseWithTransport):
123 """Tests for TarfileSource."""
124
125=== modified file 'upstream/branch.py'
126--- upstream/branch.py 2011-01-29 01:03:18 +0000
127+++ upstream/branch.py 2011-02-20 17:17:01 +0000
128@@ -33,16 +33,17 @@
129
130 def upstream_tag_to_version(tag_name, package=None):
131 """Take a tag name and return the upstream version, or None."""
132+ assert isinstance(tag_name, unicode)
133 if (package is not None and (
134 tag_name.startswith("%s-" % package) or
135 tag_name.startswith("%s_" % package))):
136- return tag_name[len(package)+1:]
137+ return tag_name[len(package)+1:].encode("utf-8")
138 if tag_name.startswith("release-"):
139- return tag_name[len("release-"):]
140+ return tag_name[len("release-"):].encode("utf-8")
141 if tag_name[0] == "v" and tag_name[1].isdigit():
142- return tag_name[1:]
143+ return tag_name[1:].encode("utf-8")
144 if all([c.isdigit() or c in (".", "~") for c in tag_name]):
145- return tag_name
146+ return tag_name.encode("utf-8")
147 return None
148
149
150@@ -227,6 +228,7 @@
151 self.upstream_revision_map = upstream_revision_map
152
153 def version_as_revision(self, package, version):
154+ assert isinstance(version, str)
155 if version in self.upstream_revision_map:
156 return self.upstream_revision_map[version]
157 revspec = get_export_upstream_revision(self.config,

Subscribers

People subscribed via source and target branches

to all changes: