Ejemplo n.º 1
0
 def test_tag_from_output(self):
     """Test getting a tag from a pull output."""
     http_url = "https://github.com/niosus/catkin_tools_fetch"
     _, output = GitBridge.clone("catkin_tools_fetch", http_url,
                                 self.test_dir)
     output = GitBridge.pull(self.test_dir, "master")
     tag = Updater.tag_from_output(output)
     self.assertEqual(tag, Updater.UP_TO_DATE_TAG)
Ejemplo n.º 2
0
    def test_pull(self):
        """Test pulling a repository."""
        http_url = "https://github.com/niosus/catkin_tools_fetch"
        _, output = GitBridge.clone("catkin_tools_fetch", http_url,
                                    self.test_dir)
        output = GitBridge.pull(self.test_dir, "master")
        expected_msg = b"""From https://github.com/niosus/catkin_tools_fetch
 * branch            master     -> FETCH_HEAD"""
        self.assertTrue(output.startswith(expected_msg))
Ejemplo n.º 3
0
 def test_clone(self):
     """Test if cloning works as expected."""
     wrong_url = "https://github.com/niosus"
     name, result = GitBridge.clone("name", wrong_url, self.test_dir)
     self.assertEqual(name, "name")
     self.assertEqual(result, GitBridge.ERROR_TAG)
     http_url = "https://github.com/niosus/catkin_tools_fetch"
     _, result = GitBridge.clone("", http_url, self.test_dir)
     self.assertEqual(result, GitBridge.CLONED_TAG.format(branch="master"))
     _, result = GitBridge.clone("", http_url, ".")
     self.assertEqual(result, GitBridge.EXISTS_TAG)
Ejemplo n.º 4
0
 def test_update_full_simple(self):
     """Test updater end to end on single repo."""
     http_url = "https://github.com/niosus/catkin_tools_fetch"
     GitBridge.clone("fetch", http_url, self.test_dir)
     pkg = MagicMock()
     type(pkg).name = PropertyMock(return_value="pkg")
     packages = {".": pkg}
     updater = Updater(self.test_dir, packages, "abort")
     selected_packages = [pkg.name]
     status_msgs = updater.update_packages(selected_packages)
     self.assertEquals(len(status_msgs), 1)
     self.assertEquals(status_msgs[0][0], "pkg")
     self.assertEquals(status_msgs[0][1],
                       colored(Updater.UP_TO_DATE_TAG, "green"))
Ejemplo n.º 5
0
    def test_repository_exists(self):
        """Test behavior if repository exists."""
        http_url = "https://github.com/niosus/catkin_tools_fetch"
        dependency = Dependency(name='test', url=http_url)
        dep_res, exists = GitBridge.repository_exists(dependency)
        self.assertTrue(exists)
        self.assertEqual(dep_res.name, dependency.name)

        wrong_url = "https://github.com/niosus"
        dependency = Dependency(name='test', url=wrong_url)
        dep_res, exists = GitBridge.repository_exists(dependency)
        self.assertFalse(exists)
        dependency = Dependency(name='empty', url='')
        dep_res, exists = GitBridge.repository_exists(dependency)
        self.assertFalse(exists)
Ejemplo n.º 6
0
 def pick_tag(self, folder, package):
     """Pick result tag for a folder."""
     if self.use_preprint:
         msg = " {}: {}".format(Tools.decorate(package.name),
                                Updater.RUNNING_TAG)
         self.printer.add_msg(package.name, msg)
     output, branch, has_changes = GitBridge.status(folder)
     if has_changes:
         return package, Updater.CHANGES_TAG
     try:
         output = GitBridge.pull(folder, branch)
         return package, Updater.tag_from_output(output)
     except subprocess.CalledProcessError as e:
         log.debug(" git pull returned error: %s", e)
         return package, Updater.ERROR_TAG
Ejemplo n.º 7
0
 def __clone_dependency(self, pkg_name, url, dep_path, branch):
     """Clone a single dependency. Return a future to the clone process."""
     if self.use_preprint:
         msg = " {}: {}".format(Tools.decorate(pkg_name),
                                Downloader.CLONING_TAG)
         self.printer.add_msg(pkg_name, msg)
     return GitBridge.clone(pkg_name, url, dep_path, branch)
Ejemplo n.º 8
0
    def test_status(self):
        """Test that git status gives us branch and status."""
        http_url = "https://github.com/niosus/catkin_tools_fetch"
        name, result = GitBridge.clone("test", http_url, self.test_dir)
        self.assertEqual(name, "test")
        self.assertEqual(result, GitBridge.CLONED_TAG.format(branch="master"))
        output, branch, has_changes = GitBridge.status(self.test_dir)
        expected_output = b"## master...origin/master\n"
        self.assertEqual(output, expected_output)
        self.assertEqual(branch, "master")
        self.assertFalse(has_changes)
        test_file = os.path.join(self.test_dir, "test_file.txt")
        with open(test_file, 'a'):
            output, branch, has_changes = GitBridge.status(self.test_dir)
            expected_output = b"""## master...origin/master
?? test_file.txt
"""
            self.assertEqual(output, expected_output)
            self.assertEqual(branch, "master")
            self.assertTrue(has_changes)
Ejemplo n.º 9
0
    def test_get_branch_name(self):
        """Test getting the branch name."""
        test_output = """## master...origin/master
M package.xml
M src/nodes/full_stack.cpp
M src/scripts/CMakeLists.txt
M src/utils/velodyne_utils.cpp
M src/visualization/visualizer.cpp
?? src/scripts/kitti_show_boxes.cpp
"""
        print(test_output)
        branch = GitBridge.get_branch_name(test_output)
        self.assertEqual(branch, "master")
Ejemplo n.º 10
0
 def __check_dependency(self, dependency):
     if self.use_preprint:
         msg = " {}: {}".format(Tools.decorate(dependency.name),
                                Downloader.CHECKING_TAG)
         self.printer.add_msg(dependency.name, msg)
     return GitBridge.repository_exists(dependency)