GildedRose-Refactoring-Kata/venv/Lib/site-packages/approvaltests/utilities/logging/logging_approvals.py

34 lines
989 B
Python

import logging
from datetime import datetime
from typing import Optional, ContextManager
from approvaltests import Options, verify
from testfixtures import LogCapture
from approvaltests.scrubbers.date_scrubber import DateScrubber
def verify_logging(
*, # enforce keyword arguments - https://www.python.org/dev/peps/pep-3102/
options: Optional[Options] = None
) -> ContextManager:
class VerifyLogging:
def __init__(self):
self.l = LogCapture()
self.output = "anything"
self.options = options if options else Options()
def __enter__(self):
self.l.__enter__()
pass
def __exit__(self, exc_type, exc_val, exc_tb):
self.l.__exit__(exc_type, exc_val, exc_tb)
self.options = self.options.add_scrubber(
DateScrubber.get_scrubber_for("2023-07-16 17:39:03.293919")
)
verify(self.l, options=self.options)
return VerifyLogging()