Exemple #1
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url)
     # after setting up "local" repo, change files and make some changes
     subprocess.check_call("rm deleted-fs.txt",
                           shell=True,
                           cwd=self.local_path)
     subprocess.check_call("hg rm deleted.txt",
                           shell=True,
                           cwd=self.local_path)
     f = io.open(os.path.join(self.local_path, "modified.txt"), 'a')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "modified-fs.txt"), 'a')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "added-fs.txt"), 'w')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "added.txt"), 'w')
     f.write('0123456789abcdef')
     f.close()
     subprocess.check_call("hg add added.txt",
                           shell=True,
                           cwd=self.local_path)
Exemple #2
0
    def setUpClass(self):
        HGClientTestSetups.setUpClass()
        url = self.local_url
        client = HgClient(self.local_path)
        client.checkout(url)

        self.basepath_export = os.path.join(self.root_directory, 'export')
Exemple #3
0
    def test_get_remote_version(self):
        url = self.local_url
        version = self.local_version
        client = HgClient(self.local_path)
        client.checkout(url, version='default')
        self.assertEqual(client.get_remote_version(fetch=True),
                         self.local_version)
        self.assertEqual(client.get_version(), self.local_version)

        for cmd in [
                "hg checkout default", "touch remote_new.txt",
                "hg add remote_new.txt", "hg commit -m remote_new"
        ]:
            subprocess.check_call(cmd, shell=True, cwd=self.remote_path)
        po = subprocess.Popen("hg log --template '{node|short}' -l1",
                              shell=True,
                              cwd=self.remote_path,
                              stdout=subprocess.PIPE)
        remote_new_version = po.stdout.read().decode('UTF-8').rstrip(
            "'").lstrip("'")
        self.assertNotEqual(self.local_version, remote_new_version)

        self.assertEqual(client.get_remote_version(fetch=False),
                         self.local_version)
        self.assertEqual(client.get_remote_version(fetch=True),
                         remote_new_version)
        self.assertEqual(client.get_remote_version(fetch=False),
                         remote_new_version)
        self.assertEqual(client.get_version(), self.local_version)
Exemple #4
0
    def setUpClass(self):
        HGClientTestSetups.setUpClass()
        url = self.local_url
        client = HgClient(self.local_path)
        client.checkout(url)

        self.basepath_export = os.path.join(self.root_directory, 'export')
Exemple #5
0
 def test_checkout_dir_exists(self):
     url = self.remote_path
     client = HgClient(self.local_path)
     self.assertFalse(client.path_exists())
     os.makedirs(self.local_path)
     self.assertTrue(client.checkout(url))
     # non-empty
     self.assertFalse(client.checkout(url))
