def test_create_or_update_tests_exits_gracefully_if_preexisting_stack_disappears(self,
                                                                                     custom_resource_mock,
                                                                                     stack_mock,
                                                                                     template_loader_mock,
                                                                                     dependency_resolver_mock,
                                                                                     parameter_resolver_mock,
                                                                                     cfn_mock,
                                                                                     config_mock):

        dependency_resolver_mock.return_value.get_stack_order.return_value = ['a', 'c']
        cfn_mock.return_value.get_stack_names.return_value = ['a', 'd']
        config_mock.return_value.tags.return_value = {}

        stack_a = CloudFormationStack('', [], 'a', '')
        stack_c = CloudFormationStack('', [], 'c', '')

        def stack_side_effect(*args, **kwargs):
            if kwargs['name'] == 'a':
                return stack_a
            if kwargs['name'] == 'c':
                return stack_c
            return None

        stack_mock.side_effect = stack_side_effect

        handler = StackActionHandler(config_mock)
        handler.create_or_update_stacks()

        # stack a needs update
        cfn_mock.return_value.validate_stack_is_ready_for_action.assert_called_once_with(stack_a)
        cfn_mock.return_value.update_stack.assert_called_once_with(stack_a)

        # stack c doesn't exist, must be created
        cfn_mock.return_value.create_stack.assert_called_once_with(stack_c)
Exemplo n.º 2
0
 def sync_stacks_with_parameters_overwrite(self, cli_params):
     config = Config(config_file=os.path.join(self.test_resources_dir,
                                              "stacks.yml"),
                     cli_params=cli_params)
     stack_handler = StackActionHandler(config)
     self.logger.info("Syncing stacks")
     stack_handler.create_or_update_stacks()
    def test_create_or_update_tests_exits_gracefully_if_preexisting_stack_disappears(
            self, custom_resource_mock, stack_mock, template_loader_mock,
            dependency_resolver_mock, parameter_resolver_mock, cfn_mock):

        dependency_resolver_mock.return_value.get_stack_order.return_value = [
            'a', 'c'
        ]
        cfn_mock.return_value.get_stack_names.return_value = ['a', 'd']

        stack_a = CloudFormationStack('', [], 'a', '')
        stack_c = CloudFormationStack('', [], 'c', '')

        def stack_side_effect(*args, **kwargs):
            if kwargs['name'] == 'a':
                return stack_a
            if kwargs['name'] == 'c':
                return stack_c
            return None

        stack_mock.side_effect = stack_side_effect

        handler = StackActionHandler(Mock())
        handler.create_or_update_stacks()

        # stack a needs update
        cfn_mock.return_value.validate_stack_is_ready_for_action.assert_called_once_with(
            stack_a)
        cfn_mock.return_value.update_stack.assert_called_once_with(stack_a)

        # stack c doesn't exist, must be created
        cfn_mock.return_value.create_stack.assert_called_once_with(stack_c)
 def sync_stacks_with_parameters_overwrite(self, cli_params):
     config = Config(config_file=os.path.join(self.test_resources_dir, "stacks.yml"), cli_params=cli_params)
     stack_handler = StackActionHandler(config)
     self.logger.info("Syncing stacks")
     stack_handler.create_or_update_stacks()
 def sync_stacks(self):
     stack_handler = StackActionHandler(self.config)
     self.logger.info("Syncing stacks")
     stack_handler.create_or_update_stacks()
Exemplo n.º 6
0
 def sync_stacks(self):
     stack_handler = StackActionHandler(self.config)
     self.logger.info("Syncing stacks")
     stack_handler.create_or_update_stacks()