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

Method test_evolve

tests/test_make.py:2366–2395  ·  view source on GitHub ↗

attr.evolve uses Attribute.alias to determine parameter names.

(self)

Source from the content-addressed store, hash-verified

2364 assert example.__dunder_override__ == 6
2365
2366 def test_evolve(self):
2367 """
2368 attr.evolve uses Attribute.alias to determine parameter names.
2369 """
2370
2371 @attr.s
2372 class EvolveCase:
2373 _override = attr.ib(alias="_override")
2374 __mangled = attr.ib()
2375 __dunder__ = attr.ib()
2376
2377 org = EvolveCase(1, 2, 3)
2378
2379 # Previous behavior of evolve as broken for double-underscore
2380 # passthrough, and would raise here due to mis-mapping the __dunder__
2381 # alias
2382 assert attr.evolve(org) == org
2383
2384 # evolve uses the alias to match __init__ signature
2385 assert attr.evolve(
2386 org,
2387 _override=0,
2388 ) == EvolveCase(0, 2, 3)
2389
2390 # and properly passes through dunders and mangles
2391 assert attr.evolve(
2392 org,
2393 EvolveCase__mangled=4,
2394 dunder__=5,
2395 ) == EvolveCase(1, 4, 5)
2396
2397 def test_alias_is_default(self):
2398 """

Callers

nothing calls this directly

Calls 2

EvolveCaseClass · 0.85
evolveMethod · 0.80

Tested by

no test coverage detected