def test_diff_relpath(self):
        from vcstools.hg import HgClient
        client = HgClient(self.readonly_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())

        self.assertEquals('diff --git readonly/added.txt readonly/added.txt\nnew file mode 100644\n--- /dev/null\n+++ readonly/added.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git readonly/deleted.txt readonly/deleted.txt\ndeleted file mode 100644\ndiff --git readonly/modified-fs.txt readonly/modified-fs.txt\n--- readonly/modified-fs.txt\n+++ readonly/modified-fs.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git readonly/modified.txt readonly/modified.txt\n--- readonly/modified.txt\n+++ readonly/modified.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\n\n', client.get_diff(basepath=os.path.dirname(self.readonly_path)))
Esempio n. 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')
Esempio n. 3
0
    def test_get_branches(self):
        client = HgClient(self.local_path)
        # Make a local branch
        subprocess.check_call('hg branch test_branch2',
                              shell=True,
                              cwd=self.local_path,
                              stdout=subprocess.PIPE)
        subprocess.check_call('hg commit -m "Making test_branch2"',
                              shell=True,
                              cwd=self.local_path,
                              stdout=subprocess.PIPE)
        self.assertEqual(client.get_branches(),
                         ['test_branch2', 'test_branch', 'default'])

        # Make a remote branch
        subprocess.check_call('hg branch remote_branch',
                              shell=True,
                              cwd=self.remote_path,
                              stdout=subprocess.PIPE)
        subprocess.check_call("touch fixed.txt",
                              shell=True,
                              cwd=self.remote_path)
        subprocess.check_call("hg add fixed.txt",
                              shell=True,
                              cwd=self.remote_path)
        subprocess.check_call("hg commit -m initial",
                              shell=True,
                              cwd=self.remote_path)
        self.assertEqual(client.get_branches(local_only=True),
                         ['test_branch2', 'test_branch', 'default'])
        self.assertEqual(
            client.get_branches(),
            ['remote_branch', 'test_branch2', 'test_branch', 'default'])
Esempio n. 4
0
 def test_get_environment_metadata(self):
     # Verify that metadata is generated
     directory = tempfile.mkdtemp()
     self.directories['local'] = directory
     local_path = os.path.join(directory, "local")
     client = HgClient(local_path)
     self.assertTrue('version' in client.get_environment_metadata())
Esempio n. 5
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)
Esempio n. 6
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)
Esempio n. 7
0
 def testStatusUntracked(self):
     client = HgClient(self.local_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         'M modified-fs.txt\nM modified.txt\nA added.txt\nR deleted.txt\n! deleted-fs.txt\n? added-fs.txt\n',
         client.get_status(untracked=True))
Esempio n. 8
0
 def test_status_relpath(self):
     client = HgClient(self.local_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         'M local/modified-fs.txt\nM local/modified.txt\nA local/added.txt\nR local/deleted.txt\n! local/deleted-fs.txt\n',
         client.get_status(basepath=os.path.dirname(self.local_path)))
Esempio n. 9
0
    def test_export_repository(self):
        client = HgClient(self.local_path)
        self.assertTrue(client.export_repository(self.local_version, self.basepath_export))

        self.assertTrue(os.path.exists(self.basepath_export + ".tar.gz"))
        self.assertFalse(os.path.exists(self.basepath_export + ".tar"))
        self.assertFalse(os.path.exists(self.basepath_export))
Esempio n. 10
0
    def test_diff_relpath(self):

        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())

        self.assertEquals(
            '''\
diff --git local/added.txt local/added.txt
new file mode 100644
--- /dev/null
+++ local/added.txt
@@ -0,0 +1,1 @@
+0123456789abcdef
\\ No newline at end of file
diff --git local/deleted.txt local/deleted.txt
deleted file mode 100644
diff --git local/modified-fs.txt local/modified-fs.txt
--- local/modified-fs.txt
+++ local/modified-fs.txt
@@ -0,0 +1,1 @@
+0123456789abcdef
\\ No newline at end of file
diff --git local/modified.txt local/modified.txt
--- local/modified.txt
+++ local/modified.txt
@@ -0,0 +1,1 @@
+0123456789abcdef
\\ No newline at end of file''',
            client.get_diff(basepath=os.path.dirname(self.local_path)))
Esempio n. 11
0
 def test_status(self):
     client = HgClient(self.local_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         "M modified-fs.txt\nM modified.txt\nA added.txt\nR deleted.txt\n! deleted-fs.txt\n", client.get_status()
     )
