(self)
| 834 | self.assertEqual(result, [('exit', None, None, None)]) |
| 835 | |
| 836 | def test_enter_context_slots(self): |
| 837 | class TestCM: |
| 838 | __slots__ = ('__enter__', '__exit__') |
| 839 | def __init__(self): |
| 840 | def enter(): |
| 841 | result.append('enter') |
| 842 | def exit(*exc_details): |
| 843 | result.append(('exit', *exc_details)) |
| 844 | self.__enter__ = enter |
| 845 | self.__exit__ = exit |
| 846 | |
| 847 | cm = TestCM() |
| 848 | result = [] |
| 849 | with self.exit_stack() as stack: |
| 850 | stack.enter_context(cm) |
| 851 | self.assertEqual(result, ['enter']) |
| 852 | self.assertEqual(result, ['enter', ('exit', None, None, None)]) |
| 853 | |
| 854 | result = [] |
| 855 | with self.exit_stack() as stack: |
| 856 | stack.push(cm) |
| 857 | self.assertEqual(result, []) |
| 858 | self.assertEqual(result, [('exit', None, None, None)]) |
| 859 | |
| 860 | def test_enter_context_errors(self): |
| 861 | class LacksEnterAndExit: |
nothing calls this directly
no test coverage detected