コード例 #1
0
 def test_lookup_revision_id_overridden_invalid_dup(self):
     self.make_checkout(self.repos_url, 'dc')
     self.build_tree({'dc/bloe': None})
     self.client_add("dc/bloe")
     self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID + "v3-none",
                          "corrupt-entry\n")
     self.client_commit("dc", "foobar")
     self.build_tree({'dc/bla': None})
     self.client_add("dc/bla")
     self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID + "v3-none",
                          "corrupt-entry\n2 corrupt-entry\n")
     self.client_commit("dc", "foobar")
     repository = Repository.open(self.repos_url)
     mapping = repository.get_mapping()
     self.assertEqual(((repository.uuid, u"", 2), mapping),
                      repository.lookup_bzr_revision_id(
                          mapping.revision_id_foreign_to_bzr(
                              (repository.uuid, u"", 2)))[:2])
     self.assertEqual(((repository.uuid, u"", 1), mapping),
                      repository.lookup_bzr_revision_id(
                          mapping.revision_id_foreign_to_bzr(
                              (repository.uuid, u"", 1)))[:2])
     self.assertEqual(
         ((repository.uuid, u"", 2), mapping),
         repository.lookup_bzr_revision_id("corrupt-entry")[:2])
コード例 #2
0
ファイル: test_fileids.py プロジェクト: jelmer/breezy-svn
    def test_simplemove(self):
        repos_url = self.make_svn_repository('d')

        dc = self.get_commit_editor(repos_url)
        dc.add_file("foo").modify("data")
        dc.close()

        dc = self.get_commit_editor(repos_url)
        dc.add_file("bar", "foo", 1)
        dc.delete("foo")
        dc.close()

        dc = self.get_commit_editor(repos_url)
        dc.open_file("bar").modify("data2")
        dc.close()

        repository = Repository.open(repos_url)
        repository.set_layout(RootLayout())
        mapping = repository.get_mapping()

        tree1 = repository.revision_tree(
            repository.generate_revision_id(1, u"", mapping))
        tree2 = repository.revision_tree(
            repository.generate_revision_id(2, u"", mapping))
        self.assertNotEqual(None, tree1.path2id("foo"))
        self.assertIs(None, tree2.path2id("foo"))
        self.assertNotEqual(None, tree2.path2id("bar"))
        self.assertNotEqual(tree1.path2id("foo"), tree2.path2id("blie"))
        self.assertNotEqual(tree2.path2id("bar"), tree2.path2id("blie"))
コード例 #3
0
 def testlhs_revision_parent_none(self):
     repos_url = self.make_svn_repository('d')
     repos = Repository.open(repos_url)
     repos.set_layout(RootLayout())
     revmeta0 = repos._revmeta_provider.get_revision("", 0)
     self.assertEquals(
         NULL_REVISION,
         revmeta0.get_lhs_parent_revid(repos.get_mapping(), None))
コード例 #4
0
    def test_is_shared(self):
        with self.get_commit_editor(self.repos_url) as dc:
            with dc.add_dir("foo") as foo:
                with foo.add_file("foo/bla") as f:
                    f.modify(b"data")

        repository = Repository.open(self.repos_url)
        self.assertFalse(repository.is_shared())
コード例 #5
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
 def test_simple(self):
     convert_repository(Repository.open(self.repos_url),
                        os.path.join(self.test_dir, "e"), TrunkLayout(0))
     self.assertTrue(
         os.path.isdir(os.path.join(self.test_dir, "e", "trunk")))
     self.assertTrue(
         os.path.isdir(
             os.path.join(self.test_dir, "e", "branches", "abranch")))
コード例 #6
0
 def test_set_branching_scheme_property(self):
     self.make_checkout(self.repos_url, 'dc')
     self.client_set_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME, 
         "trunk\nbranches/*\nbranches/tmp/*")
     self.client_commit("dc", "set scheme")
     repository = Repository.open(self.repos_url)
     self.assertEquals(ListBranchingScheme(["trunk", "branches/*", "branches/tmp/*"]).branch_list,
                       repository.get_mapping().scheme.branch_list)