Esempio n. 12
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')
Esempio n. 13
0
 def test_get_environment_metadata(self):
     # Verify that metadata is generated
     directory = tempfile.mkdtemp()
     self.directories['local'] = directory
     local_path = os.path.join(directory, "local")
     client = HgClient(local_path)
     self.assertTrue('version' in client.get_environment_metadata())
Esempio n. 14
0
    def test_diff_relpath(self):

        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())

        self.assertEquals('diff --git local/added.txt local/added.txt\nnew file mode 100644\n--- /dev/null\n+++ local/added.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git local/deleted.txt local/deleted.txt\ndeleted file mode 100644\ndiff --git local/modified-fs.txt local/modified-fs.txt\n--- local/modified-fs.txt\n+++ local/modified-fs.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git local/modified.txt local/modified.txt\n--- local/modified.txt\n+++ local/modified.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file', client.get_diff(basepath=os.path.dirname(self.local_path)))
Esempio n. 15
0
 def test_status_relpath(self):
     client = HgClient(self.local_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         "M local/modified-fs.txt\nM local/modified.txt\nA local/added.txt\nR local/deleted.txt\n! local/deleted-fs.txt\n",
         client.get_status(basepath=os.path.dirname(self.local_path)),
     )
Esempio n. 16
0
    def test_export_repository(self):
        client = HgClient(self.local_path)
        self.assertTrue(
            client.export_repository(self.local_version, self.basepath_export))

        self.assertTrue(os.path.exists(self.basepath_export + '.tar.gz'))
        self.assertFalse(os.path.exists(self.basepath_export + '.tar'))
        self.assertFalse(os.path.exists(self.basepath_export))
Esempio n. 17
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))
Esempio n. 18
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)
Esempio n. 19
0
 def test_status_relpath(self):
     from vcstools.hg import HgClient
     client = HgClient(self.readonly_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         'M readonly/modified-fs.txt\nM readonly/modified.txt\nA readonly/added.txt\nR readonly/deleted.txt\n! readonly/deleted-fs.txt\n',
         client.get_status(basepath=os.path.dirname(self.readonly_path)))
Esempio n. 20
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)
Esempio n. 21
0
 def testStatusUntracked(self):
     from vcstools.hg import HgClient
     client = HgClient(self.readonly_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals(
         'M modified-fs.txt\nM modified.txt\nA added.txt\nR deleted.txt\n! deleted-fs.txt\n? added-fs.txt\n',
         client.get_status(untracked=True))
Esempio n. 22
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))
Esempio n. 23
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))
Esempio n. 24
0
    def test_diff(self):

        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEquals(
            'diff --git ./added.txt ./added.txt\nnew file mode 100644\n--- /dev/null\n+++ ./added.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git ./deleted.txt ./deleted.txt\ndeleted file mode 100644\ndiff --git ./modified-fs.txt ./modified-fs.txt\n--- ./modified-fs.txt\n+++ ./modified-fs.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git ./modified.txt ./modified.txt\n--- ./modified.txt\n+++ ./modified.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file',
            client.get_diff())
Esempio n. 25
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)
Esempio n. 26
0
    def test_diff_relpath(self):
        from vcstools.hg import HgClient
        client = HgClient(self.readonly_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())

        self.assertEquals(
            'diff --git readonly/added.txt readonly/added.txt\nnew file mode 100644\n--- /dev/null\n+++ readonly/added.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git readonly/deleted.txt readonly/deleted.txt\ndeleted file mode 100644\ndiff --git readonly/modified-fs.txt readonly/modified-fs.txt\n--- readonly/modified-fs.txt\n+++ readonly/modified-fs.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git readonly/modified.txt readonly/modified.txt\n--- readonly/modified.txt\n+++ readonly/modified.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\n\n',
            client.get_diff(basepath=os.path.dirname(self.readonly_path)))
Esempio n. 27
0
    def test_diff(self):

        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEquals(
            "diff --git ./added.txt ./added.txt\nnew file mode 100644\n--- /dev/null\n+++ ./added.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git ./deleted.txt ./deleted.txt\ndeleted file mode 100644\ndiff --git ./modified-fs.txt ./modified-fs.txt\n--- ./modified-fs.txt\n+++ ./modified-fs.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file\ndiff --git ./modified.txt ./modified.txt\n--- ./modified.txt\n+++ ./modified.txt\n@@ -0,0 +1,1 @@\n+0123456789abcdef\n\\ No newline at end of file",
            client.get_diff(),
        )
 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)
