Reformat pickle tests
+# coding: utf-8
from __future__ import unicode_literals
-import io
import pytest
import dill as pickle
-from ..strings import StringStore
from ..vocab import Vocab
from ..attrs import NORM
-def test_pickle_string_store():
- sstore = StringStore()
- hello = sstore['hello']
- bye = sstore['bye']
- bdata = pickle.dumps(sstore, protocol=-1)
- unpickled = pickle.loads(bdata)
- assert unpickled['hello'] == hello
- assert unpickled['bye'] == bye
- assert len(sstore) == len(unpickled)
+@pytest.mark.parametrize('text1,text2', [('hello', 'bye')])
+def test_pickle_string_store(stringstore, text1, text2):
+ store1 = stringstore[text1]
+ store2 = stringstore[text2]
+ data = pickle.dumps(stringstore, protocol=-1)
+ unpickled = pickle.loads(data)
+ assert unpickled[text1] == store1
+ assert unpickled[text2] == store2
+ assert len(stringstore) == len(unpickled)
@pytest.mark.xfail
-def test_pickle_vocab():
+@pytest.mark.parametrize('text1,text2', [('dog', 'cat')])
+def test_pickle_vocab(text1, text2):
vocab = Vocab(lex_attr_getters={int(NORM): lambda string: string[:-1]})
- dog = vocab[u'dog']
- cat = vocab[u'cat']
- assert dog.norm_ == 'do'
- assert cat.norm_ == 'ca'
-
- bdata = pickle.dumps(vocab)
- unpickled = pickle.loads(bdata)
-
- assert unpickled[u'dog'].orth == dog.orth
- assert unpickled[u'cat'].orth == cat.orth
- assert unpickled[u'dog'].norm == dog.norm
- assert unpickled[u'cat'].norm == cat.norm
- dog_ = unpickled[u'dog']
- cat_ = unpickled[u'cat']
- assert dog_.norm != cat_.norm
+ lex1 = vocab[text1]
+ lex2 = vocab[text2]
+ assert lex1.norm_ == text1[:-1]
+ assert lex2.norm_ == text2[:-1]
+ data = pickle.dumps(vocab)
+ unpickled = pickle.loads(data)
+ assert unpickled[text1].orth == lex1.orth
+ assert unpickled[text2].orth == lex2.orth
+ assert unpickled[text1].norm == lex1.norm
+ assert unpickled[text2].norm == lex2.norm
+ assert unpickled[text1].norm != unpickled[text2].norm
