def test_setattr_imm_custom_class_raw(): class C(object): def __init__(self, attr): self.attr = attr def __eq__(self, other): return self.attr == other.attr assert s.setattr_immutable(C(1), 'attr', 2) == C(2)
def test_setattr_imm_custom_class(): class C(object): def __init__(self, attr): self.attr = attr def __eq__(self, other): return self.attr == other.attr def _lens_setattr(self, name, value): if name == 'fake_attr': return C(value) else: raise AttributeError(name) assert s.setattr_immutable(C(1), 'fake_attr', 2) == C(2)
def test_setattr_imm_namedtuple(): Tup = collections.namedtuple('Tup', 'attr') assert s.setattr_immutable(Tup(1), 'attr', 2) == Tup(2)