def test_trace(self):
        """Test Trace

        Args:
            self: TestLogger

        Returns:
            None

        Raises:
            None
        """
        logger = Logger.create(self.TEST_LOG_FILE_PATH)
        logger.trace('Test Info', Logger.LEVEL_INFO)
        logger.trace('Test Debug', Logger.LEVEL_DEBUG)
        logger.trace('Test Critical', Logger.LEVEL_CRITICAL)
        logger.trace('Test Error', Logger.LEVEL_ERROR)
        logger.trace('Test Warning', Logger.LEVEL_WARNING)

        for test_string in [
                'Test Info', 'Test Debug', 'Test Critical', 'Test Error',
                'Test Warning'
        ]:
            with open(self.TEST_LOG_FILE_PATH) as log_file:
                if test_string not in log_file.read():
                    self.assertTrue(
                        False,
                        "test_string={} is not present".format(test_string))
    def __init__(self, analysis_name, log_file_path, output_folder_path):
        """Init

        Args:
            analysis_name: name of the analysis
            log_file_path: path to the log file
            output_folder_path: output folder path

        Returns:
            None

        Raises:
            None
        """
        if sys.version_info[0] < 3:
            raise UnsupportedPythongException('Python Version must be >= 3.0')

        Precondition.is_string(analysis_name, 'Invalid analysis_name')
        Precondition.is_string(log_file_path, 'Invalid log_file_path')
        Precondition.is_string(output_folder_path, 'Invalid output_folder_path')

        self.analysis_name = analysis_name
        self.logger = Logger.create(os.path.abspath(log_file_path), self.analysis_name)
        self.output_folder_path = os.path.abspath(output_folder_path)

        # create output folder if it doesn't exist
        if not os.path.exists(output_folder_path):
            os.makedirs(output_folder_path)
    def test_create(self):
        """Test Create

        Args:
            self: TestLogger

        Returns:
            None

        Raises:
            None
        """
        logger = Logger.create(self.TEST_LOG_FILE_PATH)
        self.assertIsNotNone(logger)

        # test with a bad log file path
        with self.assertRaises(PreconditionException) as context:
            Logger.create(1)
        self.assertTrue('Invalid log_file_path' in str(context.exception))