summaryrefslogtreecommitdiff
path: root/tests/basics/dict_fixed.py
diff options
context:
space:
mode:
authorMike Wadsten <mikewadsten@gmail.com>2018-02-18 21:51:04 -0600
committerMike Wadsten <mikewadsten@gmail.com>2018-02-18 21:51:04 -0600
commita3e01d3642d6c287bf2d0c14b3d75bf305327819 (patch)
treee3c404cc2b93a03837163aa70d891469ce3ab750 /tests/basics/dict_fixed.py
parent5a82ba8e073f847985595a46fb2f0c12f4389bbc (diff)
py/objdict: Disallow possible modifications to fixed dicts.
Diffstat (limited to 'tests/basics/dict_fixed.py')
-rw-r--r--tests/basics/dict_fixed.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/basics/dict_fixed.py b/tests/basics/dict_fixed.py
new file mode 100644
index 000000000..4261a0655
--- /dev/null
+++ b/tests/basics/dict_fixed.py
@@ -0,0 +1,48 @@
+# test that fixed dictionaries cannot be modified
+
+try:
+ import uerrno
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+# Save a copy of uerrno.errorcode, so we can check later
+# that it hasn't been modified.
+errorcode_copy = uerrno.errorcode.copy()
+
+try:
+ uerrno.errorcode.popitem()
+except TypeError:
+ print("TypeError")
+
+try:
+ uerrno.errorcode.pop(0)
+except TypeError:
+ print("TypeError")
+
+try:
+ uerrno.errorcode.setdefault(0, 0)
+except TypeError:
+ print("TypeError")
+
+try:
+ uerrno.errorcode.update([(1, 2)])
+except TypeError:
+ print("TypeError")
+
+try:
+ del uerrno.errorcode[1]
+except TypeError:
+ print("TypeError")
+
+try:
+ uerrno.errorcode[1] = 'foo'
+except TypeError:
+ print("TypeError")
+
+try:
+ uerrno.errorcode.clear()
+except TypeError:
+ print("TypeError")
+
+assert uerrno.errorcode == errorcode_copy