MCPcopy Create free account
hub / github.com/pybind/pybind11 / test_static_properties

Function test_static_properties

tests/test_methods_and_attributes.py:143–207  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

141
142
143def test_static_properties():
144 assert m.TestProperties.def_readonly_static == 1
145 with pytest.raises(AttributeError) as excinfo:
146 m.TestProperties.def_readonly_static = 2
147 assert NO_SETTER_MSG in str(excinfo.value)
148
149 m.TestProperties.def_readwrite_static = 2
150 assert m.TestProperties.def_readwrite_static == 2
151
152 with pytest.raises(AttributeError) as excinfo:
153 dummy = m.TestProperties.def_writeonly_static # unused var
154 assert NO_GETTER_MSG in str(excinfo.value)
155
156 m.TestProperties.def_writeonly_static = 3
157 assert m.TestProperties.def_readonly_static == 3
158
159 assert m.TestProperties.def_property_readonly_static == 3
160 with pytest.raises(AttributeError) as excinfo:
161 m.TestProperties.def_property_readonly_static = 99
162 assert NO_SETTER_MSG in str(excinfo.value)
163
164 m.TestProperties.def_property_static = 4
165 assert m.TestProperties.def_property_static == 4
166
167 with pytest.raises(AttributeError) as excinfo:
168 dummy = m.TestProperties.def_property_writeonly_static
169 assert NO_GETTER_MSG in str(excinfo.value)
170
171 m.TestProperties.def_property_writeonly_static = 5
172 assert m.TestProperties.def_property_static == 5
173
174 # Static property read and write via instance
175 instance = m.TestProperties()
176
177 m.TestProperties.def_readwrite_static = 0
178 assert m.TestProperties.def_readwrite_static == 0
179 assert instance.def_readwrite_static == 0
180
181 instance.def_readwrite_static = 2
182 assert m.TestProperties.def_readwrite_static == 2
183 assert instance.def_readwrite_static == 2
184
185 with pytest.raises(AttributeError) as excinfo:
186 dummy = instance.def_property_writeonly_static # noqa: F841 unused var
187 assert NO_GETTER_MSG in str(excinfo.value)
188
189 instance.def_property_writeonly_static = 4
190 assert instance.def_property_static == 4
191
192 # It should be possible to override properties in derived classes
193 assert m.TestPropertiesOverride().def_readonly == 99
194 assert m.TestPropertiesOverride.def_readonly_static == 99
195
196 # Only static attributes can be deleted
197 del m.TestPropertiesOverride.def_readonly_static
198 assert hasattr(m.TestPropertiesOverride, "def_readonly_static")
199 assert (
200 m.TestPropertiesOverride.def_readonly_static

Callers

nothing calls this directly

Calls 2

strClass · 0.85
hasattrFunction · 0.85

Tested by

no test coverage detected