Пример #1
0
 def test_recursive(self):
     x = [[1]]
     r = ensure_deeply_readonly(x)
     y = r[0]
     with pytest.raises(AttributeError):
         y.append(2)
     assert y == [1]
Пример #2
0
 def test_simple(self):
     d = {1: 2}
     r = ensure_deeply_readonly(d)
     assert r[1] == 2
     with pytest.raises(KeyError):
         r[2]
     assert len(r) == 1
     assert r == d
     assert not (r != d)
Пример #3
0
 def get_changes(self, serial):
     changes = self._changelog_cache.get(serial)
     if changes is None:
         data = self.get_raw_changelog_entry(serial)
         changes, rel_renames = loads(data)
         # make values in changes read only so no calling site accidentally
         # modifies data
         changes = ensure_deeply_readonly(changes)
         self.cache_commit_changes(serial, changes)
     return changes
Пример #4
0
 def test_simple(self):
     x = (1, )
     assert not is_deeply_readonly(x)
     r = ensure_deeply_readonly(x)
     assert is_deeply_readonly(r)
     assert r
     assert len(r) == 1
     assert r[0] == 1
     c = get_mutable_deepcopy(r)
     assert c == x
Пример #5
0
 def test_simple(self):
     x = set()
     assert not is_deeply_readonly(x)
     r = ensure_deeply_readonly(x)
     assert is_deeply_readonly(r)
     assert not r
     assert "x" not in r
     with pytest.raises(AttributeError):
         r.add(2)
     assert len(r) == 0
Пример #6
0
 def test_simple(self):
     x = [1]
     assert not is_deeply_readonly(x)
     r = ensure_deeply_readonly(x)
     assert r
     assert is_deeply_readonly(r)
     assert len(r) == 1
     with pytest.raises(AttributeError):
         r.append(2)
     c = get_mutable_deepcopy(r)
     assert c == x
     c.append(1)
     assert c != x
Пример #7
0
 def test_nonzero(self):
     assert not ensure_deeply_readonly(())
     assert ensure_deeply_readonly((1, ))
Пример #8
0
 def test_nonzero(self):
     assert not ensure_deeply_readonly({})
     assert ensure_deeply_readonly({1: 2})
Пример #9
0
 def test_nonzero(self):
     assert not ensure_deeply_readonly([])
     assert ensure_deeply_readonly([1])
Пример #10
0
 def test_iter(self):
     l = list(ensure_deeply_readonly(set([1, 2])))
     assert l == [1, 2]
Пример #11
0
 def test_nogetitem(self):
     with pytest.raises(TypeError):
         ensure_deeply_readonly(set([1, 2]))[0]
Пример #12
0
 def test_update(self):
     d = {1: 2}
     d.update(ensure_deeply_readonly({2: 3}))
     assert d == {1: 2, 2: 3}
Пример #13
0
 def test_recursive(self):
     d = {1: []}
     r = ensure_deeply_readonly(d)
     assert r[1] == []
     with pytest.raises(AttributeError):
         r[1].append(1)
Пример #14
0
def test_is_sequence():
    assert is_sequence([])
    assert is_sequence(())
    assert is_sequence(ensure_deeply_readonly(()))
    assert is_sequence(ensure_deeply_readonly([]))
Пример #15
0
 def test_recursive(self):
     x = ([1], )
     r = ensure_deeply_readonly(x)
     with pytest.raises(AttributeError):
         r[0].append(2)
     assert r[0] == [1]