Exemple #6
0
 def test_get_log_defaults(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log()
     self.assertEquals(4, len(log))
     self.assertEquals("modified", log[0]["message"])
     for key in ["id", "author", "email", "date", "message"]:
         self.assertTrue(log[0][key] is not None, key)
Exemple #7
0
    def test_get_log_defaults(self):
        client = HgClient(self.local_path)
        client.checkout(self.local_url)
        log = client.get_log(limit=1)[0]
        affected = client.get_affected_files(log['id'])

        self.assertEqual(sorted(['deleted-fs.txt', 'deleted.txt']),
                         sorted(affected))
Exemple #8
0
 def test_checkout_dir_exists(self):
     url = self.remote_path
     client = HgClient(self.local_path)
     self.assertFalse(client.path_exists())
     os.makedirs(self.local_path)
     self.assertTrue(client.checkout(url))
     # non-empty
     self.assertFalse(client.checkout(url))
Exemple #9
0
    def test_get_log_defaults(self):
        client = HgClient(self.local_path)
        client.checkout(self.local_url)
        log = client.get_log(limit=1)[0]
        affected = client.get_affected_files(log['id'])

        self.assertEqual(sorted(['deleted-fs.txt', 'deleted.txt']),
                         sorted(affected))
Exemple #10
0
 def test_get_log_defaults(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log()
     self.assertEquals(4, len(log))
     self.assertEquals('modified', log[0]['message'])
     for key in ['id', 'author', 'email', 'date', 'message']:
         self.assertTrue(log[0][key] is not None, key)
Exemple #11
0
 def test_get_log_defaults(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log()
     self.assertEquals(4, len(log))
     self.assertEquals('modified', log[0]['message'])
     for key in ['id', 'author', 'email', 'date', 'message']:
         self.assertTrue(log[0][key] is not None, key)
Exemple #12
0
 def test_get_url_by_reading(self):
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url, self.local_version)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_url(), self.local_url)
     self.assertEqual(client.get_version(), self.local_version)
     self.assertEqual(client.get_version(self.local_version_init[0:6]), self.local_version_init)
     self.assertEqual(client.get_version("test_tag"), self.local_version_init)
Exemple #13
0
 def test_get_current_version_label(self):
     url = self.local_url
     version = self.local_version
     client = HgClient(self.local_path)
     client.checkout(url, version='test_tag')
     self.assertEqual(client.get_current_version_label(), 'default')
     client.update(version='default')
     self.assertEqual(client.get_current_version_label(), 'default')
     client.update(version='test_branch')
     self.assertEqual(client.get_current_version_label(), 'test_branch')
 def test_get_url_by_reading(self):
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url, self.local_version)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_url(), self.local_url)
     self.assertEqual(client.get_version(), self.local_version)
     self.assertEqual(client.get_version(self.local_version_init[0:6]), self.local_version_init)
     self.assertEqual(client.get_version("test_tag"), self.local_version_init)
Exemple #15
0
 def test_get_current_version_label(self):
     url = self.local_url
     version = self.local_version
     client = HgClient(self.local_path)
     client.checkout(url, version='test_tag')
     self.assertEqual(client.get_current_version_label(), 'default')
     client.update(version='default')
     self.assertEqual(client.get_current_version_label(), 'default')
     client.update(version='test_branch')
     self.assertEqual(client.get_current_version_label(), 'test_branch')
Exemple #16
0
 def test_get_remote_version(self):
     url = self.local_url
     version = self.local_version
     client = HgClient(self.local_path)
     client.checkout(url)
     self.assertEqual(client.get_remote_version(fetch=True), self.local_version)
     client.checkout(url, version='test_tag')
     self.assertEqual(client.get_remote_version(fetch=True), self.local_version)
     client.update(version='default')
     self.assertEqual(client.get_remote_version(fetch=True), self.local_version)
     client.update(version='test_branch')
     self.assertEqual(client.get_remote_version(fetch=True), self.branch_version)
Exemple #17
0
    def test_checkout_specific_version_and_update(self):
        url = self.local_url
        version = self.local_version
        client = HgClient(self.local_path)
        self.assertFalse(client.path_exists())
        self.assertFalse(client.detect_presence())
        self.assertFalse(client.detect_presence())
        self.assertTrue(client.checkout(url, version))
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEqual(client.get_path(), self.local_path)
        self.assertEqual(client.get_url(), url)
        self.assertEqual(client.get_version(), version)

        new_version = self.local_version_second
        self.assertTrue(client.update(new_version))
        self.assertEqual(client.get_version(), new_version)

        self.assertTrue(client.update())
        self.assertEqual(client.get_version(), self.local_version)

        self.assertTrue(client.update(new_version))
        self.assertEqual(client.get_version(), new_version)

        self.assertTrue(client.update(''))
        self.assertEqual(client.get_version(), self.local_version)
Exemple #18
0
    def test_checkout_specific_version_and_update(self):
        url = self.local_url
        version = self.local_version
        client = HgClient(self.local_path)
        self.assertFalse(client.path_exists())
        self.assertFalse(client.detect_presence())
        self.assertFalse(client.detect_presence())
        self.assertTrue(client.checkout(url, version))
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEqual(client.get_path(), self.local_path)
        self.assertEqual(client.get_url(), url)
        self.assertEqual(client.get_version(), version)

        new_version = self.local_version_second
        self.assertTrue(client.update(new_version))
        self.assertEqual(client.get_version(), new_version)

        self.assertTrue(client.update())
        self.assertEqual(client.get_version(), self.local_version)

        self.assertTrue(client.update(new_version))
        self.assertEqual(client.get_version(), new_version)

        self.assertTrue(client.update(''))
        self.assertEqual(client.get_version(), self.local_version)
