from django.test import TestCase from .trace_log import trace_log class TraceLogTestCase(TestCase): """TraceLog テストケース。""" def setUp(self): pass def test_trace_log(self): """trace_log デコレーターのテスト。 #. 2つの引数をとり、加算した値を返す関数を用意する。 #. trace_log(<用意した関数>)(1, 2) を実行する。 #. 実行結果が 3 (加算した値) となること。 """ def mock_function(a: int, b: int): return a + b decorated_function = trace_log(mock_function) result = decorated_function(1, 2) self.assertEqual(result, 3) def test_trace_log_exception(self): """trace_log デコレーターの Exception 発生時のテスト。 #. ValueError("invalid values") の例外が発生する関数を用意する。 #. trace_log(<用意した関数>)(<関数への引数>) を実行する。 #. ValueError("invalid values") が発生すること。 """ def mock_exception_function(a: int, b: int): raise ValueError("invalid values") decorated_function = trace_log(mock_exception_function) try: decorated_function(1, 2) self.fail() except ValueError as e: self.assertEqual(str(e), "invalid values")