コード例 #7
0
    def test_is_shared(self):
        dc = self.get_commit_editor(self.repos_url)
        foo = dc.add_dir("foo")
        bla = foo.add_file("foo/bla").modify("data")
        dc.close()

        repository = Repository.open(self.repos_url)
        self.assertFalse(repository.is_shared())
コード例 #8
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
    def test_shared_import_rootlayout_empty(self):
        dir = ControlDir.create("e")
        dir.create_repository(shared=True)

        convert_repository(Repository.open(self.repos_url),
                           "e",
                           RootLayout(),
                           create_shared_repo=True)
コード例 #9
0
    def test_repr(self):
        with self.get_commit_editor(self.repos_url) as dc:
            with dc.add_file("foo") as f:
                f.modify(b"data")

        repos = Repository.open(self.repos_url)

        self.assertEqual("SvnRepository('%s/')" % self.repos_url,
                         repos.__repr__())
コード例 #10
0
    def test_repr(self):
        dc = self.get_commit_editor(self.repos_url)
        dc.add_file("foo").modify("data")
        dc.close()

        repos = Repository.open(self.repos_url)

        self.assertEqual("SvnRepository('%s/')" % self.repos_url,
                         repos.__repr__())
コード例 #11
0
 def test_set_property_scheme(self):
     self.make_checkout(self.repos_url, 'dc')
     repos = Repository.open(self.repos_url)
     set_property_scheme(repos, ListBranchingScheme(["bla/*"]))
     self.client_update("dc")
     self.assertEquals("bla/*\n",
                self.client_get_prop("dc", SVN_PROP_BZR_BRANCHING_SCHEME))
     self.assertEquals("Updating branching scheme for Bazaar.",
             self.client_log(self.repos_url, 1, 1)[1][3])
コード例 #12
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
    def test_shared_import_remove_nokeep(self):
        convert_repository(Repository.open(self.repos_url),
                           "e",
                           TrunkLayout(0),
                           create_shared_repo=True)

        dc = self.get_commit_editor()
        dc.delete("trunk")
        dc.close()

        self.assertTrue(os.path.exists("e/trunk"))

        convert_repository(Repository.open(self.repos_url),
                           "e",
                           TrunkLayout(0),
                           create_shared_repo=True)

        self.assertFalse(os.path.exists("e/trunk"))
コード例 #13
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
 def test_convert_simple(self):
     oldrepos = Repository.open(self.repos_url)
     convert_repository(oldrepos,
                        "e",
                        TrunkLayout(1),
                        prefix=u"base",
                        create_shared_repo=True)
     self.assertTrue(os.path.exists("e/trunk"))
     self.assertTrue(os.path.exists("e/branches/abranch"))
     self.assertFalse(os.path.exists("e/base"))
コード例 #14
0
    def test_change_revprops_disallowed(self):
        repos_url = self.make_repository("d", allow_revprop_changes=False)

        dc = self.get_commit_editor(repos_url)
        dc.add_file("foo.txt").modify()
        dc.close()

        repository = Repository.open(repos_url)
        self.assertRaises(RevpropChangeFailed,
                lambda: set_svn_revprops(repository, 1, {"svn:author": "Somebody", "svn:date": time_to_cstring(1000000*473385600)}))
コード例 #15
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
 def test_sets_parent_urls(self):
     convert_repository(Repository.open(self.repos_url),
                        "e",
                        TrunkLayout(0),
                        all=False,
                        create_shared_repo=True)
     self.assertEquals(self.repos_url + "/trunk",
                       Branch.open("e/trunk").get_parent())
     self.assertEquals(self.repos_url + "/branches/abranch",
                       Branch.open("e/branches/abranch").get_parent())
コード例 #16
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
    def test_shared_import_continue_remove(self):
        convert_repository(Repository.open(self.repos_url),
                           "e",
                           TrunkLayout(0),
                           create_shared_repo=True)

        dc = self.get_commit_editor()
        dc.delete("trunk")
        dc.close()

        dc = self.get_commit_editor()
        trunk = dc.add_dir("trunk")
        trunk.add_file("trunk/file").modify()
        dc.close()

        convert_repository(Repository.open(self.repos_url),
                           "e",
                           TrunkLayout(0),
                           create_shared_repo=True)
