Exemple #1
0
class CollaborationTest(unittest.TestCase):
    def setUp(self):
        path1 = utils.get_temporary_location()
        path2 = utils.get_temporary_location()
        path2 = os.path.join(path2, "repo")
        self.repo1 = LocalRepository(path1)
        self.repo1.init()
        for i in range(10):
            with open(os.path.join(self.repo1.path, "file_%s.txt" % i), "wb") as output:
                print >>output, "This is file", i
        self.repo1.addAll()
        self.repo1.commit(message="init")
        self.repo2 = LocalRepository(path2)
        self.repo2.clone(self.repo1)
        self.assertTrue(os.path.isdir(self.repo2.path))
    def tearDown(self):
        utils.delete_repository(self.repo1)
        utils.delete_repository(self.repo2)

    def testRemotePushBranches(self):
        b = self.repo2.createBranch("branch")
        self.repo1.createBranch('remote_branch')
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName('origin').getBranchByName('remote_branch')
        b.setRemoteBranch(remote_branch)
        self.assertEquals(b.getRemoteBranch(), remote_branch)
        b.setRemoteBranch(None)
        self.assertEquals(b.getRemoteBranch(), None)
        # try setting to None multiple times
        b.setRemoteBranch(None)
    def testCollaboration(self):
        new_file_base_name = "new_file.txt"
        new_filename = os.path.join(self.repo1.path, new_file_base_name)
        with open(new_filename, "wb") as f:
            print >> f, "hello there!"
        self.assertTrue(new_file_base_name in self.repo1.getUntrackedFiles())
        self.repo1.addAll()
        self.assertTrue(any(f.filename == new_file_base_name for f in self.repo1.getStagedFiles()))
        c = self.repo1.commit(message="add file")
        self.assertFalse(os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.repo2.pull()
        self.assertTrue(os.path.exists(os.path.join(self.repo2.path, new_file_base_name)))
        self.assertTrue(c in self.repo2)
    def testRemoteBranchDeletion(self):
        self.repo1.createBranch("testme")
        self.repo2.fetch()
        remote_branch = self.repo2.getRemoteByName("origin").getBranchByName("testme")
        self.assertEquals(remote_branch.getHead(), self.repo1.getBranchByName("testme").getHead())
        remote_branch.delete()
        try:
            self.repo1.getBranchByName("testme")
        except NonexistentRefException:
            pass
        else:
            self.fail("Did not fail!")
Exemple #2
0
 def testAddingRemotes(self):
     new_repo = LocalRepository(utils.get_temporary_location())
     new_repo.init()
     with open(os.path.join(new_repo.path, "some_file"), "wb") as f:
         print >> f, "new file"
     new_repo.addAll()
     new_repo.commit(message="initial change")
     REMOTE_NAME = 'remote'
     remote = new_repo.addRemote(REMOTE_NAME, self.repo.path)
     self.assertEquals(remote.name, REMOTE_NAME)
     self.assertEquals(remote.url, self.repo.path)
     self.assertFalse(new_repo.containsCommit(self.repo.getHead()))
     remote.fetch()
     remote.prune()
     self.assertTrue(new_repo.containsCommit(self.repo.getHead()))
     branches = list(remote.getBranches())
     self.assertTrue(len(branches) > 0)
     for branch in branches:
         self.assertTrue(type(branch in new_repo.getHead()) is bool)