/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/python/pyrsistent/py3/tests/immutable_object_test.py
67 строк
1 KB
Anton Myagkov
Update ydb version to 24.4 (#4579)
07 фев 2026, 11:59
Не верифицирован
07 фев 2026, 11:59
2c21cae
Код
Авторство
О чём код?
import pytest from pyrsistent import immutable class Empty(immutable(verbose=True)): pass class Single(immutable('x')): pass class FrozenMember(immutable('x, y_')): pass class DerivedWithNew(immutable(['x', 'y'])): def __new__(cls, x, y): return super(DerivedWithNew, cls).__new__(cls, x, y) def test_instantiate_object_with_no_members(): t = Empty() t2 = t.set() assert t is t2 def test_assign_non_existing_attribute(): t = Empty() with pytest.raises(AttributeError): t.set(a=1) def test_basic_instantiation(): t = Single(17) assert t.x == 17 assert str(t) == 'Single(x=17)' def test_cannot_modify_member(): t = Single(17) with pytest.raises(AttributeError): t.x = 18 def test_basic_replace(): t = Single(17) t2 = t.set(x=18) assert t.x == 17 assert t2.x == 18 def test_cannot_replace_frozen_member(): t = FrozenMember(17, 18) with pytest.raises(AttributeError): t.set(y_=18) def test_derived_class_with_new(): d = DerivedWithNew(1, 2) d2 = d.set(x=3) assert d2.x == 3