コード例 #1
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 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
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 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
ファイル: main.py プロジェクト: yunstanford/devpi
 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
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 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
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 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
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 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
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_nonzero(self):
     assert not ensure_deeply_readonly(())
     assert ensure_deeply_readonly((1, ))
コード例 #8
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_nonzero(self):
     assert not ensure_deeply_readonly({})
     assert ensure_deeply_readonly({1: 2})
コード例 #9
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_nonzero(self):
     assert not ensure_deeply_readonly([])
     assert ensure_deeply_readonly([1])
コード例 #10
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_iter(self):
     l = list(ensure_deeply_readonly(set([1, 2])))
     assert l == [1, 2]
コード例 #11
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_nogetitem(self):
     with pytest.raises(TypeError):
         ensure_deeply_readonly(set([1, 2]))[0]
コード例 #12
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_update(self):
     d = {1: 2}
     d.update(ensure_deeply_readonly({2: 3}))
     assert d == {1: 2, 2: 3}
コード例 #13
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_recursive(self):
     d = {1: []}
     r = ensure_deeply_readonly(d)
     assert r[1] == []
     with pytest.raises(AttributeError):
         r[1].append(1)
コード例 #14
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
def test_is_sequence():
    assert is_sequence([])
    assert is_sequence(())
    assert is_sequence(ensure_deeply_readonly(()))
    assert is_sequence(ensure_deeply_readonly([]))
コード例 #15
0
ファイル: test_readonly.py プロジェクト: yunstanford/devpi
 def test_recursive(self):
     x = ([1], )
     r = ensure_deeply_readonly(x)
     with pytest.raises(AttributeError):
         r[0].append(2)
     assert r[0] == [1]