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
=== modified file 'cmds.py'
--- cmds.py 2011-02-11 14:29:07 +0000
+++ cmds.py 2011-02-20 23:57:35 +0000
@@ -323,7 +323,7 @@
323 upstream_revision = upstream_branch.last_revision()323 upstream_revision = upstream_branch.last_revision()
324 else:324 else:
325 upstream_revision = upstream_source.version_as_revision(325 upstream_revision = upstream_source.version_as_revision(
326 version)326 None, version.upstream_version.encode("utf-8"))
327 finally:327 finally:
328 upstream_branch.unlock()328 upstream_branch.unlock()
329 return (upstream_branch, upstream_revision)329 return (upstream_branch, upstream_revision)
@@ -708,6 +708,7 @@
708 package, current_version)708 package, current_version)
709 if version is None:709 if version is None:
710 raise BzrCommandError("You must specify the version number using --version.")710 raise BzrCommandError("You must specify the version number using --version.")
711 assert isinstance(version, str)
711 note("Using version string %s." % (version))712 note("Using version string %s." % (version))
712 # Look up the revision id from the version string713 # Look up the revision id from the version string
713 if upstream_revision is None and upstream_branch_source is not None:714 if upstream_revision is None and upstream_branch_source is not None:
714715
=== modified file 'import_dsc.py'
--- import_dsc.py 2011-02-11 14:29:07 +0000
+++ import_dsc.py 2011-02-20 23:57:35 +0000
@@ -1385,8 +1385,8 @@
1385 upstream_tip = self.pristine_tar_source.version_as_revision(1385 upstream_tip = self.pristine_tar_source.version_as_revision(
1386 package, previous_version)1386 package, previous_version)
1387 self.extract_upstream_tree(upstream_tip, tempdir)1387 self.extract_upstream_tree(upstream_tip, tempdir)
1388 elif upstream_branch is not None:1388 elif self.upstream_source is not None:
1389 upstream_tip = self.upstream_branch_source.version_as_revision(package, previous_version)1389 upstream_tip = self.upstream_source.version_as_revision(package, previous_version)
1390 self.extract_upstream_tree(upstream_tip, tempdir)1390 self.extract_upstream_tree(upstream_tip, tempdir)
1391 else:1391 else:
1392 raise BzrCommandError("Unable to find the tag for the "1392 raise BzrCommandError("Unable to find the tag for the "
13931393
=== modified file 'tests/test_upstream.py'
--- tests/test_upstream.py 2011-02-11 14:21:19 +0000
+++ tests/test_upstream.py 2011-02-20 23:57:35 +0000
@@ -387,7 +387,7 @@
387 """Last revision is tagged - use as upstream version."""387 """Last revision is tagged - use as upstream version."""
388 self.revhistory = ["somerevid"]388 self.revhistory = ["somerevid"]
389 self.assertEquals(Version("1.3"),389 self.assertEquals(Version("1.3"),
390 _upstream_branch_version(self.revhistory, {"somerevid": ["1.3"]}, "bla", "1.2", self.get_suffix))390 _upstream_branch_version(self.revhistory, {"somerevid": [u"1.3"]}, "bla", "1.2", self.get_suffix))
391391
392 def test_refresh_snapshot_pre(self):392 def test_refresh_snapshot_pre(self):
393 self.revhistory = ["oldrevid", "somerevid"]393 self.revhistory = ["oldrevid", "somerevid"]
@@ -403,25 +403,28 @@
403 self.revhistory = ["oldrevid", "somerevid", "newrevid"]403 self.revhistory = ["oldrevid", "somerevid", "newrevid"]
404 self.assertEquals(Version("1.3+bzr3"),404 self.assertEquals(Version("1.3+bzr3"),
405 _upstream_branch_version(self.revhistory,405 _upstream_branch_version(self.revhistory,
406 {"somerevid": ["1.3"]}, "bla", "1.2+bzr1", self.get_suffix))406 {"somerevid": [u"1.3"]}, "bla", "1.2+bzr1", self.get_suffix))
407407
408408
409class TestUpstreamTagToVersion(TestCase):409class TestUpstreamTagToVersion(TestCase):
410410
411 def test_prefix(self):411 def test_prefix(self):
412 self.assertEquals(Version("5.0"), upstream_tag_to_version("release-5.0"))412 self.assertEquals(Version("5.0"), upstream_tag_to_version(u"release-5.0"))
413413
414 def test_gibberish(self):414 def test_gibberish(self):
415 self.assertIs(None, upstream_tag_to_version("blabla"))415 self.assertIs(None, upstream_tag_to_version(u"blabla"))
416416
417 def test_vprefix(self):417 def test_vprefix(self):
418 self.assertEquals(Version("2.0"), upstream_tag_to_version("v2.0"))418 self.assertEquals("2.0", upstream_tag_to_version(u"v2.0"))
419419
420 def test_plain(self):420 def test_plain(self):
421 self.assertEquals(Version("2.0"), upstream_tag_to_version("2.0"))421 self.assertEquals("2.0", upstream_tag_to_version(u"2.0"))
422422
423 def test_package_prefix(self):423 def test_package_prefix(self):
424 self.assertEquals(Version("42.0"), upstream_tag_to_version("bla-42.0", "bla"))424 self.assertEquals("42.0", upstream_tag_to_version(u"bla-42.0", "bla"))
425
426 def test_unicode(self):
427 self.assertEquals("42.0\xc2\xa9", upstream_tag_to_version("bla-42.0\xc2\xa9".decode("utf-8"), "bla"))
425428
426429
427class TestUpstreamVersionAddRevision(TestCaseWithTransport):430class TestUpstreamVersionAddRevision(TestCaseWithTransport):
428431
=== modified file 'upstream/branch.py'
--- upstream/branch.py 2011-01-29 01:03:18 +0000
+++ upstream/branch.py 2011-02-20 23:57:35 +0000
@@ -33,16 +33,17 @@
3333
34def upstream_tag_to_version(tag_name, package=None):34def upstream_tag_to_version(tag_name, package=None):
35 """Take a tag name and return the upstream version, or None."""35 """Take a tag name and return the upstream version, or None."""
36 assert isinstance(tag_name, unicode)
36 if (package is not None and (37 if (package is not None and (
37 tag_name.startswith("%s-" % package) or38 tag_name.startswith("%s-" % package) or
38 tag_name.startswith("%s_" % package))):39 tag_name.startswith("%s_" % package))):
39 return tag_name[len(package)+1:]40 return tag_name[len(package)+1:].encode("utf-8")
40 if tag_name.startswith("release-"):41 if tag_name.startswith("release-"):
41 return tag_name[len("release-"):]42 return tag_name[len("release-"):].encode("utf-8")
42 if tag_name[0] == "v" and tag_name[1].isdigit():43 if tag_name[0] == "v" and tag_name[1].isdigit():
43 return tag_name[1:]44 return tag_name[1:].encode("utf-8")
44 if all([c.isdigit() or c in (".", "~") for c in tag_name]):45 if all([c.isdigit() or c in (".", "~") for c in tag_name]):
45 return tag_name46 return tag_name.encode("utf-8")
46 return None47 return None
4748
4849
@@ -227,6 +228,7 @@
227 self.upstream_revision_map = upstream_revision_map228 self.upstream_revision_map = upstream_revision_map
228229
229 def version_as_revision(self, package, version):230 def version_as_revision(self, package, version):
231 assert isinstance(version, str)
230 if version in self.upstream_revision_map:232 if version in self.upstream_revision_map:
231 return self.upstream_revision_map[version]233 return self.upstream_revision_map[version]
232 revspec = get_export_upstream_revision(self.config,234 revspec = get_export_upstream_revision(self.config,

Subscribers

People subscribed via source and target branches