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

Proposed by Jelmer Vernooij
Status: Merged
Merged at revision: 522
Proposed branch: lp:~jelmer/bzr-builddeb/version-bytestrings
Merge into: lp:bzr-builddeb
Diff against target: 117 lines (+20/-14)
4 files modified
cmds.py (+2/-1)
import_dsc.py (+2/-2)
tests/test_upstream.py (+10/-7)
upstream/branch.py (+6/-4)
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/version-bytestrings
Reviewer Review Type Date Requested Status
James Westby Approve
Jelmer Vernooij Pending
Review via email: mp+50515@code.launchpad.net

Description of the change

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

To post a comment you must log in.
522. By Jelmer Vernooij

Force upstream version to byte string.

Revision history for this message
James Westby (james-w) :
review: Approve

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 23:57:35 +0000
4@@ -323,7 +323,7 @@
5 upstream_revision = upstream_branch.last_revision()
6 else:
7 upstream_revision = upstream_source.version_as_revision(
8- version)
9+ None, version.upstream_version.encode("utf-8"))
10 finally:
11 upstream_branch.unlock()
12 return (upstream_branch, upstream_revision)
13@@ -708,6 +708,7 @@
14 package, current_version)
15 if version is None:
16 raise BzrCommandError("You must specify the version number using --version.")
17+ assert isinstance(version, str)
18 note("Using version string %s." % (version))
19 # Look up the revision id from the version string
20 if upstream_revision is None and upstream_branch_source is not None:
21
22=== modified file 'import_dsc.py'
23--- import_dsc.py 2011-02-11 14:29:07 +0000
24+++ import_dsc.py 2011-02-20 23:57:35 +0000
25@@ -1385,8 +1385,8 @@
26 upstream_tip = self.pristine_tar_source.version_as_revision(
27 package, previous_version)
28 self.extract_upstream_tree(upstream_tip, tempdir)
29- elif upstream_branch is not None:
30- upstream_tip = self.upstream_branch_source.version_as_revision(package, previous_version)
31+ elif self.upstream_source is not None:
32+ upstream_tip = self.upstream_source.version_as_revision(package, previous_version)
33 self.extract_upstream_tree(upstream_tip, tempdir)
34 else:
35 raise BzrCommandError("Unable to find the tag for the "
36
37=== modified file 'tests/test_upstream.py'
38--- tests/test_upstream.py 2011-02-11 14:21:19 +0000
39+++ tests/test_upstream.py 2011-02-20 23:57:35 +0000
40@@ -387,7 +387,7 @@
41 """Last revision is tagged - use as upstream version."""
42 self.revhistory = ["somerevid"]
43 self.assertEquals(Version("1.3"),
44- _upstream_branch_version(self.revhistory, {"somerevid": ["1.3"]}, "bla", "1.2", self.get_suffix))
45+ _upstream_branch_version(self.revhistory, {"somerevid": [u"1.3"]}, "bla", "1.2", self.get_suffix))
46
47 def test_refresh_snapshot_pre(self):
48 self.revhistory = ["oldrevid", "somerevid"]
49@@ -403,25 +403,28 @@
50 self.revhistory = ["oldrevid", "somerevid", "newrevid"]
51 self.assertEquals(Version("1.3+bzr3"),
52 _upstream_branch_version(self.revhistory,
53- {"somerevid": ["1.3"]}, "bla", "1.2+bzr1", self.get_suffix))
54+ {"somerevid": [u"1.3"]}, "bla", "1.2+bzr1", self.get_suffix))
55
56
57 class TestUpstreamTagToVersion(TestCase):
58
59 def test_prefix(self):
60- self.assertEquals(Version("5.0"), upstream_tag_to_version("release-5.0"))
61+ self.assertEquals(Version("5.0"), upstream_tag_to_version(u"release-5.0"))
62
63 def test_gibberish(self):
64- self.assertIs(None, upstream_tag_to_version("blabla"))
65+ self.assertIs(None, upstream_tag_to_version(u"blabla"))
66
67 def test_vprefix(self):
68- self.assertEquals(Version("2.0"), upstream_tag_to_version("v2.0"))
69+ self.assertEquals("2.0", upstream_tag_to_version(u"v2.0"))
70
71 def test_plain(self):
72- self.assertEquals(Version("2.0"), upstream_tag_to_version("2.0"))
73+ self.assertEquals("2.0", upstream_tag_to_version(u"2.0"))
74
75 def test_package_prefix(self):
76- self.assertEquals(Version("42.0"), upstream_tag_to_version("bla-42.0", "bla"))
77+ self.assertEquals("42.0", upstream_tag_to_version(u"bla-42.0", "bla"))
78+
79+ def test_unicode(self):
80+ self.assertEquals("42.0\xc2\xa9", upstream_tag_to_version("bla-42.0\xc2\xa9".decode("utf-8"), "bla"))
81
82
83 class TestUpstreamVersionAddRevision(TestCaseWithTransport):
84
85=== modified file 'upstream/branch.py'
86--- upstream/branch.py 2011-01-29 01:03:18 +0000
87+++ upstream/branch.py 2011-02-20 23:57:35 +0000
88@@ -33,16 +33,17 @@
89
90 def upstream_tag_to_version(tag_name, package=None):
91 """Take a tag name and return the upstream version, or None."""
92+ assert isinstance(tag_name, unicode)
93 if (package is not None and (
94 tag_name.startswith("%s-" % package) or
95 tag_name.startswith("%s_" % package))):
96- return tag_name[len(package)+1:]
97+ return tag_name[len(package)+1:].encode("utf-8")
98 if tag_name.startswith("release-"):
99- return tag_name[len("release-"):]
100+ return tag_name[len("release-"):].encode("utf-8")
101 if tag_name[0] == "v" and tag_name[1].isdigit():
102- return tag_name[1:]
103+ return tag_name[1:].encode("utf-8")
104 if all([c.isdigit() or c in (".", "~") for c in tag_name]):
105- return tag_name
106+ return tag_name.encode("utf-8")
107 return None
108
109
110@@ -227,6 +228,7 @@
111 self.upstream_revision_map = upstream_revision_map
112
113 def version_as_revision(self, package, version):
114+ assert isinstance(version, str)
115 if version in self.upstream_revision_map:
116 return self.upstream_revision_map[version]
117 revspec = get_export_upstream_revision(self.config,

Subscribers

People subscribed via source and target branches