With a gdb build using python 2.7, I run into:
...
(gdb) python \
  gdb.events.breakpoint_modified.connect(lambda bp: print(bp.enabled))^M
  File "<string>", line 1^M
    gdb.events.breakpoint_modified.connect(lambda bp: print(bp.enabled))^M
                                                          ^^M
SyntaxError: invalid syntax^M
Error while executing Python code.^M
(gdb) FAIL: gdb.python/py-breakpoint.exp: test_bkpt_auto_disable: \
  trap breakpoint_modified event
...
This is caused by the following:
- a lambda function body needs to be an expression
- in python 2, print is a statement, while in python 3 it's a function
- a function call is an expression, and a statement is not.
Fix this by defining a function print_bp_enabled:
...
def print_bp_enabled (bp):
    print (bp.enabled)
end
...
and using that instead.
Tested on x86_64-linux.
     set mult_line [gdb_get_line_number "Break at multiply."]
     gdb_breakpoint ${mult_line}
     gdb_test_no_output "enable count 1 2" "one shot enable"
-    gdb_test_no_output "python gdb.events.breakpoint_modified.connect(lambda bp: print(bp.enabled))" \
+    # Python 2 doesn't support print in lambda function, so use a named
+    # function instead.
+    gdb_test_multiline "Define print_bp_enabled" \
+       "python" "" \
+       "def print_bp_enabled (bp):" "" \
+       "    print (bp.enabled)" "" \
+       "end" ""
+    gdb_test_no_output \
+       "python gdb.events.breakpoint_modified.connect(print_bp_enabled)" \
        "trap breakpoint_modified event"
     gdb_test "continue" "False.*" "auto-disabling after enable count reached"
 }