Ejemplo n.º 1
0
    def test_resolves_aliased_task(self):
        """Checks 'alias groups' feature about to resolve some group name to other group name

        Example:
            :bella-ciao:sh -> :sh
        """

        context = ApplicationContext(
            tasks=[TaskDeclaration(ShellCommandTask())],
            aliases=[],
            directory='')
        context.compile()
        result_tasks = []

        def assertion_callback(declaration: TaskDeclaration,
                               task_num: int,
                               parent: Union[GroupDeclaration, None] = None,
                               args: list = []):
            result_tasks.append(declaration.to_full_name())

        resolver = TaskResolver(context,
                                parse_alias_groups_from_env(':bella-ciao->'))
        resolver.resolve([TaskArguments(':bella-ciao:sh', [])],
                         assertion_callback)

        self.assertEqual([':sh'], result_tasks)
Ejemplo n.º 2
0
    def test_resolves_two_same_type_tasks_group_into_regular_tasks(self):
        """
        Tests that we can make an alias :test that will execute two times :sh command, but with different parameters
        :return:
        """

        context = ApplicationContext(
            tasks=[TaskDeclaration(ShellCommandTask())],
            aliases=[
                TaskAliasDeclaration(
                    ':test', [':sh', '-c', 'uname -a', ':sh', '-c', 'ps aux'],
                    description='Task for testing')
            ],
            directory='')

        context.compile()

        result_tasks = []

        def assertion_callback(declaration: TaskDeclaration,
                               task_num: int,
                               parent: Union[GroupDeclaration, None] = None,
                               args: list = []):
            result_tasks.append(declaration.to_full_name() + ' ' +
                                (' '.join(declaration.get_args())))

        resolver = TaskResolver(context, [])
        resolver.resolve([TaskArguments(':test', ['--short'])],
                         assertion_callback)

        self.assertEqual([':sh -c uname -a', ':sh -c ps aux'], result_tasks)
        def test(dataset_name, dataset):
            task = InitTask()
            task._io = IO()
            task.get_declared_envs = lambda: dataset['declared_envs']

            context = ExecutionContext(TaskDeclaration(task),
                                       args=dataset['switches'],
                                       env=dataset['envs'],
                                       defined_args=dataset['defined_args'])
            self.assertEqual(dataset['expects'],
                             context.get_arg_or_env(dataset['test_switch']),
                             msg='Dataset failed: %s' % dataset_name)
Ejemplo n.º 4
0
    def test_resoles_regular_task(self):
        """Checks that :sh resolution works fine"""

        context = ApplicationContext(
            tasks=[TaskDeclaration(ShellCommandTask())],
            aliases=[],
            directory='')

        context.compile()

        result_tasks = []

        def assertion_callback(declaration: TaskDeclaration,
                               task_num: int,
                               parent: Union[GroupDeclaration, None] = None,
                               args: list = []):
            result_tasks.append(declaration.to_full_name())

        resolver = TaskResolver(context, [])
        resolver.resolve([TaskArguments(':sh', [])], assertion_callback)

        self.assertEqual([':sh'], result_tasks)
Ejemplo n.º 5
0
 def assertion_callback(declaration: TaskDeclaration,
                        task_num: int,
                        parent: Union[GroupDeclaration, None] = None,
                        args: list = []):
     result_tasks.append(declaration.to_full_name())