@@ -800,16 +800,10 @@ def _run_setup(self, result: TestResult) -> object:
800800 :raises ValueError: If the base class setUp is not called, a
801801 ValueError is raised.
802802 """
803- # setUp() normally returns None, but async test frameworks may
804- # return Deferred-like objects
805- setup_result : object = self .setUp () # type: ignore[func-returns-value]
803+ ret = self .setUp () # type: ignore[func-returns-value]
806804
807805 # Check if the return value is a Deferred (duck-typing to avoid hard dependency)
808- if (
809- setup_result is not None
810- and hasattr (setup_result , "addBoth" )
811- and callable (getattr (setup_result , "addBoth" ))
812- ):
806+ if hasattr (ret , "addBoth" ) and callable (getattr (ret , "addBoth" )):
813807 # Deferred-like object: validate asynchronously after it resolves
814808 def _validate_setup_called (result : object ) -> object :
815809 if not self .__setup_called :
@@ -822,7 +816,7 @@ def _validate_setup_called(result: object) -> object:
822816 )
823817 return result
824818
825- setup_result = setup_result .addBoth (_validate_setup_called )
819+ ret .addBoth (_validate_setup_called )
826820 else :
827821 # Synchronous: validate immediately
828822 if not self .__setup_called :
@@ -833,7 +827,7 @@ def _validate_setup_called(result: object) -> object:
833827 f"super({ self .__class__ .__name__ } , self).setUp() "
834828 "from your setUp()."
835829 )
836- return setup_result
830+ return ret
837831
838832 def _run_teardown (self , result : TestResult ) -> object :
839833 """Run the tearDown function for this test.
@@ -842,16 +836,10 @@ def _run_teardown(self, result: TestResult) -> object:
842836 :raises ValueError: If the base class tearDown is not called, a
843837 ValueError is raised.
844838 """
845- # tearDown() normally returns None, but async test frameworks
846- # may return Deferred-like objects
847- teardown_result : object = self .tearDown () # type: ignore[func-returns-value]
839+ ret = self .tearDown () # type: ignore[func-returns-value]
848840
849841 # Check if the return value is a Deferred (duck-typing to avoid hard dependency)
850- if (
851- teardown_result is not None
852- and hasattr (teardown_result , "addBoth" )
853- and callable (getattr (teardown_result , "addBoth" ))
854- ):
842+ if hasattr (ret , "addBoth" ) and callable (getattr (ret , "addBoth" )):
855843 # Deferred-like object: validate asynchronously after it resolves
856844 def _validate_teardown_called (result : object ) -> object :
857845 if not self .__teardown_called :
@@ -864,7 +852,7 @@ def _validate_teardown_called(result: object) -> object:
864852 )
865853 return result
866854
867- teardown_result = teardown_result .addBoth (_validate_teardown_called )
855+ ret .addBoth (_validate_teardown_called )
868856 else :
869857 # Synchronous: validate immediately
870858 if not self .__teardown_called :
@@ -875,7 +863,7 @@ def _validate_teardown_called(result: object) -> object:
875863 f"super({ self .__class__ .__name__ } , self).tearDown() "
876864 "from your tearDown()."
877865 )
878- return teardown_result
866+ return ret
879867
880868 def _get_test_method (self ) -> Callable [[], object ]:
881869 method_name = getattr (self , "_testMethodName" )
0 commit comments