def test_supports_stack_outputs(self): stack_name = stack_namer() project_name = "inline_python" stack = create_stack(stack_name, program=pulumi_program, project_name=project_name) stack_config: ConfigMap = { "bar": ConfigValue(value="abc"), "buzz": ConfigValue(value="secret", secret=True) } def assertOutputs(outputs): self.assertEqual(len(outputs), 3) self.assertEqual(outputs["exp_static"].value, "foo") self.assertFalse(outputs["exp_static"].secret) self.assertEqual(outputs["exp_cfg"].value, "abc") self.assertFalse(outputs["exp_cfg"].secret) self.assertEqual(outputs["exp_secret"].value, "secret") self.assertTrue(outputs["exp_secret"].secret) try: stack.set_all_config(stack_config) initial_outputs = stack.outputs() self.assertEqual(len(initial_outputs), 0) # pulumi up up_res = stack.up() self.assertEqual(up_res.summary.kind, "update") self.assertEqual(up_res.summary.result, "succeeded") assertOutputs(up_res.outputs) outputs_after_up = stack.outputs() assertOutputs(outputs_after_up) # pulumi destroy destroy_res = stack.destroy() self.assertEqual(destroy_res.summary.kind, "destroy") self.assertEqual(destroy_res.summary.result, "succeeded") outputs_after_destroy = stack.outputs() self.assertEqual(len(outputs_after_destroy), 0) finally: stack.workspace.remove_stack(stack_name)
def test_stack_lifecycle_inline_program(self): stack_name = stack_namer() project_name = "inline_python" stack = create_stack(stack_name, program=pulumi_program, project_name=project_name) stack_config: ConfigMap = { "bar": ConfigValue(value="abc"), "buzz": ConfigValue(value="secret", secret=True) } try: stack.set_all_config(stack_config) # pulumi up up_res = stack.up() self.assertEqual(len(up_res.outputs), 3) self.assertEqual(up_res.outputs["exp_static"].value, "foo") self.assertFalse(up_res.outputs["exp_static"].secret) self.assertEqual(up_res.outputs["exp_cfg"].value, "abc") self.assertFalse(up_res.outputs["exp_cfg"].secret) self.assertEqual(up_res.outputs["exp_secret"].value, "secret") self.assertTrue(up_res.outputs["exp_secret"].secret) self.assertEqual(up_res.summary.kind, "update") self.assertEqual(up_res.summary.result, "succeeded") # pulumi preview stack.preview() # TODO: update assertions when we have structured output # pulumi refresh refresh_res = stack.refresh() self.assertEqual(refresh_res.summary.kind, "refresh") self.assertEqual(refresh_res.summary.result, "succeeded") # pulumi destroy destroy_res = stack.destroy() self.assertEqual(destroy_res.summary.kind, "destroy") self.assertEqual(destroy_res.summary.result, "succeeded") finally: stack.workspace.remove_stack(stack_name)
def test_stack_lifecycle_local_program(self): stack_name = stack_namer() work_dir = test_path("data", "testproj") stack = create_stack(stack_name, work_dir=work_dir) config: ConfigMap = { "bar": ConfigValue(value="abc"), "buzz": ConfigValue(value="secret", secret=True) } stack.set_all_config(config) # pulumi up up_res = stack.up() self.assertEqual(len(up_res.outputs), 3) self.assertEqual(up_res.outputs["exp_static"].value, "foo") self.assertFalse(up_res.outputs["exp_static"].secret) self.assertEqual(up_res.outputs["exp_cfg"].value, "abc") self.assertFalse(up_res.outputs["exp_cfg"].secret) self.assertEqual(up_res.outputs["exp_secret"].value, "secret") self.assertTrue(up_res.outputs["exp_secret"].secret) self.assertEqual(up_res.summary.kind, "update") self.assertEqual(up_res.summary.result, "succeeded") # pulumi preview stack.preview() # TODO: update assertions when we have structured output # pulumi refresh refresh_res = stack.refresh() self.assertEqual(refresh_res.summary.kind, "refresh") self.assertEqual(refresh_res.summary.result, "succeeded") # pulumi destroy destroy_res = stack.destroy() self.assertEqual(destroy_res.summary.kind, "destroy") self.assertEqual(destroy_res.summary.result, "succeeded") stack.workspace.remove_stack(stack_name)
def test_bulk_config_ops(self): project_name = "python_test" project_settings = ProjectSettings(project_name, runtime="python") ws = LocalWorkspace(project_settings=project_settings) stack_name = stack_namer() stack = Stack.create(stack_name, ws) config: ConfigMap = { "one": ConfigValue(value="one"), "two": ConfigValue(value="two"), "three": ConfigValue(value="three", secret=True), "four": ConfigValue(value="four", secret=True), "five": ConfigValue(value="five"), "six": ConfigValue(value="six"), "seven": ConfigValue(value="seven", secret=True), "eight": ConfigValue(value="eight", secret=True), "nine": ConfigValue(value="nine"), "ten": ConfigValue(value="ten"), } stack.set_all_config(config) stack.remove_all_config([key for key in config]) ws.remove_stack(stack_name)
def test_config_functions(self): project_name = "python_test" project_settings = ProjectSettings(project_name, runtime="python") ws = LocalWorkspace(project_settings=project_settings) stack_name = stack_namer() stack = Stack.create(stack_name, ws) config: ConfigMap = { "plain": ConfigValue(value="abc"), "secret": ConfigValue(value="def", secret=True) } plain_key = normalize_config_key("plain", project_name) secret_key = normalize_config_key("secret", project_name) self.assertRaises(CommandError, stack.get_config, plain_key) values = stack.get_all_config() self.assertEqual(len(values), 0) stack.set_all_config(config) values = stack.get_all_config() self.assertEqual(values[plain_key].value, "abc") self.assertFalse(values[plain_key].secret) self.assertEqual(values[secret_key].value, "def") self.assertTrue(values[secret_key].secret) stack.remove_config("plain") values = stack.get_all_config() self.assertEqual(len(values), 1) stack.set_config("foo", ConfigValue(value="bar")) values = stack.get_all_config() self.assertEqual(len(values), 2) ws.remove_stack(stack_name)