1
+ try :
2
+ import cPickle as pickle
3
+ except ImportError :
4
+ import pickle
1
5
from datetime import datetime as dt
2
6
import pandas as pd
3
7
from pandas .util .testing import assert_frame_equal
@@ -32,6 +36,16 @@ def integrity_check(ms_lib, symbol):
32
36
metadata = item ['metadata' ]
33
37
assert start_time == None , 'end_time of the last entry should be unset'
34
38
39
+
40
+ def test_pickle (ms_lib ):
41
+ buff = pickle .dumps (ms_lib )
42
+ mnew = pickle .loads (buff )
43
+ assert ms_lib ._arctic_lib .get_name () == mnew ._arctic_lib .get_name ()
44
+
45
+ assert "arctic_test.TEST" in str (ms_lib )
46
+ assert str (ms_lib ) == repr (ms_lib )
47
+
48
+
35
49
def test_has_symbol (ms_lib ):
36
50
assert not ms_lib .has_symbol (symbol1 )
37
51
ms_lib .append (symbol1 , metadata1 )
@@ -72,19 +86,25 @@ def test_write_history(ms_lib):
72
86
73
87
74
88
def test_append (ms_lib ):
75
- ms_lib .append (symbol1 , None )
89
+ ret1 = ms_lib .append (symbol1 , None )
76
90
assert not ms_lib .has_symbol (symbol1 )
91
+ assert ret1 is None
77
92
78
- ms_lib .append (symbol1 , metadata1 , start_time1 )
93
+ ret2 = ms_lib .append (symbol1 , metadata1 , start_time1 )
79
94
assert ms_lib .read (symbol1 ) == metadata1
95
+ assert ret2 ['symbol' ] == symbol1
96
+ assert ret2 ['start_time' ] == start_time1
97
+ assert ret2 ['metadata' ] == metadata1
80
98
81
99
# ensure writing same metadata does not create new entry
82
- ms_lib .append (symbol1 , metadata1 , start_time2 )
100
+ ret3 = ms_lib .append (symbol1 , metadata1 , start_time2 )
83
101
assert ms_lib .read (symbol1 ) == metadata1
84
102
assert_frame_equal (ms_lib .read_history (symbol1 ), dataframe1 )
103
+ assert ret3 == ret2
85
104
86
- ms_lib .append (symbol1 , metadata2 , start_time2 )
105
+ ret4 = ms_lib .append (symbol1 , metadata2 , start_time2 )
87
106
assert_frame_equal (ms_lib .read_history (symbol1 ), dataframe3 )
107
+ assert ret4 ['metadata' ] == metadata2
88
108
89
109
with pytest .raises (ValueError ):
90
110
ms_lib .append (symbol1 , metadata1 , start_time1 )
@@ -93,19 +113,26 @@ def test_append(ms_lib):
93
113
94
114
95
115
def test_prepend (ms_lib ):
96
- ms_lib .prepend (symbol1 , None )
116
+ ret1 = ms_lib .prepend (symbol1 , None )
97
117
assert not ms_lib .has_symbol (symbol1 )
118
+ assert ret1 is None
98
119
99
- ms_lib .prepend (symbol1 , metadata2 , start_time2 )
120
+ ret2 = ms_lib .prepend (symbol1 , metadata2 , start_time2 )
100
121
assert ms_lib .read (symbol1 ) == metadata2
101
122
assert_frame_equal (ms_lib .read_history (symbol1 ), dataframe4 )
123
+ assert ret2 ['symbol' ] == symbol1
124
+ assert ret2 ['start_time' ] == start_time2
125
+ assert ret2 ['metadata' ] == metadata2
102
126
103
- ms_lib .prepend (symbol1 , metadata1 , start_time1 )
127
+ ret3 = ms_lib .prepend (symbol1 , metadata1 , start_time1 )
104
128
assert_frame_equal (ms_lib .read_history (symbol1 ), dataframe3 )
129
+ assert ret3 ['metadata' ] == metadata1
105
130
106
131
# ensure writing same metadata does not create new entry
107
- ms_lib .prepend (symbol1 , metadata1 , start_time0 )
132
+ ret4 = ms_lib .prepend (symbol1 , metadata1 , start_time0 )
108
133
assert_frame_equal (ms_lib .read_history (symbol1 ), dataframe5 )
134
+ ret3 ['start_time' ] = start_time0
135
+ assert ret4 == ret3
109
136
110
137
with pytest .raises (ValueError ):
111
138
ms_lib .append (symbol1 , metadata2 , start_time2 )
0 commit comments