Exemple #19
0
 def test_get_remote_version(self):
     url = self.local_url
     version = self.local_version
     client = HgClient(self.local_path)
     client.checkout(url)
     self.assertEqual(client.get_remote_version(fetch=True),
                      self.local_version)
     client.checkout(url, version='test_tag')
     self.assertEqual(client.get_remote_version(fetch=True),
                      self.local_version)
     client.update(version='default')
     self.assertEqual(client.get_remote_version(fetch=True),
                      self.local_version)
     client.update(version='test_branch')
     self.assertEqual(client.get_remote_version(fetch=True),
                      self.branch_version)
 def test_checkout_specific_version_and_update(self):
     from vcstools.hg import HgClient
     directory = tempfile.mkdtemp()
     subdir = "checkout_specific_version_test"
     self.directories[subdir] = directory
     local_path = os.path.join(directory, "anyvc")
     url = self.readonly_url
     version = self.readonly_version
     client = HgClient(local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url, version))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), local_path)
     self.assertEqual(client.get_url(), url)
     self.assertEqual(client.get_version(), version)
     
     new_version = self.readonly_version_second
     self.assertTrue(client.update(new_version))
     self.assertEqual(client.get_version(), new_version)
     
     shutil.rmtree(directory)
     self.directories.pop(subdir)
Exemple #21
0
    def test_checkout_specific_version_and_update(self):
        from vcstools.hg import HgClient
        directory = tempfile.mkdtemp()
        subdir = "checkout_specific_version_test"
        self.directories[subdir] = directory
        local_path = os.path.join(directory, "anyvc")
        url = self.readonly_url
        version = self.readonly_version
        client = HgClient(local_path)
        self.assertFalse(client.path_exists())
        self.assertFalse(client.detect_presence())
        self.assertFalse(client.detect_presence())
        self.assertTrue(client.checkout(url, version))
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEqual(client.get_path(), local_path)
        self.assertEqual(client.get_url(), url)
        self.assertEqual(client.get_version(), version)

        new_version = self.readonly_version_second
        self.assertTrue(client.update(new_version))
        self.assertEqual(client.get_version(), new_version)

        shutil.rmtree(directory)
        self.directories.pop(subdir)
Exemple #22
0
 def test_checkout(self):
     url = self.local_url
     client = HgClient(self.local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), self.local_path)
     self.assertEqual(client.get_url(), url)
     self.assertEqual(client.get_version(), self.local_version)
Exemple #23
0
 def test_checkout_into_subdir_without_existing_parent(self):
     local_path = os.path.join(self.local_path, "nonexistant_subdir")
     url = self.local_url
     client = HgClient(local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), local_path)
     self.assertEqual(client.get_url(), url)
Exemple #24
0
 def test_checkout_into_subdir_without_existing_parent(self):
     local_path = os.path.join(self.local_path, "nonexistant_subdir")
     url = self.local_url
     client = HgClient(local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), local_path)
     self.assertEqual(client.get_url(), url)
Exemple #25
0
 def test_checkout(self):
     url = self.local_url
     client = HgClient(self.local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), self.local_path)
     self.assertEqual(client.get_url(), url)
     self.assertEqual(client.get_version(), self.local_version)
Exemple #26
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url)
     # after setting up "local" repo, change files and make some changes
     subprocess.check_call("rm deleted-fs.txt", shell=True, cwd=self.local_path)
     subprocess.check_call("hg rm deleted.txt", shell=True, cwd=self.local_path)
     f = io.open(os.path.join(self.local_path, "modified.txt"), 'a')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "modified-fs.txt"), 'a')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "added-fs.txt"), 'w')
     f.write('0123456789abcdef')
     f.close()
     f = io.open(os.path.join(self.local_path, "added.txt"), 'w')
     f.write('0123456789abcdef')
     f.close()
     subprocess.check_call("hg add added.txt", shell=True, cwd=self.local_path)
