1# mode: run 2# ticket: 731 3# tag: locals, vars, dir 4 5cimport cython 6 7LOCALS = locals() 8GLOBALS = globals() 9DIR_SAME = sorted(dir()) == sorted(globals().keys()) 10 11 12def test_module_locals_and_dir(): 13 """ 14 >>> LOCALS is GLOBALS 15 True 16 >>> DIR_SAME 17 True 18 """ 19 20 21def test_class_locals_and_dir(): 22 """ 23 >>> klass = test_class_locals_and_dir() 24 >>> 'visible' in klass.locs and 'not_visible' not in klass.locs 25 True 26 >>> klass.names 27 ['__module__', '__qualname__', 'visible'] 28 """ 29 not_visible = 1234 30 class Foo: 31 visible = 4321 32 names = dir() 33 locs = locals() 34 return Foo 35 36 37@cython.test_fail_if_path_exists('//SortedDictKeysNode') 38def test_class_dir_contains(): 39 """ 40 >>> klass = test_class_dir_contains() 41 True 42 False 43 True 44 False 45 True 46 False 47 True 48 True 49 True 50 """ 51 not_visible = 1234 52 class Foo: 53 visible = 4321 54 print('visible' in dir()) 55 print('not_visible' in dir()) 56 print('not_visible' not in dir()) 57 print('locs' in dir()) 58 print('visible' in locals()) 59 print('locs' in locals()) 60 locs = locals() 61 print('visible' in dir()) 62 print('locs' in dir()) 63 print('locs' in locals()) 64 return Foo 65