@Override
    public void applyToConfiguration(Configuration configuration) {
        super.applyToConfiguration(configuration);
        merge(configuration, pythonConfiguration);
    }
@Test
    void testCreateProgramOptionsWithPythonCommandLine() throws CliArgsException {
        String[] parameters = {
            "-py", "test.py",
            "-pym", "test",
            "-pyfs", "test1.py,test2.zip,test3.egg,test4_dir",
            "-pyreq", "a.txt#b_dir",
            "-pyarch", "c.zip#venv,d.zip",
            "-pyexec", "bin/python",
            "-pypath", "bin/python/lib/:bin/python/lib64",
            "userarg1", "userarg2"
        };

        CommandLine line = CliFrontendParser.parse(options, parameters, false);
        PythonProgramOptions programOptions = (PythonProgramOptions) ProgramOptions.create(line);
        Configuration config = new Configuration();
        programOptions.applyToConfiguration(config);
        assertThat(config.get(PythonOptions.PYTHON_FILES))
                .isEqualTo("test1.py,test2.zip,test3.egg,test4_dir");
        assertThat(config.get(PYTHON_REQUIREMENTS)).isEqualTo("a.txt#b_dir");
        assertThat(config.get(PythonOptions.PYTHON_ARCHIVES)).isEqualTo("c.zip#venv,d.zip");
        assertThat(config.get(PYTHON_EXECUTABLE)).isEqualTo("bin/python");
        assertThat(config.get(PythonOptions.PYTHON_PATH))
                .isEqualTo("bin/python/lib/:bin/python/lib64");
        assertThat(programOptions.getProgramArgs())
                .containsExactly(
                        "--python", "test.py", "--pyModule", "test", "userarg1", "userarg2");
    }