コード例 #1
0
ファイル: utils.py プロジェクト: campusrover/fido
def gather_dependencies(path: str) -> None:
    """Gather all dependencies.

    This is equivalent to calling `rosws update` on the given workspace path.

    Internal use only.

    Args:
        path (str): Workspace path.
    """
    path = os.path.abspath(path)

    # Workaround for dealing with local path with spaces.
    # Note: This is a slower alternative to `rosws`.
    if " " in path:
        import_.main(args=[
            "--input",
            os.path.join(path, ".rosinstall"),
            "--shallow",
            "--debug",
            path,
        ])
    else:
        cli = RoswsCLI()
        cli.cmd_update(path, ["-t", path])
コード例 #2
0
ファイル: test_rosws.py プロジェクト: eacousineau/rosinstall
 def test_remove(self):
     workspace = os.path.join(self.test_root_path, 'ws3')
     cli = RoswsCLI()
     self.assertEqual(0, cli.cmd_init([workspace, self.simple_rosinstall]))
     self.assertEqual(0, cli.cmd_merge(workspace, [self.simple_changed_vcs_rosinstall, '-y']))
     self.assertEqual(0, cli.cmd_update(workspace, []))
     config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
     self.assertEqual(3, len(config.get_config_elements()))
     self.assertEqual(0, cli.cmd_remove(workspace, ['hgrepo']))
     config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
     self.assertEqual(2, len(config.get_config_elements()))
コード例 #3
0
 def test_merge(self):
     workspace = os.path.join(self.test_root_path, 'ws2')
     cli = RoswsCLI()
     self.assertEqual(0, cli.cmd_init([workspace, self.simple_rosinstall]))
     self.assertEqual(0, cli.cmd_merge(workspace, [self.simple_changed_vcs_rosinstall, '-y']))
     self.assertFalse(os.path.isdir(os.path.join(workspace, 'hgrepo')))
     self.assertFalse(os.path.isdir(os.path.join(workspace, 'hgrepo', '.hg')))
     self.assertEqual(0, cli.cmd_update(workspace, []))
     self.assertTrue(os.path.isdir(os.path.join(workspace, 'hgrepo')))
     self.assertTrue(os.path.isdir(os.path.join(workspace, 'hgrepo', '.hg')))
     config = wstool.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
     self.assertEqual(3, len(config.get_config_elements()))
コード例 #4
0
ファイル: test_rosws.py プロジェクト: eacousineau/rosinstall
 def test_set_detached(self):
     workspace = os.path.join(self.test_root_path, 'ws4')
     cli = RoswsCLI()
     self.assertEqual(0, cli.cmd_init([workspace, self.simple_rosinstall]))
     self.assertEqual(0, cli.cmd_merge(workspace, [self.simple_changed_vcs_rosinstall, '-y']))
     self.assertEqual(0, cli.cmd_update(workspace, []))
     config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
     self.assertEqual(3, len(config.get_config_elements()))
     self.assertEqual('ros', config.get_config_elements()[0].get_local_name())
     self.assertEqual('gitrepo', config.get_config_elements()[1].get_local_name())
     self.assertEqual(True, config.get_config_elements()[1].is_vcs_element())
     self.assertEqual('hgrepo', config.get_config_elements()[2].get_local_name())
     self.assertEqual(0, cli.cmd_set(workspace, [os.path.join(workspace, 'gitrepo'), '--detached', '-y']))
     config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
     self.assertEqual(3, len(config.get_config_elements()))
     self.assertEqual('ros', config.get_config_elements()[0].get_local_name())
     self.assertEqual('gitrepo', config.get_config_elements()[1].get_local_name())
     self.assertEqual(False, config.get_config_elements()[1].is_vcs_element())
     self.assertEqual('hgrepo', config.get_config_elements()[2].get_local_name())
コード例 #5
0
ファイル: test_rosws.py プロジェクト: eacousineau/rosinstall
    def test_set_add_scm(self):
        workspace = os.path.join(self.test_root_path, 'ws6')
        cli = RoswsCLI()
        self.assertEqual(0, cli.cmd_init([workspace, self.simple_rosinstall]))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        self.assertEqual(2, len(config.get_config_elements()))
        self.assertEqual('ros', config.get_config_elements()[0].get_local_name())
        self.assertEqual('gitrepo', config.get_config_elements()[1].get_local_name())

        # scm repo
        self.assertEqual(0, cli.cmd_set(workspace, [os.path.join(workspace, 'hgrepo'), '../hgrepo', '-y', '--hg']))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        self.assertEqual(3, len(config.get_config_elements()))
        self.assertEqual('ros', config.get_config_elements()[0].get_local_name())
        self.assertEqual('gitrepo', config.get_config_elements()[1].get_local_name())
        self.assertTrue(config.get_config_elements()[2].is_vcs_element())
        self.assertEqual('hgrepo', config.get_config_elements()[2].get_local_name())
        self.assertFalse(os.path.exists(os.path.join(workspace, 'hgrepo')))

        self.assertEqual(0, cli.cmd_update(workspace, []))
        self.assertTrue(os.path.exists(os.path.join(workspace, 'hgrepo')))

        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertFalse(path_spec is None)
        self.assertEqual(None, path_spec.get_version())
        self.assertEqual(None, path_spec.get_revision())
        self.assertFalse(path_spec.get_current_revision() is None)

        self.assertEqual(0, cli.cmd_set(workspace, [os.path.join(workspace, 'hgrepo'), '--version-new=0', '-y']))

        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual('0', path_spec.get_version())
        self.assertFalse(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)
        self.assertEqual(path_spec.get_revision(), path_spec.get_current_revision())

        # change in FS to version 1
        subprocess.check_call(["touch", "hgfixed2.txt"], cwd=os.path.join(workspace, 'hgrepo'))
        subprocess.check_call(["hg", "add", "hgfixed2.txt"], cwd=os.path.join(workspace, 'hgrepo'))
        subprocess.check_call(["hg", "commit", "-m", "2nd"], cwd=os.path.join(workspace, 'hgrepo'))
        self.assertTrue(os.path.exists(os.path.join(workspace, 'hgrepo', 'hgfixed2.txt')))

        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual('0', path_spec.get_version())
        self.assertFalse(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)
        self.assertNotEqual(path_spec.get_revision(), path_spec.get_current_revision())

        # revert FS to spec
        self.assertEqual(0, cli.cmd_update(workspace, []))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual('0', path_spec.get_version())
        self.assertFalse(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)
        self.assertEqual(path_spec.get_revision(), path_spec.get_current_revision())

        # change spec to 1
        self.assertEqual(0, cli.cmd_set(workspace, [os.path.join(workspace, 'hgrepo'), '--version-new=1', '-y']))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual('1', path_spec.get_version())
        self.assertFalse(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)
        self.assertNotEqual(path_spec.get_revision(), path_spec.get_current_revision())

        # setting version to ''
        self.assertEqual(0, cli.cmd_set(workspace, [os.path.join(workspace, 'hgrepo'), "--version-new=''", '-y']))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual(None, path_spec.get_version())
        self.assertTrue(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)

        self.assertEqual(0, cli.cmd_update(workspace, []))
        config = rosinstall.multiproject_cmd.get_config(workspace, config_filename='.rosinstall')
        path_spec = config.get_config_elements()[2].get_versioned_path_spec()
        self.assertEqual(None, path_spec.get_version())
        self.assertTrue(path_spec.get_revision() is None)
        self.assertFalse(path_spec.get_current_revision() is None)