def test_enters_debugger(self): def raises_(): return {}['x'] deco = dbg.debug_on_exception(KeyError) debugger = Mock() with patch_object(deco, 'get_debugger') as pdb: pdb.return_value = debugger self.assertRaises(KeyError, deco(raises_)) self.assertTrue(debugger.reset.called) self.assertTrue(debugger.interaction.called)
def test_ignores_other_exceptions(self): def raises_(): return {}['x'] self.assertRaises(KeyError, dbg.debug_on_exception(ValueError)(raises_))
def test_context_manager(self): with dbg.debug_on_exception(): self.assertTrue(True)
def test_decorator(self): f = lambda: None f_ = dbg.debug_on_exception()(f) self.assertTrue(callable(f_)) self.assertEqual(f_(), None)
def test_get_debugger(self): self.assertTrue(isinstance(dbg.debug_on_exception().get_debugger(), pdb.Pdb))
def test_get_debugger(self): self.assertTrue( isinstance(dbg.debug_on_exception().get_debugger(), pdb.Pdb))