|
2 | 2 | import unittest
|
3 | 3 | import os
|
4 | 4 | import sys
|
| 5 | +import warnings |
5 | 6 |
|
6 | 7 | from datetime import datetime
|
7 | 8 | import numpy as np
|
8 | 9 |
|
9 | 10 | from pandas import (Series, DataFrame, Panel, MultiIndex, bdate_range,
|
10 | 11 | date_range, Index)
|
11 |
| -from pandas.io.pytables import HDFStore, get_store, Term |
| 12 | +from pandas.io.pytables import HDFStore, get_store, Term, IncompatibilityWarning |
12 | 13 | import pandas.util.testing as tm
|
13 | 14 | from pandas.tests.test_series import assert_series_equal
|
14 | 15 | from pandas.tests.test_frame import assert_frame_equal
|
@@ -85,6 +86,17 @@ def test_contains(self):
|
85 | 86 | self.assert_('/foo/b' not in self.store)
|
86 | 87 | self.assert_('bar' not in self.store)
|
87 | 88 |
|
| 89 | + def test_versioning(self): |
| 90 | + self.store['a'] = tm.makeTimeSeries() |
| 91 | + self.store['b'] = tm.makeDataFrame() |
| 92 | + df = tm.makeTimeDataFrame() |
| 93 | + self.store.remove('df1') |
| 94 | + self.store.append('df1', df[:10]) |
| 95 | + self.store.append('df1', df[10:]) |
| 96 | + self.assert_(self.store.root.a._v_attrs.pandas_version == '0.10') |
| 97 | + self.assert_(self.store.root.b._v_attrs.pandas_version == '0.10') |
| 98 | + self.assert_(self.store.root.df1._v_attrs.pandas_version == '0.10') |
| 99 | + |
88 | 100 | def test_reopen_handle(self):
|
89 | 101 | self.store['a'] = tm.makeTimeSeries()
|
90 | 102 | self.store.open('w', warn=False)
|
@@ -176,8 +188,6 @@ def test_append(self):
|
176 | 188 | tm.assert_frame_equal(self.store['df3'], df)
|
177 | 189 |
|
178 | 190 | # this is allowed by almost always don't want to do it
|
179 |
| - import warnings |
180 |
| - import tables |
181 | 191 | warnings.filterwarnings('ignore', category=tables.NaturalNameWarning)
|
182 | 192 | self.store.remove('/df3 foo')
|
183 | 193 | self.store.append('/df3 foo', df[:10])
|
@@ -451,9 +461,9 @@ def test_remove_where(self):
|
451 | 461 | 'wp', ['foo'])
|
452 | 462 |
|
453 | 463 | # selectin non-table with a where
|
454 |
| - self.store.put('wp2', wp, table=False) |
455 |
| - self.assertRaises(Exception, self.store.remove, |
456 |
| - 'wp2', [('column', ['A', 'D'])]) |
| 464 | + #self.store.put('wp2', wp, table=False) |
| 465 | + #self.assertRaises(Exception, self.store.remove, |
| 466 | + # 'wp2', [('column', ['A', 'D'])]) |
457 | 467 |
|
458 | 468 |
|
459 | 469 | def test_remove_crit(self):
|
@@ -890,8 +900,8 @@ def test_select(self):
|
890 | 900 | self.store.select('wp2')
|
891 | 901 |
|
892 | 902 | # selectin non-table with a where
|
893 |
| - self.assertRaises(Exception, self.store.select, |
894 |
| - 'wp2', ('column', ['A', 'D'])) |
| 903 | + #self.assertRaises(Exception, self.store.select, |
| 904 | + # 'wp2', ('column', ['A', 'D'])) |
895 | 905 |
|
896 | 906 | def test_panel_select(self):
|
897 | 907 | wp = tm.makePanel()
|
@@ -927,9 +937,9 @@ def test_frame_select(self):
|
927 | 937 | tm.assert_frame_equal(result, expected)
|
928 | 938 |
|
929 | 939 | # can't select if not written as table
|
930 |
| - self.store['frame'] = df |
931 |
| - self.assertRaises(Exception, self.store.select, |
932 |
| - 'frame', [crit1, crit2]) |
| 940 | + #self.store['frame'] = df |
| 941 | + #self.assertRaises(Exception, self.store.select, |
| 942 | + # 'frame', [crit1, crit2]) |
933 | 943 |
|
934 | 944 | def test_select_filter_corner(self):
|
935 | 945 | df = DataFrame(np.random.randn(50, 100))
|
@@ -1004,6 +1014,13 @@ def test_legacy_table_read(self):
|
1004 | 1014 | store.select('df1')
|
1005 | 1015 | store.select('df2')
|
1006 | 1016 | store.select('wp1')
|
| 1017 | + |
| 1018 | + # old version (this still throws an exception though) |
| 1019 | + import warnings |
| 1020 | + warnings.filterwarnings('ignore', category=IncompatibilityWarning) |
| 1021 | + self.assertRaises(Exception, store.select, 'wp1', Term('minor_axis','=','B')) |
| 1022 | + warnings.filterwarnings('always', category=IncompatibilityWarning) |
| 1023 | + |
1007 | 1024 | store.close()
|
1008 | 1025 |
|
1009 | 1026 | def test_legacy_table_write(self):
|
|
0 commit comments