Rev 637: Fix some tests. in file:///data/jelmer/bzr-svn/noschemes/
Jelmer Vernooij
jelmer at samba.org
Sun Feb 3 14:41:07 GMT 2008
At file:///data/jelmer/bzr-svn/noschemes/
------------------------------------------------------------
revno: 637
revision-id:jelmer at samba.org-20080203144105-gwb7gr0y3lgvakuc
parent: jelmer at samba.org-20080203030833-2zzst4srn6utbxf2
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: noschemes
timestamp: Sun 2008-02-03 15:41:05 +0100
message:
Fix some tests.
modified:
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
fileids.py fileids.py-20060714013623-u5iiyqqnko11grcf-1
mapping.py mapping.py-20080128201303-6cp01phc0dmc0kiv-1
tests/test_branch.py test_branch.py-20060508162215-74ffeb5d608f8e20
tests/test_fetch.py test_fetch.py-20070624210302-luvgwjmlfysk5qeq-1
tests/test_fileids.py test_fileids.py-20060622131341-19gyrlgqy8yl2od5-1
tests/test_mapping.py test_mapping.py-20080201131338-0zd86eznn4bojtee-1
tests/test_repos.py test_repos.py-20060508151940-ddc49a59257ca712
tests/test_revids.py test_revids.py-20070516230044-d7x872cqi7xb4eow-1
tests/test_upgrade.py test_upgrade.py-20070106170128-64zt3eqggg4tng1c-1
tests/test_workingtree.py test_workingtree.py-20060622191524-0di7bc3q1ckdbybb-1
=== modified file 'fetch.py'
--- a/fetch.py 2008-02-03 03:08:33 +0000
+++ b/fetch.py 2008-02-03 14:41:05 +0000
@@ -29,7 +29,6 @@
import svn.core
from bzrlib.plugins.svn.errors import InvalidFileName
-from fileids import generate_file_id
from mapping import (SVN_PROP_BZR_ANCESTRY, SVN_PROP_BZR_MERGE,
SVN_PROP_BZR_PREFIX, SVN_PROP_BZR_REVISION_INFO,
SVN_PROP_BZR_BRANCHING_SCHEME, SVN_PROP_BZR_REVISION_ID,
@@ -128,7 +127,7 @@
if self.old_inventory.root is None:
# First time the root is set
old_file_id = None
- file_id = generate_file_id(self.source, self.revid, u"")
+ file_id = self.mapping.generate_file_id(self.source.uuid, self.revnum, self.branch_path, u"")
self.dir_baserev[file_id] = []
else:
assert self.old_inventory.root.revision is not None
@@ -165,7 +164,7 @@
assert isinstance(parent_id, str)
if self.id_map.has_key(new_path):
return self.id_map[new_path]
- return generate_file_id(self.source, self.revid, new_path)
+ return self.mapping.generate_file_id(self.source.uuid, self.revnum, self.branch_path, new_path)
def _rename(self, file_id, parent_id, path):
assert isinstance(path, unicode)
=== modified file 'fileids.py'
--- a/fileids.py 2008-02-03 03:08:33 +0000
+++ b/fileids.py 2008-02-03 14:41:05 +0000
@@ -25,25 +25,6 @@
from mapping import escape_svn_path
-def generate_file_id(repos, revid, inv_path):
- """Generate a file id for a path created in a specific revision.
-
- :note: This should not necessarily be the revnum in which the
- node first appeared in Subversion, but the revnum in which
- bzr-svn required a new file identity to be created.
-
- :param repos: Repository object.
- :param revid: bzr-svn revision id for the revision in which the path first
- appeared.
- :param inv_path: Inventory path in the specified revision.
- :return: A file id
- """
- assert isinstance(revid, str)
- assert isinstance(inv_path, unicode)
- (branch, revnum, mapping) = repos.lookup_revision_id(revid)
- return mapping.generate_file_id(repos.uuid, revnum, branch, inv_path)
-
-
def get_local_changes(paths, mapping, generate_revid, get_children=None):
new_paths = {}
for p in sorted(paths.keys()):
@@ -122,10 +103,8 @@
else:
get_children = None
- revid = self.repos.generate_revision_id(revnum, branch, mapping)
-
def new_file_id(x):
- return generate_file_id(self.repos, revid, x)
+ return mapping.generate_file_id(self.repos.uuid, revnum, branch, x)
idmap = self._apply_changes(new_file_id, changes, get_children)
idmap.update(renames)
@@ -141,10 +120,13 @@
return {"": (mapping.generate_file_id(uuid, revnum, branch, u""),
self.repos.generate_revision_id(revnum, branch, mapping))}
+ quickrevidmap = {}
+
# No history -> empty map
for (bp, paths, rev) in self.repos.follow_branch_history(branch,
revnum, mapping):
revid = self.repos.generate_revision_id(rev, bp, mapping)
+ quickrevidmap[revid] = (rev, bp)
try:
map = self.load(revid)
# found the nearest cached map
@@ -178,14 +160,15 @@
pb.update('generating file id map', i, len(todo))
def find_children(path, revid):
- (bp, revnum, mapping) = self.repos.lookup_revision_id(revid)
+ (revnum, bp) = quickrevidmap[revid]
for p in log_find_children(bp+"/"+path, revnum):
yield mapping.unprefix(bp, p)
parent_revs = next_parent_revs
def new_file_id(x):
- return generate_file_id(self.repos, revid, x)
+ (revnum, branch) = quickrevidmap[revid]
+ return mapping.generate_file_id(self.repos.uuid, revnum, branch, x)
revmap = self._apply_changes(new_file_id, changes, find_children)
revmap.update(renames_cb(revid))
=== modified file 'mapping.py'
--- a/mapping.py 2008-02-03 03:08:33 +0000
+++ b/mapping.py 2008-02-03 14:41:05 +0000
@@ -21,7 +21,7 @@
import calendar
import errors
-from scheme import BranchingScheme
+from scheme import BranchingScheme, guess_scheme_from_branch_path
import sha
import svn
import time
@@ -374,6 +374,9 @@
def generate_revision_id(self, uuid, revnum, path):
return "svn-v1:%d@%s-%s" % (revnum, uuid, escape_svn_path(path))
+ def __eq__(self, other):
+ return type(self) == type(other)
+
class BzrSvnMappingv2(BzrSvnMapping):
"""The second version of the mappings as used in the 0.3.x series.
@@ -394,6 +397,9 @@
def generate_revision_id(self, uuid, revnum, path):
return "svn-v2:%d@%s-%s" % (revnum, uuid, escape_svn_path(path))
+ def __eq__(self, other):
+ return type(self) == type(other)
+
def parse_fileid_property(text):
ret = {}
@@ -442,7 +448,7 @@
# Some older versions of bzr-svn 0.4 did not always set a branching
# scheme but set "undefined" instead.
if scheme == "undefined":
- scheme = BranchingScheme.guess_scheme_from_branch_path(branch_path)
+ scheme = guess_scheme_from_branch_path(branch_path)
else:
scheme = BranchingScheme.find_scheme(scheme)
@@ -621,6 +627,9 @@
assert branch_path == bp
return np
+ def __eq__(self, other):
+ return type(self) == type(other) and self.scheme == other.scheme
+
class BzrSvnMappingv4:
@staticmethod
@@ -695,6 +704,9 @@
def is_tag(self, tag_path):
return True
+ def __eq__(self, other):
+ return type(self) == type(other)
+
class BzrSvnMappingHybrid:
@staticmethod
=== modified file 'tests/test_branch.py'
--- a/tests/test_branch.py 2008-01-28 22:52:09 +0000
+++ b/tests/test_branch.py 2008-02-03 14:41:05 +0000
@@ -27,7 +27,7 @@
from branch import FakeControlFiles, SvnBranchFormat
from convert import load_dumpfile
-from mapping import default_mapping, MAPPING_VERSION, SVN_PROP_BZR_REVISION_ID
+from mapping import MAPPING_VERSION, SVN_PROP_BZR_REVISION_ID
from tests import TestCaseWithSubversionRepository
class WorkingSubversionBranch(TestCaseWithSubversionRepository):
@@ -486,18 +486,18 @@
newbranch = newdir.open_branch()
+ oldbranch = Branch.open(url)
+
uuid = "6f95bc5c-e18d-4021-aca8-49ed51dbcb75"
newbranch.lock_read()
- tree = newbranch.repository.revision_tree(
- default_mapping.generate_revision_id(uuid, 7, "branches/foobranch",
- "trunk0"))
+ tree = newbranch.repository.revision_tree(oldbranch.generate_revision_id(7))
weave = newbranch.repository.weave_store.get_weave(
tree.inventory.path2id("hosts"),
newbranch.repository.get_transaction())
self.assertEqual(set([
- default_mapping.generate_revision_id(uuid, 6, "branches/foobranch", "trunk0"),
- default_mapping.generate_revision_id(uuid, 7, "branches/foobranch", "trunk0")]),
+ oldbranch.generate_revision_id(6),
+ oldbranch.generate_revision_id(7)]),
set(weave.versions()))
newbranch.unlock()
@@ -535,10 +535,11 @@
newdir = olddir.sprout("new")
newbranch = newdir.open_branch()
+ oldbranch = olddir.open_branch()
uuid = olddir.find_repository().uuid
tree = newbranch.repository.revision_tree(
- default_mapping.generate_revision_id(uuid, 6, "branches/foobranch", "trunk0"))
+ oldbranch.generate_revision_id(6))
transaction = newbranch.repository.get_transaction()
newbranch.repository.lock_read()
weave = newbranch.repository.weave_store.get_weave(
@@ -547,7 +548,7 @@
default_mapping.generate_revision_id(uuid, 1, "trunk", "trunk0"),
default_mapping.generate_revision_id(uuid, 2, "trunk", "trunk0"),
default_mapping.generate_revision_id(uuid, 3, "trunk", "trunk0"),
- default_mapping.generate_revision_id(uuid, 6, "branches/foobranch", "trunk0")]),
+ oldbranch.generate_revision_id(6)]),
set(weave.versions()))
newbranch.repository.unlock()
=== modified file 'tests/test_fetch.py'
--- a/tests/test_fetch.py 2008-02-01 16:33:57 +0000
+++ b/tests/test_fetch.py 2008-02-03 14:41:05 +0000
@@ -27,7 +27,6 @@
from convert import load_dumpfile
from bzrlib.plugins.svn.errors import InvalidFileName
-from fileids import generate_file_id
import format
from mapping import default_mapping
import remote
=== modified file 'tests/test_fileids.py'
--- a/tests/test_fileids.py 2008-01-31 23:04:12 +0000
+++ b/tests/test_fileids.py 2008-02-03 14:41:05 +0000
@@ -23,7 +23,7 @@
import sha
-from fileids import SimpleFileIdMap, generate_file_id
+from fileids import SimpleFileIdMap
from mapping import default_mapping
from scheme import TrunkBranchingScheme
from tests import TestCaseWithSubversionRepository
@@ -162,39 +162,40 @@
def setUp(self):
super(TestCase, self).setUp()
self.repos = MockRepo()
+ self.mapping = default_mapping
def test_generate_file_id_root(self):
- self.assertEqual("2 at uuid:bp:", generate_file_id(self.repos, default_mapping.generate_revision_id("uuid", 2, "bp", "bla"), u""))
+ self.assertEqual("2 at uuid:bp:", generate_file_id(self.repos, self.mapping.generate_revision_id("uuid", 2, "bp", "bla"), u""))
def test_generate_file_id_path(self):
self.assertEqual("2 at uuid:bp:mypath",
- generate_file_id(self.repos, default_mapping.generate_revision_id("uuid", 2, "bp", "bla"), u"mypath"))
+ generate_file_id(self.repos, self.mapping.generate_revision_id("uuid", 2, "bp", "bla"), u"mypath"))
def test_generate_file_id_long(self):
dir = "this/is/a" + ("/very"*40) + "/long/path/"
self.assertEqual("2 at uuid:bp;" + sha1(dir+"filename"),
- generate_file_id(self.repos, default_mapping.generate_revision_id("uuid", 2, "bp", "bla"), dir+u"filename"))
+ generate_file_id(self.repos, self.mapping.generate_revision_id("uuid", 2, "bp", "bla"), dir+u"filename"))
def test_generate_file_id_long_nordic(self):
dir = "this/is/a" + ("/very"*40) + "/long/path/"
self.assertEqual("2 at uuid:bp;" + sha1((dir+u"filename\x2c\x8a").encode('utf-8')),
- generate_file_id(self.repos, default_mapping.generate_revision_id("uuid", 2, "bp", "bla"), dir+u"filename\x2c\x8a"))
+ generate_file_id(self.repos, self.mapping.generate_revision_id("uuid", 2, "bp", "bla"), dir+u"filename\x2c\x8a"))
def test_generate_file_id_special_char(self):
self.assertEqual("2 at uuid:bp:mypath%2C%C2%8A",
- generate_file_id(self.repos, default_mapping.generate_revision_id("uuid", 2, "bp","bla"), u"mypath\x2c\x8a"))
+ generate_file_id(self.repos, self.mapping.generate_revision_id("uuid", 2, "bp","bla"), u"mypath\x2c\x8a"))
def test_generate_svn_file_id(self):
self.assertEqual("2 at uuid:bp:path",
- default_mapping.generate_file_id("uuid", 2, "bp", u"path"))
+ self.mapping.generate_file_id("uuid", 2, "bp", u"path"))
def test_generate_svn_file_id_nordic(self):
self.assertEqual("2 at uuid:bp:%C3%A6%C3%B8%C3%A5",
- default_mapping.generate_file_id("uuid", 2, "bp", u"\xe6\xf8\xe5"))
+ self.mapping.generate_file_id("uuid", 2, "bp", u"\xe6\xf8\xe5"))
def test_generate_svn_file_id_nordic_branch(self):
self.assertEqual("2 at uuid:%C3%A6:%C3%A6%C3%B8%C3%A5",
- default_mapping.generate_file_id("uuid", 2, u"\xe6".encode('utf-8'), u"\xe6\xf8\xe5"))
+ self.mapping.generate_file_id("uuid", 2, u"\xe6".encode('utf-8'), u"\xe6\xf8\xe5"))
class TestFileMapping(TestCase):
=== modified file 'tests/test_mapping.py'
--- a/tests/test_mapping.py 2008-02-03 03:08:33 +0000
+++ b/tests/test_mapping.py 2008-02-03 14:41:05 +0000
@@ -165,6 +165,15 @@
scheme = NoBranchingScheme()
self.assertEquals((None, None), self.mapping.get_revision_id({}, dict().get, scheme))
+ def test_parse_revision_id_unknown(self):
+ self.assertRaises(InvalidRevisionId,
+ lambda: self.mapping.parse_revision_id("bla"))
+
+ def test_parse_revision_id(self):
+ self.assertEquals(("myuuid", "bla", 5, "foobar"),
+ self.mapping.parse_revision_id(
+ self.mapping.generate_revision_id("myuuid", 5, "bla", "foobar")))
+
class Mappingv1TestAdapter(MappingTestAdapter,TestCase):
def setUp(self):
@@ -182,8 +191,33 @@
def test_revid_svk_map(self):
self.assertEqual("auuid:/:6",
- self.mapping._revision_id_to_svk_feature("svn-v%d-undefined:auuid::6" % MAPPING_VERSION))
-
+ self.mapping._revision_id_to_svk_feature("svn-v3-undefined:auuid::6"))
+
+ def test_generate_revid(self):
+ self.assertEqual("svn-v3-undefined:myuuid:branch:5",
+ default_mapping.generate_revision_id("myuuid", 5, "branch", "undefined"))
+
+ def test_generate_revid_nested(self):
+ self.assertEqual("svn-v3-undefined:myuuid:branch%2Fpath:5",
+ default_mapping.generate_revision_id("myuuid", 5, "branch/path", "undefined"))
+
+ def test_generate_revid_special_char(self):
+ self.assertEqual("svn-v3-undefined:myuuid:branch%2C:5",
+ default_mapping.generate_revision_id("myuuid", 5, "branch\x2c", "undefined"))
+
+ def test_generate_revid_nordic(self):
+ self.assertEqual("svn-v3-undefined:myuuid:branch%C3%A6:5",
+ default_mapping.generate_revision_id("myuuid", 5, u"branch\xe6".encode("utf-8"), "undefined"))
+
+ def test_parse_revid_simple(self):
+ self.assertEqual(("uuid", "", 4, None),
+ default_mapping.parse_revision_id(
+ "svn-v3-undefined:uuid::4"))
+
+ def test_parse_revid_nested(self):
+ self.assertEqual(("uuid", "bp/data", 4, None),
+ default_mapping.parse_revision_id(
+ "svn-v3-undefined:uuid:bp%2Fdata:4"))
#class Mappingv4TestAdapter(MappingTestAdapter,TestCase):
# def setUp(self):
=== modified file 'tests/test_repos.py'
--- a/tests/test_repos.py 2008-02-03 03:08:33 +0000
+++ b/tests/test_repos.py 2008-02-03 14:41:05 +0000
@@ -33,7 +33,6 @@
import svn.fs
-from fileids import generate_file_id
import format
from mapping import (default_mapping, escape_svn_path, unescape_svn_path,
SVN_PROP_BZR_REVISION_ID, SVN_PROP_BZR_BRANCHING_SCHEME,
=== modified file 'tests/test_revids.py'
--- a/tests/test_revids.py 2008-02-03 03:08:33 +0000
+++ b/tests/test_revids.py 2008-02-03 14:41:05 +0000
@@ -18,7 +18,7 @@
from bzrlib.repository import Repository
from bzrlib.tests import TestCase
-from mapping import default_mapping, MAPPING_VERSION
+from mapping import MAPPING_VERSION
from revids import RevidMap
from tests import TestCaseWithSubversionRepository
@@ -88,42 +88,3 @@
revidmap.lookup_branch_revnum(42, "mypath", "brainslug"))
-class TestParseRevisionId(TestCase):
- def test_parse_revision_id_unknown(self):
- self.assertRaises(InvalidRevisionId,
- lambda: default_mapping.parse_revision_id("bla"))
-
- def test_parse_revision_id(self):
- self.assertEquals(("myuuid", "bla", 5, "foobar"),
- default_mapping.parse_revision_id(
- default_mapping.generate_revision_id("myuuid", 5, "bla", "foobar")))
-
-
-class RevisionIdMappingTest(TestCase):
- def test_generate_revid(self):
- self.assertEqual("svn-v%d-undefined:myuuid:branch:5" % MAPPING_VERSION,
- default_mapping.generate_revision_id("myuuid", 5, "branch", "undefined"))
-
- def test_generate_revid_nested(self):
- self.assertEqual("svn-v%d-undefined:myuuid:branch%%2Fpath:5" % MAPPING_VERSION,
- default_mapping.generate_revision_id("myuuid", 5, "branch/path", "undefined"))
-
- def test_generate_revid_special_char(self):
- self.assertEqual("svn-v%d-undefined:myuuid:branch%%2C:5" % MAPPING_VERSION,
- default_mapping.generate_revision_id("myuuid", 5, "branch\x2c", "undefined"))
-
- def test_generate_revid_nordic(self):
- self.assertEqual("svn-v%d-undefined:myuuid:branch%%C3%%A6:5" % MAPPING_VERSION,
- default_mapping.generate_revision_id("myuuid", 5, u"branch\xe6".encode("utf-8"), "undefined"))
-
- def test_parse_revid_simple(self):
- self.assertEqual(("uuid", "", 4, None),
- default_mapping.parse_revision_id(
- "svn-v%d-undefined:uuid::4" % MAPPING_VERSION))
-
- def test_parse_revid_nested(self):
- self.assertEqual(("uuid", "bp/data", 4, None),
- default_mapping.parse_revision_id(
- "svn-v%d-undefined:uuid:bp%%2Fdata:4" % MAPPING_VERSION))
-
-
=== modified file 'tests/test_upgrade.py'
--- a/tests/test_upgrade.py 2008-02-01 00:27:35 +0000
+++ b/tests/test_upgrade.py 2008-02-03 14:41:05 +0000
@@ -23,7 +23,9 @@
from errors import RebaseNotPresent
from format import get_rich_root_format
-from mapping import default_mapping, MAPPING_VERSION
+from mapping import (MAPPING_VERSION, BzrSvnMappingv3, BzrSvnMappingv2,
+ BzrSvnMappingv1)
+from scheme import TrunkBranchingScheme
from tests import TestCaseWithSubversionRepository
from upgrade import (upgrade_repository, upgrade_branch,
upgrade_workingtree, UpgradeChangesContent,
@@ -38,19 +40,19 @@
class ParserTests(TestCase):
def test_current(self):
- self.assertEqual(("uuid", "trunk", 1, "trunk0", 'v3'),
+ self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv3(TrunkBranchingScheme())),
parse_legacy_revision_id("svn-v3-trunk0:uuid:trunk:1"))
def test_current_undefined(self):
- self.assertEqual(("uuid", "trunk", 1, None, 'v3'),
+ self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv3(TrunkBranchingScheme())),
parse_legacy_revision_id("svn-v3-undefined:uuid:trunk:1"))
def test_legacy2(self):
- self.assertEqual(("uuid", "trunk", 1, None, 'v2'),
+ self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv2()),
parse_legacy_revision_id("svn-v2:1 at uuid-trunk"))
def test_legacy(self):
- self.assertEqual(("uuid", "trunk", 1, None, 'v1'),
+ self.assertEqual(("uuid", "trunk", 1, BzrSvnMappingv1()),
parse_legacy_revision_id("svn-v1:1 at uuid-trunk"))
def test_except(self):
@@ -158,7 +160,7 @@
tree = newrepos.revision_tree("customrev-svn%d-upgrade" % MAPPING_VERSION)
self.assertEqual("specificid", tree.inventory.path2id("a"))
- self.assertEqual(default_mapping.generate_file_id(oldrepos.uuid, 1, "", u"a"),
+ self.assertEqual(oldrepos.get_mapping().generate_file_id(oldrepos.uuid, 1, "", u"a"),
tree.inventory.path2id("b"))
@skip_no_rebase
=== modified file 'tests/test_workingtree.py'
--- a/tests/test_workingtree.py 2008-02-02 14:48:35 +0000
+++ b/tests/test_workingtree.py 2008-02-03 14:41:05 +0000
@@ -30,7 +30,7 @@
import os, sys
-from mapping import MAPPING_VERSION, default_mapping
+from mapping import MAPPING_VERSION
from transport import svn_config
from tests import TestCaseWithSubversionRepository
@@ -293,7 +293,7 @@
self.assertEqual(wt.branch.generate_revision_id(0),
wt.basis_tree().inventory.revision_id)
inv = Inventory()
- root_id = default_mapping.generate_file_id(wt.branch.repository.uuid, 0, "", u"")
+ root_id = wt.branch.repository.get_mapping().generate_file_id(wt.branch.repository.uuid, 0, "", u"")
inv.revision_id = wt.branch.generate_revision_id(0)
inv.add_path('', 'directory', root_id).revision = inv.revision_id
More information about the bazaar-commits
mailing list