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
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
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
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)
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)
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
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
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)