MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_slots

Method test_slots

Lib/test/test_descr.py:1108–1322  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1106 @unittest.expectedFailure # TODO: RUSTPYTHON
1107 @support.thread_unsafe
1108 def test_slots(self):
1109 # Testing __slots__...
1110 class C0(object):
1111 __slots__ = []
1112 x = C0()
1113 self.assertNotHasAttr(x, "__dict__")
1114 self.assertNotHasAttr(x, "foo")
1115
1116 class C1(object):
1117 __slots__ = ['a']
1118 x = C1()
1119 self.assertNotHasAttr(x, "__dict__")
1120 self.assertNotHasAttr(x, "a")
1121 x.a = 1
1122 self.assertEqual(x.a, 1)
1123 x.a = None
1124 self.assertEqual(x.a, None)
1125 del x.a
1126 self.assertNotHasAttr(x, "a")
1127
1128 class C3(object):
1129 __slots__ = ['a', 'b', 'c']
1130 x = C3()
1131 self.assertNotHasAttr(x, "__dict__")
1132 self.assertNotHasAttr(x, 'a')
1133 self.assertNotHasAttr(x, 'b')
1134 self.assertNotHasAttr(x, 'c')
1135 x.a = 1
1136 x.b = 2
1137 x.c = 3
1138 self.assertEqual(x.a, 1)
1139 self.assertEqual(x.b, 2)
1140 self.assertEqual(x.c, 3)
1141
1142 class C4(object):
1143 """Validate name mangling"""
1144 __slots__ = ['__a']
1145 def __init__(self, value):
1146 self.__a = value
1147 def get(self):
1148 return self.__a
1149 x = C4(5)
1150 self.assertNotHasAttr(x, '__dict__')
1151 self.assertNotHasAttr(x, '__a')
1152 self.assertEqual(x.get(), 5)
1153 try:
1154 x.__a = 6
1155 except AttributeError:
1156 pass
1157 else:
1158 self.fail("Double underscored names not mangled")
1159
1160 # Make sure slot names are proper identifiers
1161 try:
1162 class C(object):
1163 __slots__ = [None]
1164 except TypeError:
1165 pass

Callers

nothing calls this directly

Calls 15

CountedClass · 0.85
hasattrFunction · 0.85
lenFunction · 0.85
get_objectsMethod · 0.80
assertRaisesRegexMethod · 0.80
C0Class · 0.70
C1Class · 0.70
C3Class · 0.70
C4Class · 0.70
CClass · 0.70
DClass · 0.70
EClass · 0.70

Tested by

no test coverage detected