예제 #1
0
    def test_script_executes_successfully_with_extra_parameters_and_with_python_files(
            self):
        mocked_args = Mock()
        mocked_args.output_dir = '/path/to/code'
        mocked_args.configuration_file = 'configuration.test'
        mocked_args.extra = ['template=none']
        mocked_args.template_dir = '/path/to/template'
        mocked_args.cluster_information = False

        mocked_wf_templates_render = self.__get_mocked_templates_render()
        mocked_filesystem = self.__get_mocked_filesystem()

        mocked_wf_configuration = self.__get_mocked_wf_configuration()
        mocked_wf_configuration.config_paths = ['python.py']

        mocked_injector = Mock()
        mocked_injector.get = Mock(side_effect=[
            self.__generate_test_logger(), mocked_wf_configuration,
            mocked_wf_templates_render, mocked_filesystem, mocked_filesystem
        ])

        Tlacuilo(Mock).run(mocked_args, mocked_injector)

        assert mocked_wf_templates_render.render_workflow_folder.called
        assert mocked_filesystem.mkdir.called
        assert mocked_filesystem.cp.called
예제 #2
0
    def test_script_raise_an_error_when_path_is_not_absolute(self):
        mocked_args = Mock()
        mocked_args.output_dir = '../path/to/code'

        with pytest.raises(IOError) as error:
            Tlacuilo(Mock()).run(mocked_args, Mock())

            assert 'Output directory should be an absolute path in order to save the files' == error.message
예제 #3
0
    def test_script_can_be_configured(self):
        mocked_args_parser = Mock()
        mocked_args_parser.add_parser = Mock(return_value=mocked_args_parser)
        mocked_args_parser.add_argument = Mock(return_value=True)

        Tlacuilo(mocked_args_parser).configure()

        assert 8 == mocked_args_parser.add_argument.call_count
예제 #4
0
    def test_script_executes_successfully_without_extra_parameters(self):
        mocked_wf_templates_render = self.__get_mocked_templates_render()

        mocked_injector = Mock()
        mocked_injector.get = Mock(side_effect=[
            self.__generate_test_logger(),
            self.__get_mocked_wf_configuration(), mocked_wf_templates_render
        ])

        Tlacuilo(Mock).run(
            self.__get_mocked_cli_arguments_without_extra_params(),
            mocked_injector)

        assert mocked_wf_templates_render.render_workflow_folder.called