File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -700,20 +700,6 @@ def __init__(self):
700700 f = Foo ()
701701 self .assertIn ("y" , dir (f ))
702702
703- # dir(obj) - cyclic __bases__ must raise RecursionError
704- class Fake :
705- pass
706-
707- a = Fake ()
708- a .__bases__ = (a ,)
709-
710- class C :
711- @property
712- def __class__ (self ):
713- return a
714-
715- self .assertRaises (RecursionError , dir , C ())
716-
717703 # dir(obj_no__dict__)
718704 class Foo (object ):
719705 __slots__ = []
@@ -769,6 +755,22 @@ def __dir__(self):
769755 # test that object has a __dir__()
770756 self .assertEqual (sorted ([].__dir__ ()), dir ([]))
771757
758+ @support .skip_emscripten_stack_overflow ()
759+ @support .skip_wasi_stack_overflow ()
760+ def test_dir_cyclic_bases (self ):
761+ class Fake :
762+ pass
763+
764+ a = Fake ()
765+ a .__bases__ = (a ,)
766+
767+ class C :
768+ @property
769+ def __class__ (self ):
770+ return a
771+
772+ self .assertRaises (RecursionError , dir , C ())
773+
772774 def test___ne__ (self ):
773775 self .assertFalse (None .__ne__ (None ))
774776 self .assertIs (None .__ne__ (0 ), NotImplemented )
You can’t perform that action at this time.
0 commit comments