def test_temporary_breakpoint(self): """Verify that a temporary breakpoint is removed when encountered""" bp1 = debugger.Breakpoint(debugger.Keyword, "*::breakpoint", temporary=False) bp2 = debugger.Breakpoint(debugger.Keyword, "*::temporary breakpoint", temporary=True) listener = debugger.DebugListener(bp1, bp2) listener.rdb = mock.Mock() # The listener uses the .intro attribute as a string, so # we need to set it to something so that the listener # doesnt' crash. listener.rdb.intro = "... intro ..." self.assertEqual(len(listener.breakpoints), 2) listener.start_suite("Suite", attrs={}) listener.start_test("Test Case", attrs={}) listener.start_keyword("temporary breakpoint", attrs={"args": ["one", "two"]}) self.assertEqual(len(listener.breakpoints), 1) self.assertEqual( listener.breakpoints[0].pattern, "*::breakpoint", "the wrong breakpoint was removed", ) listener.rdb.cmdloop.assert_called_once()
def test_listener_custom_breakpoints(self): """Verify we can create a cli with custom breakpoints""" breakpoints = [ debugger.Breakpoint(debugger.Keyword, "*::keyword breakpoint"), debugger.Breakpoint(debugger.Testcase, "*::test breakpoint"), debugger.Breakpoint(debugger.Suite, "*::suite breakpoint"), ] listener = debugger.DebugListener(*breakpoints) self.assertEqual(listener.breakpoints, breakpoints)
def test_breakpoint_match(self): bp = debugger.Breakpoint(debugger.Keyword, "*::breakpoint") self.assertTrue( bp.match(context="Suite.Test Case::breakpoint"), "expected breakpoint to match, but it didn't", ) self.assertFalse( bp.match(context="Suite.Test Case::some other keyword"), "didn't expect breakpoint to match, but it did", )