Skip to content

Commit 04e740d

Browse files
committed
Add missing tests
1 parent 3555d46 commit 04e740d

File tree

2 files changed

+66
-1
lines changed

2 files changed

+66
-1
lines changed

CHANGES.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
3.2.0 (2017-09-xx)
1+
3.2.0 (2017-09-17)
22
------------------
33

44
* Fix pickling (#134)

tests/test_copy.py

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import copy
2+
import pytest
3+
4+
from multidict._multidict import (MultiDict, CIMultiDict,
5+
MultiDictProxy, CIMultiDictProxy)
6+
from multidict._multidict_py import (MultiDict as PyMultiDict,
7+
CIMultiDict as PyCIMultiDict,
8+
MultiDictProxy as PyMultiDictProxy,
9+
CIMultiDictProxy as PyCIMultiDictProxy)
10+
11+
12+
@pytest.fixture(params=[MultiDict, PyMultiDict,
13+
CIMultiDict, PyCIMultiDict],
14+
ids=['MultiDict', 'PyMultiDict',
15+
'CIMultiDict', 'PyCIMultiDict'])
16+
def cls(request):
17+
return request.param
18+
19+
20+
@pytest.fixture(params=[(MultiDictProxy, MultiDict),
21+
(PyMultiDictProxy, PyMultiDict),
22+
(CIMultiDictProxy, CIMultiDict),
23+
(PyCIMultiDictProxy, PyCIMultiDict)],
24+
ids=['MultiDictProxy', 'PyMultiDictProxy',
25+
'CIMultiDictProxy', 'PyCIMultiDictProxy'])
26+
def proxy_classes(request):
27+
return request.param
28+
29+
30+
def test_copy(cls):
31+
d = cls()
32+
d['foo'] = 6
33+
d2 = d.copy()
34+
d2['foo'] = 7
35+
assert d['foo'] == 6
36+
assert d2['foo'] == 7
37+
38+
39+
def test_copy_proxy(proxy_classes):
40+
proxy_cls, dict_cls = proxy_classes
41+
d = dict_cls()
42+
d['foo'] = 6
43+
p = proxy_cls(d)
44+
d2 = p.copy()
45+
d2['foo'] = 7
46+
assert d['foo'] == 6
47+
assert p['foo'] == 6
48+
assert d2['foo'] == 7
49+
50+
51+
def test_copy_std_copy(cls):
52+
d = cls()
53+
d['foo'] = 6
54+
d2 = copy.copy(d)
55+
d2['foo'] = 7
56+
assert d['foo'] == 6
57+
assert d2['foo'] == 7
58+
59+
60+
def test_ci_multidict_clone(cls):
61+
d = cls(foo=6)
62+
d2 = cls(d)
63+
d2['foo'] = 7
64+
assert d['foo'] == 6
65+
assert d2['foo'] == 7

0 commit comments

Comments
 (0)