I feel like I spend a fair amount of time investigating corner cases of the Python language; Python is relatively well-documented, but the documentation falls very short of a full language specification, so often the only recourse is to write a test case and run against CPython as a reference. Sometimes the answers are pretty counter-intuitive, like this one:
X = 0 Y = 0 def wrapper(): X = 1 Y = 1 class C(object): print X, Y # <- what happens at this line? X = 2 wrapper()
I'll let you run it for yourself to not spoil the surprise.