Esempio n. 29
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')
Esempio n. 30
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)
Esempio n. 31
0
    def test_status(self):
        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEquals(
            '''\
M modified-fs.txt
M modified.txt
A added.txt
R deleted.txt
! deleted-fs.txt
''', client.get_status())
Esempio n. 32
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))
Esempio n. 33
0
    def test_status_relpath(self):
        client = HgClient(self.local_path)
        self.assertTrue(client.path_exists())
        self.assertTrue(client.detect_presence())
        self.assertEquals(
            '''\
M local/modified-fs.txt
M local/modified.txt
A local/added.txt
R local/deleted.txt
! local/deleted-fs.txt
'''.replace("/", os.path.sep),
            client.get_status(basepath=os.path.dirname(self.local_path)))
Esempio n. 34
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)
Esempio n. 35
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)
Esempio n. 36
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)
Esempio n. 37
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)
Esempio n. 38
0
 def test_get_url_by_reading(self):
     from vcstools.hg import HgClient
     client = HgClient(self.readonly_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_url(), self.readonly_url)
     self.assertEqual(client.get_version(), self.readonly_version)
     self.assertEqual(client.get_version(self.readonly_version_init[0:6]),
                      self.readonly_version_init + '+')
     self.assertEqual(client.get_version("test_tag"),
                      self.readonly_version_init + '+')
Esempio n. 39
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)
Esempio n. 40
0
 def test_get_url_by_reading(self):
     from vcstools.hg import HgClient
     client = HgClient(self.readonly_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEqual(client.get_url(), self.readonly_url)
     self.assertEqual(client.get_version(), self.readonly_version)
     self.assertEqual(client.get_version(self.readonly_version_init[0:6]), self.readonly_version_init+'+')
     self.assertEqual(client.get_version("test_tag"), self.readonly_version_init+'+')
Esempio n. 41
0
    def test_get_branches(self):
        client = HgClient(self.local_path)
        # Make a local branch
        subprocess.check_call('hg branch test_branch2', shell=True,
                              cwd=self.local_path, stdout=subprocess.PIPE)
        subprocess.check_call('hg commit -m "Making test_branch2"', shell=True,
                              cwd=self.local_path, stdout=subprocess.PIPE)
        self.assertEqual(client.get_branches(), ['test_branch2', 'test_branch', 'default'])

        # Make a remote branch
        subprocess.check_call('hg branch remote_branch', shell=True,
                              cwd=self.remote_path, stdout=subprocess.PIPE)
        subprocess.check_call("touch fixed.txt", shell=True,
                              cwd=self.remote_path)
        subprocess.check_call("hg add fixed.txt", shell=True,
                              cwd=self.remote_path)
        subprocess.check_call("hg commit -m initial", shell=True,
                              cwd=self.remote_path)
        self.assertEqual(client.get_branches(local_only=True), ['test_branch2', 'test_branch', 'default'])
        self.assertEqual(client.get_branches(), ['remote_branch', 'test_branch2', 'test_branch', 'default'])
Esempio n. 42
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)
Esempio n. 43
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))
Esempio n. 44
0
 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)
Esempio n. 45
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))
Esempio n. 46
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)
Esempio n. 47
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)
Esempio n. 48
0
 def testDiffClean(self):
     client = HgClient(self.remote_path)
     self.assertEquals('', client.get_diff())
Esempio n. 49
0
 def test_get_version_modified(self):
     client = HgClient(self.local_path)
     self.assertFalse(client.get_version().endswith('+'))
Esempio n. 50
0
 def testStatusClean(self):
     client = HgClient(self.remote_path)
     self.assertEquals('', client.get_status())
Esempio n. 51
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'])
Esempio n. 52
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'])
Esempio n. 53
0
 def testStatusUntracked(self):
     client = HgClient(self.local_path)
     self.assertTrue(client.path_exists())
     self.assertTrue(client.detect_presence())
     self.assertEquals('M modified-fs.txt\nM modified.txt\nA added.txt\nR deleted.txt\n! deleted-fs.txt\n? added-fs.txt\n', client.get_status(untracked=True))
Esempio n. 54
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     client = HgClient(self.local_path)
     client.checkout(self.local_url)
Esempio n. 55
0
 def setUpClass(self):
     HGClientTestSetups.setUpClass()
     url = self.local_url
     client = HgClient(self.local_path)
     client.checkout(url)
Esempio n. 56
0
 def testDiffClean(self):
     client = HgClient(self.remote_path)
     self.assertEquals('', client.get_diff())
Esempio n. 57
0
 def test_get_version_modified(self):
     client = HgClient(self.local_path)
     self.assertFalse(client.get_version().endswith('+'))
Esempio n. 58
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'])
Esempio n. 59
0
 def testStatusClean(self):
     client = HgClient(self.remote_path)
     self.assertEquals('', client.get_status())
Esempio n. 60
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'])