コード例 #17
0
 def test_generate_revision_id(self):
     repos_url = self.make_client('d', 'dc')
     self.build_tree({'dc/bla/bloe': None})
     self.client_add("dc/bla")
     self.client_commit("dc", "bla")
     repository = Repository.open(repos_url)
     mapping = repository.get_mapping()
     self.assertEqual(
         mapping.revision_id_foreign_to_bzr(
             (repository.uuid, "bla/bloe", 1)),
         repository.generate_revision_id(1, "bla/bloe", mapping))
コード例 #18
0
 def test_set_signature(self):
     repos_url = self.make_svn_repository("a")
     repos = Repository.open(repos_url)
     cb = self.get_commit_editor(repos_url)
     cb.add_file("foo").modify("bar")
     cb.close()
     revid = repos.get_mapping().revision_id_foreign_to_bzr(
         (repos.uuid, "", 1))
     repos.add_signature_text(revid, "TEXT")
     self.assertTrue(repos.has_signature_for_revision_id(revid))
     self.assertEquals(repos.get_signature_text(revid), "TEXT")
コード例 #19
0
 def test_lookup_revision_id_overridden_not_found(self):
     """Make sure a revision id that is looked up but doesn't exist 
     doesn't accidently end up in the revid cache."""
     self.make_checkout(self.repos_url, 'dc')
     self.build_tree({'dc/bloe': None})
     self.client_add("dc/bloe")
     self.client_set_prop("dc", SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
     self.client_commit("dc", "foobar")
     repository = Repository.open(self.repos_url)
     self.assertRaises(NoSuchRevision, 
             repository.lookup_bzr_revision_id, "foobar")
コード例 #20
0
 def test_has_revision(self):
     repos_url = self.make_client('d', 'dc')
     repository = Repository.open(repos_url)
     self.build_tree({'dc/foo': b"data"})
     self.client_add("dc/foo")
     self.client_commit("dc", "My Message")
     self.assertTrue(
         repository.has_revision(
             repository.generate_revision_id(1, "",
                                             repository.get_mapping())))
     self.assertFalse(repository.has_revision("some-other-revision"))
コード例 #21
0
 def test_get_revision_zero(self):
     repos_url = self.make_client('d', 'dc')
     repository = Repository.open(repos_url)
     mapping = repository.get_mapping()
     rev = repository.get_revision(
         repository.generate_revision_id(0, "", mapping))
     self.assertEqual(repository.generate_revision_id(0, "", mapping),
                      rev.revision_id)
     self.assertEqual("", rev.committer)
     self.assertEqual({}, rev.properties)
     self.assertEqual(0, rev.timezone)
コード例 #22
0
 def test_lookup_revision_id_overridden(self):
     dc = self.get_commit_editor(self.repos_url)
     dc.add_dir("bloe")
     dc.change_prop(SVN_PROP_BZR_REVISION_ID+"v3-none", "2 myid\n")
     dc.close()
     repository = Repository.open(self.repos_url)
     mapping = repository.get_mapping()
     self.assertEqual(((repository.uuid, u"", 1), mapping), repository.lookup_bzr_revision_id( 
         mapping.revision_id_foreign_to_bzr((repository.uuid, u"", 1)))[:2])
     self.assertEqual(((repository.uuid, u"", 1), mapping),
             repository.lookup_bzr_revision_id("myid")[:2])
コード例 #23
0
    def test_generate_revision_id_forced_revid(self):
        dc = self.get_commit_editor(self.repos_url)
        dc.change_prop(SVN_PROP_BZR_REVISION_ID + "v3-none", "2 someid\n")
        dc.close()

        repos = Repository.open(self.repos_url)
        mapping = repos.get_mapping()
        if not mapping.roundtripping:
            raise TestNotApplicable()
        revid = repos.generate_revision_id(1, u"", mapping)
        self.assertEquals("someid", revid)
コード例 #24
0
 def test_check(self):
     repos_url = self.make_client('d', 'dc')
     self.build_tree({'dc/foo': b"data"})
     self.client_add("dc/foo")
     self.client_commit("dc", "My Message")
     repository = Repository.open(repos_url)
     mapping = repository.get_mapping()
     repository.check([
         repository.generate_revision_id(0, "", mapping),
         repository.generate_revision_id(1, "", mapping)
     ])
コード例 #25
0
    def test_generate_revision_id_forced_revid_invalid(self):

        dc = self.get_commit_editor(self.repos_url)
        dc.change_prop(SVN_PROP_BZR_REVISION_ID + "v3-none", "corrupt-id\n")
        dc.close()

        repos = Repository.open(self.repos_url)
        mapping = repos.get_mapping()
        revid = repos.generate_revision_id(1, u"", mapping)
        self.assertEquals(
            mapping.revision_id_foreign_to_bzr((repos.uuid, u"", 1)), revid)
コード例 #26
0
 def testlhs_revision_parent_first(self):
     repos_url = self.make_client('d', 'dc')
     repos = Repository.open(repos_url)
     repos.set_layout(RootLayout())
     self.build_tree({'dc/adir/afile': b"data"})
     self.client_add("dc/adir")
     self.client_commit("dc", "Initial commit")
     mapping = repos.get_mapping()
     revmeta0 = repos._revmeta_provider.get_revision("", 0)
     revmeta1 = repos._revmeta_provider.get_revision("", 1)
     self.assertEquals(repos.generate_revision_id(0, "", mapping),
                       revmeta1.get_lhs_parent_revid(mapping, revmeta0))
コード例 #27
0
    def test_revision_fileidmap(self):
        dc = self.get_commit_editor(self.repos_url)
        dc.add_file("foo").modify("data")
        dc.change_prop("bzr:revision-info", "")
        dc.change_prop("bzr:file-ids", "foo\tsomeid\n")
        dc.close()

        repository = Repository.open(self.repos_url)
        repository.set_layout(RootLayout())
        tree = repository.revision_tree(Branch.open(self.repos_url).last_revision())
        self.assertEqual("someid", tree.path2id("foo"))
        self.assertFalse(tree.has_id("1@%s::foo" % repository.uuid))
コード例 #28
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
    def test_shared_import_old_repos_fails(self):
        dir = ControlDir.create("e",
                                format=format_registry.make_controldir('knit'))
        dir.create_repository(shared=True)

        self.assertRaises(
            IncompatibleRepositories,
            lambda: convert_repository(Repository.open(self.repos_url),
                                       "e",
                                       TrunkLayout(0),
                                       create_shared_repo=True,
                                       working_trees=False))
コード例 #29
0
 def test_get_revision(self):
     repos_url = self.make_client('d', 'dc')
     repository = Repository.open(repos_url)
     self.assertRaises(NoSuchRevision, repository.get_revision,
                       "nonexisting")
     self.build_tree({'dc/foo': b"data"})
     self.client_add("dc/foo")
     self.client_commit("dc", "My Message")
     self.client_update("dc")
     self.build_tree({'dc/foo': b"data2"})
     (num, date, author) = self.client_commit("dc", "Second Message")
     repository = Repository.open(repos_url)
     mapping = repository.get_mapping()
     rev = repository.get_revision(
         repository.generate_revision_id(2, "", mapping))
     self.assertEqual((repository.generate_revision_id(1, "", mapping), ),
                      rev.parent_ids)
     self.assertEqual(rev.revision_id,
                      repository.generate_revision_id(2, "", mapping))
     self.assertEqual(author, rev.committer)
     self.assertIsInstance(rev.properties, dict)
コード例 #30
0
ファイル: test_convert.py プロジェクト: jelmer/breezy-svn
    def test_shared_import_without_wt(self):
        dir = ControlDir.create("e")
        dir.create_repository(shared=True)

        convert_repository(Repository.open(self.repos_url),
                           "e",
                           TrunkLayout(0),
                           create_shared_repo=True,
                           working_trees=False)

        self.assertFalse(
            os.path.isfile(os.path.join(self.test_dir, "e", "trunk", "file")))