Exemple #27
0
    def setUp(self):
        from vcstools.hg import HgClient
        directory = tempfile.mkdtemp()
        self.directories = dict(setUp=directory)
        remote_path = os.path.join(directory, "remote")
        os.makedirs(remote_path)

        # create a "remote" repo
        subprocess.check_call(["hg", "init"], cwd=remote_path)
        subprocess.check_call(["touch", "fixed.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "fixed.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "initial"],
                              cwd=remote_path)

        po = subprocess.Popen(
            ["hg", "log", "--template", "'{node|short}'", "-l1"],
            cwd=remote_path,
            stdout=subprocess.PIPE)
        self.readonly_version_init = po.stdout.read().rstrip("'").lstrip("'")
        # in hg, tagging creates an own changeset, so we need to fetch version before tagging
        subprocess.check_call(["hg", "tag", "test_tag"], cwd=remote_path)

        # files to be modified in "local" repo
        subprocess.check_call(["touch", "modified.txt"], cwd=remote_path)
        subprocess.check_call(["touch", "modified-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "modified.txt", "modified-fs.txt"],
                              cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "initial"],
                              cwd=remote_path)
        po = subprocess.Popen(
            ["hg", "log", "--template", "'{node|short}'", "-l1"],
            cwd=remote_path,
            stdout=subprocess.PIPE)
        self.readonly_version_second = po.stdout.read().rstrip("'").lstrip("'")

        subprocess.check_call(["touch", "deleted.txt"], cwd=remote_path)
        subprocess.check_call(["touch", "deleted-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "deleted.txt", "deleted-fs.txt"],
                              cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "modified"],
                              cwd=remote_path)
        po = subprocess.Popen(
            ["hg", "log", "--template", "'{node|short}'", "-l1"],
            cwd=remote_path,
            stdout=subprocess.PIPE)
        self.readonly_version = po.stdout.read().rstrip("'").lstrip("'")

        self.readonly_path = os.path.join(directory, "readonly")
        self.readonly_url = remote_path

        client = HgClient(self.readonly_path)
        self.assertTrue(client.checkout(remote_path, self.readonly_version))
Exemple #28
0
    def test_get_remote_version(self):
        url = self.local_url
        version = self.local_version
        client = HgClient(self.local_path)
        client.checkout(url, version='default')
        self.assertEqual(client.get_remote_version(fetch=True), self.local_version)
        self.assertEqual(client.get_version(), self.local_version)

        for cmd in [
                "hg checkout default",
                "touch remote_new.txt",
                "hg add remote_new.txt",
                "hg commit -m remote_new"]:
            subprocess.check_call(cmd, shell=True, cwd=self.remote_path)
        po = subprocess.Popen("hg log --template '{node|short}' -l1", shell=True, cwd=self.remote_path, stdout=subprocess.PIPE)
        remote_new_version = po.stdout.read().decode('UTF-8').rstrip("'").lstrip("'")
        self.assertNotEqual(self.local_version, remote_new_version)

        self.assertEqual(client.get_remote_version(fetch=False), self.local_version)
        self.assertEqual(client.get_remote_version(fetch=True), remote_new_version)
        self.assertEqual(client.get_remote_version(fetch=False), remote_new_version)
        self.assertEqual(client.get_version(), self.local_version)
 def test_checkout_into_subdir_without_existing_parent(self): # test for #3497
     from vcstools.hg import HgClient
     directory = tempfile.mkdtemp()
     self.directories["checkout_test"] = directory
     local_path = os.path.join(directory, "anyvc", "nonexistant_subdir")
     url = self.readonly_url
     client = HgClient(local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), local_path)
     self.assertEqual(client.get_url(), url)
