2424)
2525
2626
27- class TestBuildSchema :
28- def setup_method (self , method ):
29- self .df = DataFrame (
30- {
31- "A" : [1 , 2 , 3 , 4 ],
32- "B" : ["a" , "b" , "c" , "c" ],
33- "C" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 ),
34- "D" : pd .timedelta_range ("1H" , periods = 4 , freq = "T" ),
35- },
36- index = pd .Index (range (4 ), name = "idx" ),
37- )
27+ @pytest .fixture
28+ def df_schema ():
29+ return DataFrame (
30+ {
31+ "A" : [1 , 2 , 3 , 4 ],
32+ "B" : ["a" , "b" , "c" , "c" ],
33+ "C" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 ),
34+ "D" : pd .timedelta_range ("1H" , periods = 4 , freq = "T" ),
35+ },
36+ index = pd .Index (range (4 ), name = "idx" ),
37+ )
38+
39+
40+ @pytest .fixture
41+ def df_table ():
42+ return DataFrame (
43+ {
44+ "A" : [1 , 2 , 3 , 4 ],
45+ "B" : ["a" , "b" , "c" , "c" ],
46+ "C" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 ),
47+ "D" : pd .timedelta_range ("1H" , periods = 4 , freq = "T" ),
48+ "E" : pd .Series (pd .Categorical (["a" , "b" , "c" , "c" ])),
49+ "F" : pd .Series (pd .Categorical (["a" , "b" , "c" , "c" ], ordered = True )),
50+ "G" : [1.0 , 2.0 , 3 , 4.0 ],
51+ "H" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 , tz = "US/Central" ),
52+ },
53+ index = pd .Index (range (4 ), name = "idx" ),
54+ )
3855
39- def test_build_table_schema (self ):
40- result = build_table_schema (self .df , version = False )
56+
57+ class TestBuildSchema :
58+ def test_build_table_schema (self , df_schema ):
59+ result = build_table_schema (df_schema , version = False )
4160 expected = {
4261 "fields" : [
4362 {"name" : "idx" , "type" : "integer" },
@@ -49,7 +68,7 @@ def test_build_table_schema(self):
4968 "primaryKey" : ["idx" ],
5069 }
5170 assert result == expected
52- result = build_table_schema (self . df )
71+ result = build_table_schema (df_schema )
5372 assert "pandas_version" in result
5473
5574 def test_series (self ):
@@ -77,8 +96,8 @@ def test_series_unnamed(self):
7796 }
7897 assert result == expected
7998
80- def test_multiindex (self ):
81- df = self . df . copy ()
99+ def test_multiindex (self , df_schema ):
100+ df = df_schema
82101 idx = pd .MultiIndex .from_product ([("a" , "b" ), (1 , 2 )])
83102 df .index = idx
84103
@@ -195,21 +214,6 @@ def test_as_json_table_type_categorical_dtypes(self):
195214
196215
197216class TestTableOrient :
198- def setup_method (self , method ):
199- self .df = DataFrame (
200- {
201- "A" : [1 , 2 , 3 , 4 ],
202- "B" : ["a" , "b" , "c" , "c" ],
203- "C" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 ),
204- "D" : pd .timedelta_range ("1H" , periods = 4 , freq = "T" ),
205- "E" : pd .Series (pd .Categorical (["a" , "b" , "c" , "c" ])),
206- "F" : pd .Series (pd .Categorical (["a" , "b" , "c" , "c" ], ordered = True )),
207- "G" : [1.0 , 2.0 , 3 , 4.0 ],
208- "H" : pd .date_range ("2016-01-01" , freq = "d" , periods = 4 , tz = "US/Central" ),
209- },
210- index = pd .Index (range (4 ), name = "idx" ),
211- )
212-
213217 def test_build_series (self ):
214218 s = pd .Series ([1 , 2 ], name = "a" )
215219 s .index .name = "id"
@@ -259,8 +263,8 @@ def test_read_json_from_to_json_results(self):
259263 @pytest .mark .filterwarnings (
260264 "ignore:an integer is required (got type float)*:DeprecationWarning"
261265 )
262- def test_to_json (self ):
263- df = self . df . copy ()
266+ def test_to_json (self , df_table ):
267+ df = df_table
264268 df .index .name = "idx"
265269 result = df .to_json (orient = "table" , date_format = "iso" )
266270 result = json .loads (result , object_pairs_hook = OrderedDict )
@@ -438,17 +442,17 @@ def test_to_json_categorical_index(self):
438442 @pytest .mark .filterwarnings (
439443 "ignore:an integer is required (got type float)*:DeprecationWarning"
440444 )
441- def test_date_format_raises (self ):
445+ def test_date_format_raises (self , df_table ):
442446 msg = (
443447 "Trying to write with `orient='table'` and `date_format='epoch'`. Table "
444448 "Schema requires dates to be formatted with `date_format='iso'`"
445449 )
446450 with pytest .raises (ValueError , match = msg ):
447- self . df .to_json (orient = "table" , date_format = "epoch" )
451+ df_table .to_json (orient = "table" , date_format = "epoch" )
448452
449453 # others work
450- self . df .to_json (orient = "table" , date_format = "iso" )
451- self . df .to_json (orient = "table" )
454+ df_table .to_json (orient = "table" , date_format = "iso" )
455+ df_table .to_json (orient = "table" )
452456
453457 def test_convert_pandas_type_to_json_field_int (self , index_or_series ):
454458 kind = index_or_series
0 commit comments