コード例 #1
0
 def _prompt_for_use_docker(self, project):
     self._use_docker = input_with_validation(
         "Use docker for platform-independent packaging (Y/n)?\n",
         validate_no,
         "This is highly recommended unless you are experienced \n"
         "with cross-platform Python packaging.",
     )
     project.settings["use_docker"] = self._use_docker
コード例 #2
0
    def _prompt_for_codegen_model(project):
        prompt = "Choose codegen model - 1 (default) or 2 (guided-aws): "

        codegen_model = input_with_validation(
            prompt, validate_codegen_model(CODEGEN.default_code))

        project.settings["codegen_template_path"] = CODEGEN.default

        if codegen_model == CODEGEN.guided_code:
            project.settings["codegen_template_path"] = CODEGEN.guided
コード例 #3
0
 def _init_settings(self, project):
     LOG.debug("Writing settings")
     self._use_docker = input_with_validation(
         "Use docker for platform-independent packaging (Y/n)?\n",
         validate_no,
         "This is highly recommended unless you are experienced \n"
         "with cross-platform Python packaging.",
     )
     project.settings["use_docker"] = self._use_docker
     project.settings["protocolVersion"] = self._protocol_version
コード例 #4
0
    def _prompt_for_go_path(self, project):
        path_validator = validate_path("")
        import_path = path_validator(
            project.settings.get("import_path",
                                 project.settings.get("importpath")))

        if not import_path:
            prompt = "Enter the GO Import path"
            import_path = input_with_validation(prompt, path_validator)

        self.import_path = import_path
        project.settings["import_path"] = str(self.import_path)
コード例 #5
0
    def _prompt_for_namespace(self, project):
        if project.type_info[0] == "AWS":
            namespace = ("software", "amazon") + project.type_info[1:]
        else:
            namespace = ("com", ) + project.type_info

        namespace = tuple(safe_reserved(s.lower()) for s in namespace)

        prompt = "Enter a package name (empty for default '{}'): ".format(
            ".".join(namespace))

        self.namespace = input_with_validation(prompt,
                                               validate_namespace(namespace))
        project.settings["namespace"] = self.namespace
        self.package_name = ".".join(self.namespace)
コード例 #6
0
def test_input_with_validation_valid_first_try(capsys):
    sentinel1 = object()
    sentinel2 = object()

    validator = Mock(return_value=sentinel1)
    with patch("rpdk.core.init.input", return_value=sentinel2) as mock_input:
        ret = input_with_validation(PROMPT, validator)

    mock_input.assert_called_once_with()
    validator.assert_called_once_with(sentinel2)
    assert ret is sentinel1

    out, err = capsys.readouterr()
    assert not err
    assert PROMPT in out
コード例 #7
0
def test_input_with_validation_valid_second_try(capsys):
    def mock_validator(value):
        if value == ERROR:
            raise WizardValidationError(ERROR)
        return value

    sentinel = object()

    with patch("rpdk.core.init.input",
               side_effect=(ERROR, sentinel)) as mock_input:
        ret = input_with_validation(PROMPT, mock_validator)

    assert mock_input.call_count == 2
    assert ret is sentinel

    out, err = capsys.readouterr()
    assert not err
    assert ERROR in out
コード例 #8
0
 def _prompt_for_go_path(self, project):
     namespace = project.root
     prompt = "Enter the GO Import path"
     self.import_path = input_with_validation(prompt, validate_path(""))
     project.settings["importpath"] = str(self.import_path)