evolve() can evolve fields that are instances of attrs classes. Regression test for #804
(self)
| 767 | assert evolve(C(1), a=2).a == 2 |
| 768 | |
| 769 | def test_regression_attrs_classes(self): |
| 770 | """ |
| 771 | evolve() can evolve fields that are instances of attrs classes. |
| 772 | |
| 773 | Regression test for #804 |
| 774 | """ |
| 775 | |
| 776 | @attr.s |
| 777 | class Cls1: |
| 778 | param1 = attr.ib() |
| 779 | |
| 780 | @attr.s |
| 781 | class Cls2: |
| 782 | param2 = attr.ib() |
| 783 | |
| 784 | obj2a = Cls2(param2="a") |
| 785 | obj2b = Cls2(param2="b") |
| 786 | |
| 787 | obj1a = Cls1(param1=obj2a) |
| 788 | |
| 789 | assert Cls1(param1=Cls2(param2="b")) == attr.evolve( |
| 790 | obj1a, param1=obj2b |
| 791 | ) |
| 792 | |
| 793 | def test_dicts(self): |
| 794 | """ |