def test()

in critter/stack.py [0:0]


    def test(self):
        """The main entrypoint into executing a critter test. This function is called from /bin/critter"""

        logger.info(f"Testing using identity '{self.sts.get_caller_identity()['Arn']}'")
        err = None
        try:
            self.deploy()
            self.process_outputs()
            self.wait_for_config_resources()
            self.start_config_rule_evaluation()
            self.wait_for_config_evaluation()
            self.validate_config_evaluation()
        except TestFailure as e:
            logger.error(
                f"\u274c Config rule '{self.config_rule_name}' test failed! One or more resources "
                "were evaluated by AWS Config with an unexpected compliance type.",
            )
            logger.error(e)
            print()  # printing a blank line for console output readability
            err = e
        except (Exception, KeyboardInterrupt) as e:
            logger.error("\nCritter encountered an error:\n")
            logger.error(traceback.format_exc())
            err = e
        else:
            logger.error(f"\u2705 Config rule '{self.config_rule_name}' test passed!\n")
        finally:
            no_delete_msg = (
                f"Not deleting CloudFormation stack '{self.stack_name}', specify '{self.DELETE_STACK_ARG}' "
                "to control this behavior"
            )
            if err:
                if self.delete_stack == self.DELETE_STACK_ALWAYS:
                    self.delete()
                else:
                    logger.info(no_delete_msg)
                exit(1)

            if self.delete_stack != self.DELETE_STACK_NEVER:
                self.delete()
            else:
                logger.info(no_delete_msg)