Spaces:
Sleeping
Sleeping
| class BaseTest: | |
| # Custom assert methods implementation | |
| def assertIsNotNone(self, value, msg=None): | |
| """Assert that value is not None""" | |
| if value is None: | |
| raise AssertionError(msg or f"Expected not None, but got None") | |
| def assertEqual(self, first, second, msg=None): | |
| """Assert that first equals second""" | |
| if first != second: | |
| raise AssertionError(msg or f"Expected {first} == {second}, but {first} != {second}") | |
| def assertTrue(self, expr, msg=None): | |
| """Assert that expr is True""" | |
| if not expr: | |
| raise AssertionError(msg or f"Expected True, but got {expr}") | |
| def assertFalse(self, expr, msg=None): | |
| """Assert that expr is False""" | |
| if expr: | |
| raise AssertionError(msg or f"Expected False, but got {expr}") | |
| def assertAlmostEqual(self, first, second, places=7, msg=None): | |
| """Assert that first and second are approximately equal""" | |
| if round(abs(second - first), places) != 0: | |
| raise AssertionError(msg or f"Expected {first} ~= {second} (within {places} decimal places)") | |
| def assertIs(self, first, second, msg=None): | |
| """Assert that first is second (same object identity)""" | |
| if first is not second: | |
| raise AssertionError(msg or f"Expected {first} is {second}, but they are different objects") | |
| def assertIn(self, member, container, msg=None): | |
| """Assert that member is in container""" | |
| if member not in container: | |
| raise AssertionError(msg or f"Expected {member} in {container}") | |
| def assertIsInstance(self, obj, cls, msg=None): | |
| """Assert that obj is an instance of cls""" | |
| if not isinstance(obj, cls): | |
| raise AssertionError(msg or f"Expected {obj} to be instance of {cls}, but got {type(obj)}") | |
| def assertIsNone(self, value, msg=None): | |
| """Assert that value is None""" | |
| if value is not None: | |
| raise AssertionError(msg or f"Expected None, but got {value}") | |
| def assertNotEqual(self, first, second, msg=None): | |
| """Assert that first does not equal second""" | |
| if first == second: | |
| raise AssertionError(msg or f"Expected {first} != {second}, but they are equal") | |
| def assertGreater(self, first, second, msg=None): | |
| """Assert that first is greater than second""" | |
| if not first > second: | |
| raise AssertionError(msg or f"Expected {first} > {second}") | |
| def assertLess(self, first, second, msg=None): | |
| """Assert that first is less than second""" | |
| if not first < second: | |
| raise AssertionError(msg or f"Expected {first} < {second}") | |
| def assertGreaterEqual(self, first, second, msg=None): | |
| """Assert that first is greater than or equal to second""" | |
| if not first >= second: | |
| raise AssertionError(msg or f"Expected {first} >= {second}") | |
| def assertLessEqual(self, first, second, msg=None): | |
| """Assert that first is less than or equal to second""" | |
| if not first <= second: | |
| raise AssertionError(msg or f"Expected {first} <= {second}") | |
| def assertNotIn(self, member, container, msg=None): | |
| """Assert that member is not in container""" | |
| if member in container: | |
| raise AssertionError(msg or f"Expected {member} not in {container}") | |
| def assertIsNot(self, first, second, msg=None): | |
| """Assert that first is not second (different object identity)""" | |
| if first is second: | |
| raise AssertionError(msg or f"Expected {first} is not {second}, but they are the same object") | |
| def assertRaises(self, exception_class, callable_obj=None, *args, **kwargs): | |
| """Assert that calling callable_obj raises exception_class""" | |
| if callable_obj is None: | |
| # Return a context manager for use with 'with' statement | |
| return self._AssertRaisesContext(exception_class) | |
| else: | |
| try: | |
| callable_obj(*args, **kwargs) | |
| raise AssertionError(f"Expected {exception_class.__name__} to be raised, but no exception was raised") | |
| except exception_class: | |
| pass # Expected exception was raised | |
| except Exception as e: | |
| raise AssertionError(f"Expected {exception_class.__name__} to be raised, but got {type(e).__name__}: {e}") | |