aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/multidict/tests/test_guard.py
diff options
context:
space:
mode:
authorrekby <rekby@ydb.tech>2023-12-14 16:56:50 +0300
committerrekby <rekby@ydb.tech>2023-12-14 18:09:44 +0300
commitb2b2bb5997507072ca64548efe64447dd6395426 (patch)
treebbfbf77d11f1972c93ae4101fe561fd440d6ad6a /contrib/python/multidict/tests/test_guard.py
parent8b8678a6a4f57c62e348cdad8afd3849011a5f11 (diff)
downloadydb-b2b2bb5997507072ca64548efe64447dd6395426.tar.gz
KIKIMR-19900 switch arcadia to python ydb sdk from contrib
Этот PR создан скриптом - для переключения зависимостей на python ydb sdk с версии внутри ydb на код, приезжающий через контриб. Код в обеих версиях одинаковый, так что поломок/изменения функционала на ожидается. На всякий случай посмотрите свои проекты и если будут возражения пишите сюда в issues или в тикет KIKIMR-19900. Если всё ок - шипните, для определённости. При отсутствии блокеров PR будет перегенерирован и влит с force-мёрджем в четверг, 14 декабря.
Diffstat (limited to 'contrib/python/multidict/tests/test_guard.py')
-rw-r--r--contrib/python/multidict/tests/test_guard.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/contrib/python/multidict/tests/test_guard.py b/contrib/python/multidict/tests/test_guard.py
new file mode 100644
index 0000000000..823cc1afb8
--- /dev/null
+++ b/contrib/python/multidict/tests/test_guard.py
@@ -0,0 +1,39 @@
+import pytest
+
+from multidict._compat import USE_EXTENSIONS
+from multidict._multidict_py import MultiDict as PyMultiDict # noqa: E402
+
+if USE_EXTENSIONS:
+ from multidict._multidict import MultiDict # type: ignore
+
+
+@pytest.fixture(
+ params=([MultiDict] if USE_EXTENSIONS else []) + [PyMultiDict],
+ ids=(["MultiDict"] if USE_EXTENSIONS else []) + ["PyMultiDict"],
+)
+def cls(request):
+ return request.param
+
+
+def test_guard_items(cls):
+ md = cls({"a": "b"})
+ it = iter(md.items())
+ md["a"] = "c"
+ with pytest.raises(RuntimeError):
+ next(it)
+
+
+def test_guard_keys(cls):
+ md = cls({"a": "b"})
+ it = iter(md.keys())
+ md["a"] = "c"
+ with pytest.raises(RuntimeError):
+ next(it)
+
+
+def test_guard_values(cls):
+ md = cls({"a": "b"})
+ it = iter(md.values())
+ md["a"] = "c"
+ with pytest.raises(RuntimeError):
+ next(it)