MCPcopy
hub / github.com/python-attrs/attrs / test_kw_only_inheritance

Method test_kw_only_inheritance

tests/test_make.py:1239–1288  ·  view source on GitHub ↗

Comprehensive test about how `kw_only` works when there's multiple levels of inheritance with different `kw_only` settings.

(self)

Source from the content-addressed store, hash-verified

1237 assert fs["no"].kw_only is True
1238
1239 def test_kw_only_inheritance(self):
1240 """
1241 Comprehensive test about how `kw_only` works when there's multiple
1242 levels of inheritance with different `kw_only` settings.
1243 """
1244
1245 @attr.define()
1246 class A:
1247 a = attr.field()
1248 a_t = attr.field(kw_only=True)
1249 a_f = attr.field(kw_only=False)
1250
1251 @attr.define(kw_only=True)
1252 class B(A):
1253 b = attr.field()
1254 b_t = attr.field(kw_only=True)
1255 b_f = attr.field(kw_only=False)
1256
1257 @attr.define(kw_only=False)
1258 class C(B):
1259 c = attr.field()
1260 c_t = attr.field(kw_only=True)
1261 c_f = attr.field(kw_only=False)
1262
1263 fs = fields_dict(A)
1264
1265 assert fs["a"].kw_only is False
1266 assert fs["a_t"].kw_only is True
1267 assert fs["a_f"].kw_only is False
1268
1269 fs = fields_dict(B)
1270
1271 assert fs["a"].kw_only is False
1272 assert fs["a_t"].kw_only is True
1273 assert fs["a_f"].kw_only is False
1274 assert fs["b"].kw_only is True
1275 assert fs["b_t"].kw_only is True
1276 assert fs["b_f"].kw_only is False
1277
1278 fs = fields_dict(C)
1279
1280 assert fs["a"].kw_only is False
1281 assert fs["a_t"].kw_only is True
1282 assert fs["a_f"].kw_only is False
1283 assert fs["b"].kw_only is True
1284 assert fs["b_t"].kw_only is True
1285 assert fs["b_f"].kw_only is False
1286 assert fs["c"].kw_only is False
1287 assert fs["c_t"].kw_only is True
1288 assert fs["c_f"].kw_only is False
1289
1290 def test_kw_only_inheritance_force_kw_only(self):
1291 """

Callers

nothing calls this directly

Calls 1

fields_dictFunction · 0.90

Tested by

no test coverage detected