Exemple #30
0
 def test_checkout(self):
     from vcstools.hg import HgClient
     directory = tempfile.mkdtemp()
     self.directories["checkout_test"] = directory
     local_path = os.path.join(directory, "anyvc")
     url = self.readonly_url
     client = HgClient(local_path)
     self.assertFalse(client.path_exists())
     self.assertFalse(client.detect_presence())
     self.assertFalse(client.detect_presence())
     self.assertTrue(client.checkout(url))
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_path(), local_path)
     self.assertEqual(client.get_url(), url)
    def setUp(self):
        from vcstools.hg import HgClient
        directory = tempfile.mkdtemp()
        self.directories = dict(setUp=directory)
        remote_path = os.path.join(directory, "remote")
        os.makedirs(remote_path)

        # create a "remote" repo
        subprocess.check_call(["hg", "init"], cwd=remote_path)
        subprocess.check_call(["touch", "fixed.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "fixed.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "initial"], cwd=remote_path)
        
        po = subprocess.Popen(["hg", "log", "--template", "'{node|short}'", "-l1"], cwd=remote_path, stdout=subprocess.PIPE)
        self.readonly_version_init = po.stdout.read().rstrip("'").lstrip("'")
        # in hg, tagging creates an own changeset, so we need to fetch version before tagging
        subprocess.check_call(["hg", "tag", "test_tag"], cwd=remote_path)

        
        # files to be modified in "local" repo
        subprocess.check_call(["touch", "modified.txt"], cwd=remote_path)
        subprocess.check_call(["touch", "modified-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "modified.txt", "modified-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "initial"], cwd=remote_path)
        po = subprocess.Popen(["hg", "log", "--template", "'{node|short}'", "-l1"], cwd=remote_path, stdout=subprocess.PIPE)
        self.readonly_version_second = po.stdout.read().rstrip("'").lstrip("'")
        
        subprocess.check_call(["touch", "deleted.txt"], cwd=remote_path)
        subprocess.check_call(["touch", "deleted-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "add", "deleted.txt", "deleted-fs.txt"], cwd=remote_path)
        subprocess.check_call(["hg", "commit", "-m", "modified"], cwd=remote_path)
        po = subprocess.Popen(["hg", "log", "--template", "'{node|short}'", "-l1"], cwd=remote_path, stdout=subprocess.PIPE)
        self.readonly_version = po.stdout.read().rstrip("'").lstrip("'")

        self.readonly_path = os.path.join(directory, "readonly")
        self.readonly_url = remote_path
        
        client = HgClient(self.readonly_path)
        self.assertTrue(client.checkout(remote_path, self.readonly_version))
Exemple #32
0
 def test_get_log_path(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log(relpath='fixed.txt')
     self.assertEquals('initial', log[0]['message'])
Exemple #33
0
 def test_get_log_limit(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log(limit=1)
     self.assertEquals(1, len(log))
     self.assertEquals('modified', log[0]['message'])
Exemple #34
0
 def test_checkout_emptystringversion(self):
     # special test to check that version '' means the same as None
     url = self.local_url
     client = HgClient(self.local_path)
     self.assertTrue(client.checkout(url, ''))
     self.assertEqual(client.get_version(), self.local_version)
Exemple #35
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
Exemple #36
0
 def test_get_log_limit(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log(limit=1)
     self.assertEquals(1, len(log))
     self.assertEquals('modified', log[0]['message'])
Exemple #37
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url)
Exemple #38
0
 def test_get_log_path(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log(relpath="fixed.txt")
     self.assertEquals("initial", log[0]["message"])
Exemple #39
0
 def test_get_log_path(self):
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
     log = client.get_log(relpath='fixed.txt')
     self.assertEquals('initial', log[0]['message'])
Exemple #40
0
 def test_checkout_emptystringversion(self):
     # special test to check that version '' means the same as None
     url = self.local_url
     client = HgClient(self.local_path)
     self.assertTrue(client.checkout(url, ''))
     self.assertEqual(client.get_version(), self.local_version)