From f80e015c7c31e837fd949b74d2b63f0565265a16 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 30 May 2019 14:00:05 -0400 Subject: [PATCH 01/14] Reused and reorged seriesd fixture --- pandas/conftest.py | 6 ++++++ pandas/tests/frame/common.py | 7 +++---- pandas/tests/frame/conftest.py | 28 ++++++++++++++-------------- pandas/tests/groupby/conftest.py | 5 ----- pandas/tests/io/test_excel.py | 5 ++--- 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/pandas/conftest.py b/pandas/conftest.py index 3c411f8ba3e31..b8c93d940e5b1 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -10,6 +10,7 @@ from pytz import FixedOffset, utc import pandas.util._test_decorators as td +import pandas.util.testing as tm import pandas as pd @@ -682,3 +683,8 @@ def tick_classes(request): normalize=st.booleans(), startingMonth=st.integers(min_value=1, max_value=12) )) + + +@pytest.fixture +def seriesd(): + return tm.getSeriesData() diff --git a/pandas/tests/frame/common.py b/pandas/tests/frame/common.py index 4b71405e20d32..6e3f0b464bb59 100644 --- a/pandas/tests/frame/common.py +++ b/pandas/tests/frame/common.py @@ -5,12 +5,11 @@ import pandas as pd import pandas.util.testing as tm -_seriesd = tm.getSeriesData() _tsd = tm.getTimeSeriesData() -_frame = pd.DataFrame(_seriesd) -_frame2 = pd.DataFrame(_seriesd, columns=['D', 'C', 'B', 'A']) -_intframe = pd.DataFrame({k: v.astype(int) for k, v in _seriesd.items()}) +_frame = pd.DataFrame(seriesd) +_frame2 = pd.DataFrame(seriesd, columns=['D', 'C', 'B', 'A']) +_intframe = pd.DataFrame({k: v.astype(int) for k, v in seriesd.items()}) _tsframe = pd.DataFrame(_tsd) diff --git a/pandas/tests/frame/conftest.py b/pandas/tests/frame/conftest.py index 27c0e070c10c2..80451d0cad156 100644 --- a/pandas/tests/frame/conftest.py +++ b/pandas/tests/frame/conftest.py @@ -6,23 +6,23 @@ @pytest.fixture -def float_frame(): +def float_frame(seriesd): """ Fixture for DataFrame of floats with index of unique strings Columns are ['A', 'B', 'C', 'D']. """ - return DataFrame(tm.getSeriesData()) + return DataFrame(seriesd) @pytest.fixture -def float_frame_with_na(): +def float_frame_with_na(seriesd): """ Fixture for DataFrame of floats with index of unique strings Columns are ['A', 'B', 'C', 'D']; some entries are missing """ - df = DataFrame(tm.getSeriesData()) + df = DataFrame(seriesd) # set some NAs df.loc[5:10] = np.nan df.loc[15:20, -2:] = np.nan @@ -30,13 +30,13 @@ def float_frame_with_na(): @pytest.fixture -def bool_frame_with_na(): +def bool_frame_with_na(seriesd): """ Fixture for DataFrame of booleans with index of unique strings Columns are ['A', 'B', 'C', 'D']; some entries are missing """ - df = DataFrame(tm.getSeriesData()) > 0 + df = DataFrame(seriesd) > 0 df = df.astype(object) # set some NAs df.loc[5:10] = np.nan @@ -45,13 +45,13 @@ def bool_frame_with_na(): @pytest.fixture -def int_frame(): +def int_frame(seriesd): """ Fixture for DataFrame of ints with index of unique strings Columns are ['A', 'B', 'C', 'D'] """ - df = DataFrame({k: v.astype(int) for k, v in tm.getSeriesData().items()}) + df = DataFrame({k: v.astype(int) for k, v in seriesd.items()}) # force these all to int64 to avoid platform testing issues return DataFrame({c: s for c, s in df.items()}, dtype=np.int64) @@ -67,25 +67,25 @@ def datetime_frame(): @pytest.fixture -def float_string_frame(): +def float_string_frame(seriesd): """ Fixture for DataFrame of floats and strings with index of unique strings Columns are ['A', 'B', 'C', 'D', 'foo']. """ - df = DataFrame(tm.getSeriesData()) + df = DataFrame(seriesd) df['foo'] = 'bar' return df @pytest.fixture -def mixed_float_frame(): +def mixed_float_frame(seriesd): """ Fixture for DataFrame of different float types with index of unique strings Columns are ['A', 'B', 'C', 'D']. """ - df = DataFrame(tm.getSeriesData()) + df = DataFrame(seriesd) df.A = df.A.astype('float32') df.B = df.B.astype('float32') df.C = df.C.astype('float16') @@ -94,13 +94,13 @@ def mixed_float_frame(): @pytest.fixture -def mixed_int_frame(): +def mixed_int_frame(seriesd): """ Fixture for DataFrame of different int types with index of unique strings Columns are ['A', 'B', 'C', 'D']. """ - df = DataFrame({k: v.astype(int) for k, v in tm.getSeriesData().items()}) + df = DataFrame({k: v.astype(int) for k, v in seriesd.items()}) df.A = df.A.astype('int32') df.B = np.ones(len(df.B), dtype='uint64') df.C = df.C.astype('uint8') diff --git a/pandas/tests/groupby/conftest.py b/pandas/tests/groupby/conftest.py index cb4fe511651ee..5bd8e63d50490 100644 --- a/pandas/tests/groupby/conftest.py +++ b/pandas/tests/groupby/conftest.py @@ -30,11 +30,6 @@ def ts(): return tm.makeTimeSeries() -@pytest.fixture -def seriesd(): - return tm.getSeriesData() - - @pytest.fixture def tsd(): return tm.getTimeSeriesData() diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 1421fc94b67f4..1593813c71d30 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -26,10 +26,9 @@ from pandas.io.formats.excel import ExcelFormatter from pandas.io.parsers import read_csv -_seriesd = tm.getSeriesData() _tsd = tm.getTimeSeriesData() -_frame = DataFrame(_seriesd)[:10] -_frame2 = DataFrame(_seriesd, columns=['D', 'C', 'B', 'A'])[:10] +_frame = DataFrame(seriesd)[:10] +_frame2 = DataFrame(seriesd, columns=['D', 'C', 'B', 'A'])[:10] _tsframe = tm.makeTimeDataFrame()[:5] _mixed_frame = _frame.copy() _mixed_frame['foo'] = 'bar' From d10b8f2dc2769e8019fc11356cbb5b4f042e7f61 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 30 May 2019 14:32:13 -0400 Subject: [PATCH 02/14] Removed frame fixtures --- pandas/tests/io/test_excel.py | 220 +++++++++++++++++----------------- 1 file changed, 112 insertions(+), 108 deletions(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 1593813c71d30..572fa5b9e1308 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -26,12 +26,15 @@ from pandas.io.formats.excel import ExcelFormatter from pandas.io.parsers import read_csv -_tsd = tm.getTimeSeriesData() -_frame = DataFrame(seriesd)[:10] -_frame2 = DataFrame(seriesd, columns=['D', 'C', 'B', 'A'])[:10] +@pytest.fixture +def frame(seriesd): + return DataFrame(seriesd)[:10] + + +@pytest.fixture +def frame2(seriesd): + return DataFrame(seriesd, columns=['D', 'C', 'B', 'A'])[:10] _tsframe = tm.makeTimeDataFrame()[:5] -_mixed_frame = _frame.copy() -_mixed_frame['foo'] = 'bar' @contextlib.contextmanager @@ -52,10 +55,7 @@ class SharedItems: @pytest.fixture(autouse=True) def setup_method(self, datapath): - self.frame = _frame.copy() - self.frame2 = _frame2.copy() self.tsframe = _tsframe.copy() - self.mixed_frame = _mixed_frame.copy() @td.skip_if_no('xlrd', '1.0.0') @@ -1054,9 +1054,9 @@ class TestXlrdReader(ReadingTestsBase): """ @td.skip_if_no("xlwt") - def test_read_xlrd_book(self, ext): + def test_read_xlrd_book(self, ext, frame): import xlrd - df = self.frame + df = frame engine = "xlrd" sheet_name = "SheetA" @@ -1131,72 +1131,75 @@ def test_excel_sheet_by_name_raise(self, *_): with pytest.raises(xlrd.XLRDError): pd.read_excel(xl, "0") - def test_excel_writer_context_manager(self, *_): + def test_excel_writer_context_manager(self, frame, frame2, *_): with ExcelWriter(self.path) as writer: - self.frame.to_excel(writer, "Data1") - self.frame2.to_excel(writer, "Data2") + frame.to_excel(writer, "Data1") + frame2.to_excel(writer, "Data2") with ExcelFile(self.path) as reader: found_df = pd.read_excel(reader, "Data1", index_col=0) found_df2 = pd.read_excel(reader, "Data2", index_col=0) - tm.assert_frame_equal(found_df, self.frame) - tm.assert_frame_equal(found_df2, self.frame2) + tm.assert_frame_equal(found_df, frame) + tm.assert_frame_equal(found_df2, frame2) - def test_roundtrip(self, merge_cells, engine, ext): - self.frame['A'][:5] = nan + def test_roundtrip(self, merge_cells, engine, ext, frame): + frame['A'][:5] = nan - self.frame.to_excel(self.path, 'test1') - self.frame.to_excel(self.path, 'test1', columns=['A', 'B']) - self.frame.to_excel(self.path, 'test1', header=False) - self.frame.to_excel(self.path, 'test1', index=False) + frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1', columns=['A', 'B']) + frame.to_excel(self.path, 'test1', header=False) + frame.to_excel(self.path, 'test1', index=False) # test roundtrip - self.frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1') recons = pd.read_excel(self.path, 'test1', index_col=0) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) - self.frame.to_excel(self.path, 'test1', index=False) + frame.to_excel(self.path, 'test1', index=False) recons = pd.read_excel(self.path, 'test1', index_col=None) - recons.index = self.frame.index - tm.assert_frame_equal(self.frame, recons) + recons.index = frame.index + tm.assert_frame_equal(frame, recons) - self.frame.to_excel(self.path, 'test1', na_rep='NA') + frame.to_excel(self.path, 'test1', na_rep='NA') recons = pd.read_excel( self.path, 'test1', index_col=0, na_values=['NA']) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) # GH 3611 - self.frame.to_excel(self.path, 'test1', na_rep='88') + frame.to_excel(self.path, 'test1', na_rep='88') recons = pd.read_excel( self.path, 'test1', index_col=0, na_values=['88']) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) - self.frame.to_excel(self.path, 'test1', na_rep='88') + frame.to_excel(self.path, 'test1', na_rep='88') recons = pd.read_excel( self.path, 'test1', index_col=0, na_values=[88, 88.0]) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) # GH 6573 - self.frame.to_excel(self.path, 'Sheet1') + frame.to_excel(self.path, 'Sheet1') recons = pd.read_excel(self.path, index_col=0) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) - self.frame.to_excel(self.path, '0') + frame.to_excel(self.path, '0') recons = pd.read_excel(self.path, index_col=0) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) # GH 8825 Pandas Series should provide to_excel method - s = self.frame["A"] + s = frame["A"] s.to_excel(self.path) recons = pd.read_excel(self.path, index_col=0) tm.assert_frame_equal(s.to_frame(), recons) - def test_mixed(self, merge_cells, engine, ext): - self.mixed_frame.to_excel(self.path, 'test1') + def test_mixed(self, merge_cells, engine, ext, frame): + mixed_frame = frame.copy() + mixed_frame['foo'] = 'bar' + + mixed_frame.to_excel(self.path, 'test1') reader = ExcelFile(self.path) recons = pd.read_excel(reader, 'test1', index_col=0) - tm.assert_frame_equal(self.mixed_frame, recons) + tm.assert_frame_equal(mixed_frame, recons) def test_ts_frame(self, *_): df = tm.makeTimeDataFrame()[:5] @@ -1207,16 +1210,16 @@ def test_ts_frame(self, *_): recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(df, recons) - def test_basics_with_nan(self, merge_cells, engine, ext): - self.frame['A'][:5] = nan - self.frame.to_excel(self.path, 'test1') - self.frame.to_excel(self.path, 'test1', columns=['A', 'B']) - self.frame.to_excel(self.path, 'test1', header=False) - self.frame.to_excel(self.path, 'test1', index=False) + def test_basics_with_nan(self, merge_cells, engine, ext, frame): + frame['A'][:5] = nan + frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1', columns=['A', 'B']) + frame.to_excel(self.path, 'test1', header=False) + frame.to_excel(self.path, 'test1', index=False) @pytest.mark.parametrize("np_type", [ np.int8, np.int16, np.int32, np.int64]) - def test_int_types(self, merge_cells, engine, ext, np_type): + def test_int_types(self, merge_cells, engine, ext, np_type, frame): # Test np.int values read come back as int # (rather than float which is Excel's format). frame = DataFrame(np.random.randint(-10, 10, size=(10, 2)), @@ -1242,7 +1245,7 @@ def test_int_types(self, merge_cells, engine, ext, np_type): @pytest.mark.parametrize("np_type", [ np.float16, np.float32, np.float64]) - def test_float_types(self, merge_cells, engine, ext, np_type): + def test_float_types(self, merge_cells, engine, ext, np_type, frame): # Test np.float values read come back as float. frame = DataFrame(np.random.random_sample(10), dtype=np_type) frame.to_excel(self.path, "test1") @@ -1253,7 +1256,7 @@ def test_float_types(self, merge_cells, engine, ext, np_type): tm.assert_frame_equal(frame, recons, check_dtype=False) @pytest.mark.parametrize("np_type", [np.bool8, np.bool_]) - def test_bool_types(self, merge_cells, engine, ext, np_type): + def test_bool_types(self, merge_cells, engine, ext, np_type, frame): # Test np.bool values read come back as float. frame = (DataFrame([1, 0, True, False], dtype=np_type)) frame.to_excel(self.path, "test1") @@ -1263,7 +1266,7 @@ def test_bool_types(self, merge_cells, engine, ext, np_type): tm.assert_frame_equal(frame, recons) - def test_inf_roundtrip(self, *_): + def test_inf_roundtrip(self, frame, *_): frame = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)]) frame.to_excel(self.path, "test1") @@ -1272,92 +1275,92 @@ def test_inf_roundtrip(self, *_): tm.assert_frame_equal(frame, recons) - def test_sheets(self, merge_cells, engine, ext): - self.frame['A'][:5] = nan + def test_sheets(self, merge_cells, engine, ext, frame): + frame['A'][:5] = nan - self.frame.to_excel(self.path, 'test1') - self.frame.to_excel(self.path, 'test1', columns=['A', 'B']) - self.frame.to_excel(self.path, 'test1', header=False) - self.frame.to_excel(self.path, 'test1', index=False) + frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1', columns=['A', 'B']) + frame.to_excel(self.path, 'test1', header=False) + frame.to_excel(self.path, 'test1', index=False) # Test writing to separate sheets writer = ExcelWriter(self.path) - self.frame.to_excel(writer, 'test1') + frame.to_excel(writer, 'test1') self.tsframe.to_excel(writer, 'test2') writer.save() reader = ExcelFile(self.path) recons = pd.read_excel(reader, 'test1', index_col=0) - tm.assert_frame_equal(self.frame, recons) + tm.assert_frame_equal(frame, recons) recons = pd.read_excel(reader, 'test2', index_col=0) tm.assert_frame_equal(self.tsframe, recons) assert 2 == len(reader.sheet_names) assert 'test1' == reader.sheet_names[0] assert 'test2' == reader.sheet_names[1] - def test_colaliases(self, merge_cells, engine, ext): - self.frame['A'][:5] = nan + def test_colaliases(self, merge_cells, engine, ext, frame, frame2): + frame['A'][:5] = nan - self.frame.to_excel(self.path, 'test1') - self.frame.to_excel(self.path, 'test1', columns=['A', 'B']) - self.frame.to_excel(self.path, 'test1', header=False) - self.frame.to_excel(self.path, 'test1', index=False) + frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1', columns=['A', 'B']) + frame.to_excel(self.path, 'test1', header=False) + frame.to_excel(self.path, 'test1', index=False) # column aliases col_aliases = Index(['AA', 'X', 'Y', 'Z']) - self.frame2.to_excel(self.path, 'test1', header=col_aliases) + frame2.to_excel(self.path, 'test1', header=col_aliases) reader = ExcelFile(self.path) rs = pd.read_excel(reader, 'test1', index_col=0) - xp = self.frame2.copy() + xp = frame2.copy() xp.columns = col_aliases tm.assert_frame_equal(xp, rs) - def test_roundtrip_indexlabels(self, merge_cells, engine, ext): - self.frame['A'][:5] = nan + def test_roundtrip_indexlabels(self, merge_cells, engine, ext, frame): + frame['A'][:5] = nan - self.frame.to_excel(self.path, 'test1') - self.frame.to_excel(self.path, 'test1', columns=['A', 'B']) - self.frame.to_excel(self.path, 'test1', header=False) - self.frame.to_excel(self.path, 'test1', index=False) + frame.to_excel(self.path, 'test1') + frame.to_excel(self.path, 'test1', columns=['A', 'B']) + frame.to_excel(self.path, 'test1', header=False) + frame.to_excel(self.path, 'test1', index=False) # test index_label - frame = (DataFrame(np.random.randn(10, 2)) >= 0) - frame.to_excel(self.path, 'test1', - index_label=['test'], - merge_cells=merge_cells) + df = (DataFrame(np.random.randn(10, 2)) >= 0) + df.to_excel(self.path, 'test1', + index_label=['test'], + merge_cells=merge_cells) reader = ExcelFile(self.path) recons = pd.read_excel( reader, 'test1', index_col=0).astype(np.int64) - frame.index.names = ['test'] - assert frame.index.names == recons.index.names - - frame = (DataFrame(np.random.randn(10, 2)) >= 0) - frame.to_excel(self.path, - 'test1', - index_label=['test', 'dummy', 'dummy2'], - merge_cells=merge_cells) + df.index.names = ['test'] + assert df.index.names == recons.index.names + + df = (DataFrame(np.random.randn(10, 2)) >= 0) + df.to_excel(self.path, + 'test1', + index_label=['test', 'dummy', 'dummy2'], + merge_cells=merge_cells) reader = ExcelFile(self.path) recons = pd.read_excel( reader, 'test1', index_col=0).astype(np.int64) - frame.index.names = ['test'] - assert frame.index.names == recons.index.names - - frame = (DataFrame(np.random.randn(10, 2)) >= 0) - frame.to_excel(self.path, - 'test1', - index_label='test', - merge_cells=merge_cells) + df.index.names = ['test'] + assert df.index.names == recons.index.names + + df = (DataFrame(np.random.randn(10, 2)) >= 0) + df.to_excel(self.path, + 'test1', + index_label='test', + merge_cells=merge_cells) reader = ExcelFile(self.path) recons = pd.read_excel( reader, 'test1', index_col=0).astype(np.int64) - frame.index.names = ['test'] - tm.assert_frame_equal(frame, recons.astype(bool)) + df.index.names = ['test'] + tm.assert_frame_equal(df, recons.astype(bool)) - self.frame.to_excel(self.path, - 'test1', - columns=['A', 'B', 'C', 'D'], - index=False, merge_cells=merge_cells) + frame.to_excel(self.path, + 'test1', + columns=['A', 'B', 'C', 'D'], + index=False, merge_cells=merge_cells) # take 'A' and 'B' as indexes (same row as cols 'C', 'D') - df = self.frame.copy() + df = frame.copy() df = df.set_index(['A', 'B']) reader = ExcelFile(self.path) @@ -1427,7 +1430,7 @@ def test_excel_date_datetime_format(self, merge_cells, engine, ext): # we need to use df_expected to check the result. tm.assert_frame_equal(rs2, df_expected) - def test_to_excel_interval_no_labels(self, *_): + def test_to_excel_interval_no_labels(self, frame, *_): # see gh-19242 # # Test writing Interval without labels. @@ -1444,7 +1447,7 @@ def test_to_excel_interval_no_labels(self, *_): recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_interval_labels(self, *_): + def test_to_excel_interval_labels(self, frame, *_): # see gh-19242 # # Test writing Interval with labels. @@ -1462,7 +1465,7 @@ def test_to_excel_interval_labels(self, *_): recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_timedelta(self, *_): + def test_to_excel_timedelta(self, frame, *_): # see gh-19242, gh-9155 # # Test writing timedelta to xls. @@ -1480,7 +1483,7 @@ def test_to_excel_timedelta(self, *_): recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_periodindex(self, merge_cells, engine, ext): + def test_to_excel_periodindex(self, merge_cells, engine, ext, frame): frame = self.tsframe xp = frame.resample('M', kind='period').mean() @@ -1490,8 +1493,8 @@ def test_to_excel_periodindex(self, merge_cells, engine, ext): rs = pd.read_excel(reader, 'sht1', index_col=0) tm.assert_frame_equal(xp, rs.to_period('M')) - def test_to_excel_multiindex(self, merge_cells, engine, ext): - frame = self.frame + def test_to_excel_multiindex(self, merge_cells, engine, ext, frame): + frame = frame arrays = np.arange(len(frame.index) * 2).reshape(2, -1) new_index = MultiIndex.from_arrays(arrays, names=['first', 'second']) @@ -1507,7 +1510,8 @@ def test_to_excel_multiindex(self, merge_cells, engine, ext): tm.assert_frame_equal(frame, df) # GH13511 - def test_to_excel_multiindex_nan_label(self, merge_cells, engine, ext): + def test_to_excel_multiindex_nan_label( + self, merge_cells, engine, ext, frame): frame = pd.DataFrame({'A': [None, 2, 3], 'B': [10, 20, 30], 'C': np.random.sample(3)}) @@ -1520,8 +1524,8 @@ def test_to_excel_multiindex_nan_label(self, merge_cells, engine, ext): # Test for Issue 11328. If column indices are integers, make # sure they are handled correctly for either setting of # merge_cells - def test_to_excel_multiindex_cols(self, merge_cells, engine, ext): - frame = self.frame + def test_to_excel_multiindex_cols(self, merge_cells, engine, ext, frame): + frame = frame arrays = np.arange(len(frame.index) * 2).reshape(2, -1) new_index = MultiIndex.from_arrays(arrays, names=['first', 'second']) From cfbd1c44d60bb9dae7fefa8dd2dc1c1976f9ca2a Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 30 May 2019 14:37:30 -0400 Subject: [PATCH 03/14] Removed shareditems --- pandas/conftest.py | 5 +++++ pandas/tests/io/test_excel.py | 40 ++++++++++++++++------------------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/pandas/conftest.py b/pandas/conftest.py index b8c93d940e5b1..dd682c44e5d48 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -688,3 +688,8 @@ def tick_classes(request): @pytest.fixture def seriesd(): return tm.getSeriesData() + + +@pytest.fixture +def tdf(): + return tm.makeTimeDataFrame() diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 572fa5b9e1308..1bd179b88c4a7 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -34,7 +34,11 @@ def frame(seriesd): @pytest.fixture def frame2(seriesd): return DataFrame(seriesd, columns=['D', 'C', 'B', 'A'])[:10] -_tsframe = tm.makeTimeDataFrame()[:5] + + +@pytest.fixture +def tsframe(tdf): + return tm.makeTimeDataFrame()[:5] @contextlib.contextmanager @@ -51,15 +55,8 @@ def ignore_xlrd_time_clock_warning(): yield -class SharedItems: - - @pytest.fixture(autouse=True) - def setup_method(self, datapath): - self.tsframe = _tsframe.copy() - - @td.skip_if_no('xlrd', '1.0.0') -class ReadingTestsBase(SharedItems): +class ReadingTestsBase: # This is based on ExcelWriterBase @pytest.fixture(autouse=True, params=['xlrd', None]) @@ -1074,7 +1071,7 @@ def test_read_xlrd_book(self, ext, frame): tm.assert_frame_equal(df, result) -class _WriterBase(SharedItems): +class _WriterBase: @pytest.fixture(autouse=True) def set_engine_and_path(self, request, merge_cells, engine, ext): @@ -1275,7 +1272,7 @@ def test_inf_roundtrip(self, frame, *_): tm.assert_frame_equal(frame, recons) - def test_sheets(self, merge_cells, engine, ext, frame): + def test_sheets(self, merge_cells, engine, ext, frame, tsframe): frame['A'][:5] = nan frame.to_excel(self.path, 'test1') @@ -1286,13 +1283,13 @@ def test_sheets(self, merge_cells, engine, ext, frame): # Test writing to separate sheets writer = ExcelWriter(self.path) frame.to_excel(writer, 'test1') - self.tsframe.to_excel(writer, 'test2') + tsframe.to_excel(writer, 'test2') writer.save() reader = ExcelFile(self.path) recons = pd.read_excel(reader, 'test1', index_col=0) tm.assert_frame_equal(frame, recons) recons = pd.read_excel(reader, 'test2', index_col=0) - tm.assert_frame_equal(self.tsframe, recons) + tm.assert_frame_equal(tsframe, recons) assert 2 == len(reader.sheet_names) assert 'test1' == reader.sheet_names[0] assert 'test2' == reader.sheet_names[1] @@ -1379,17 +1376,17 @@ def test_excel_roundtrip_indexname(self, merge_cells, engine, ext): tm.assert_frame_equal(result, df) assert result.index.name == 'foo' - def test_excel_roundtrip_datetime(self, merge_cells, *_): + def test_excel_roundtrip_datetime(self, merge_cells, tsframe, *_): # datetime.date, not sure what to test here exactly - tsf = self.tsframe.copy() + tsf = tsframe.copy() - tsf.index = [x.date() for x in self.tsframe.index] + tsf.index = [x.date() for x in tsframe.index] tsf.to_excel(self.path, "test1", merge_cells=merge_cells) reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) - tm.assert_frame_equal(self.tsframe, recons) + tm.assert_frame_equal(tsframe, recons) def test_excel_date_datetime_format(self, merge_cells, engine, ext): # see gh-4133 @@ -1483,9 +1480,9 @@ def test_to_excel_timedelta(self, frame, *_): recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_periodindex(self, merge_cells, engine, ext, frame): - frame = self.tsframe - xp = frame.resample('M', kind='period').mean() + def test_to_excel_periodindex( + self, merge_cells, engine, ext, tsframe): + xp = tsframe.resample('M', kind='period').mean() xp.to_excel(self.path, 'sht1') @@ -1548,9 +1545,8 @@ def test_to_excel_multiindex_cols(self, merge_cells, engine, ext, frame): frame.columns = [".".join(map(str, q)) for q in zip(*fm)] tm.assert_frame_equal(frame, df) - def test_to_excel_multiindex_dates(self, merge_cells, engine, ext): + def test_to_excel_multiindex_dates(self, merge_cells, engine, ext, tsframe): # try multiindex with dates - tsframe = self.tsframe.copy() new_index = [tsframe.index, np.arange(len(tsframe.index))] tsframe.index = MultiIndex.from_arrays(new_index) From 02a3aeac8a1a50ced2990c44331dcbe52b18957d Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 30 May 2019 14:40:42 -0400 Subject: [PATCH 04/14] lint fixup --- pandas/tests/io/test_excel.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 1bd179b88c4a7..775de332d8ade 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -26,6 +26,7 @@ from pandas.io.formats.excel import ExcelFormatter from pandas.io.parsers import read_csv + @pytest.fixture def frame(seriesd): return DataFrame(seriesd)[:10] @@ -1545,7 +1546,8 @@ def test_to_excel_multiindex_cols(self, merge_cells, engine, ext, frame): frame.columns = [".".join(map(str, q)) for q in zip(*fm)] tm.assert_frame_equal(frame, df) - def test_to_excel_multiindex_dates(self, merge_cells, engine, ext, tsframe): + def test_to_excel_multiindex_dates( + self, merge_cells, engine, ext, tsframe): # try multiindex with dates new_index = [tsframe.index, np.arange(len(tsframe.index))] tsframe.index = MultiIndex.from_arrays(new_index) From 27ce9fc281aa544e3bb7b4b68a58c2a999c90b73 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Thu, 30 May 2019 15:05:03 -0400 Subject: [PATCH 05/14] Cleaned up ambiguous frame references --- pandas/tests/io/test_excel.py | 90 +++++++++++++++++------------------ 1 file changed, 44 insertions(+), 46 deletions(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 775de332d8ade..3de75c9655721 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -1217,24 +1217,24 @@ def test_basics_with_nan(self, merge_cells, engine, ext, frame): @pytest.mark.parametrize("np_type", [ np.int8, np.int16, np.int32, np.int64]) - def test_int_types(self, merge_cells, engine, ext, np_type, frame): + def test_int_types(self, merge_cells, engine, ext, np_type): # Test np.int values read come back as int # (rather than float which is Excel's format). - frame = DataFrame(np.random.randint(-10, 10, size=(10, 2)), - dtype=np_type) - frame.to_excel(self.path, "test1") + df = DataFrame(np.random.randint(-10, 10, size=(10, 2)), + dtype=np_type) + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) - int_frame = frame.astype(np.int64) + int_frame = df.astype(np.int64) tm.assert_frame_equal(int_frame, recons) recons2 = pd.read_excel(self.path, "test1", index_col=0) tm.assert_frame_equal(int_frame, recons2) # Test with convert_float=False comes back as float. - float_frame = frame.astype(float) + float_frame = df.astype(float) recons = pd.read_excel(self.path, "test1", convert_float=False, index_col=0) tm.assert_frame_equal(recons, float_frame, @@ -1243,35 +1243,35 @@ def test_int_types(self, merge_cells, engine, ext, np_type, frame): @pytest.mark.parametrize("np_type", [ np.float16, np.float32, np.float64]) - def test_float_types(self, merge_cells, engine, ext, np_type, frame): + def test_float_types(self, merge_cells, engine, ext, np_type): # Test np.float values read come back as float. - frame = DataFrame(np.random.random_sample(10), dtype=np_type) - frame.to_excel(self.path, "test1") + df = DataFrame(np.random.random_sample(10), dtype=np_type) + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0).astype(np_type) - tm.assert_frame_equal(frame, recons, check_dtype=False) + tm.assert_frame_equal(df, recons, check_dtype=False) @pytest.mark.parametrize("np_type", [np.bool8, np.bool_]) - def test_bool_types(self, merge_cells, engine, ext, np_type, frame): + def test_bool_types(self, merge_cells, engine, ext, np_type): # Test np.bool values read come back as float. - frame = (DataFrame([1, 0, True, False], dtype=np_type)) - frame.to_excel(self.path, "test1") + df = (DataFrame([1, 0, True, False], dtype=np_type)) + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0).astype(np_type) - tm.assert_frame_equal(frame, recons) + tm.assert_frame_equal(df, recons) - def test_inf_roundtrip(self, frame, *_): - frame = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)]) - frame.to_excel(self.path, "test1") + def test_inf_roundtrip(self, *_): + df = DataFrame([(1, np.inf), (2, 3), (5, -np.inf)]) + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) - tm.assert_frame_equal(frame, recons) + tm.assert_frame_equal(df, recons) def test_sheets(self, merge_cells, engine, ext, frame, tsframe): frame['A'][:5] = nan @@ -1428,54 +1428,54 @@ def test_excel_date_datetime_format(self, merge_cells, engine, ext): # we need to use df_expected to check the result. tm.assert_frame_equal(rs2, df_expected) - def test_to_excel_interval_no_labels(self, frame, *_): + def test_to_excel_interval_no_labels(self, *_): # see gh-19242 # # Test writing Interval without labels. - frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)), - dtype=np.int64) + df = DataFrame(np.random.randint(-10, 10, size=(20, 1)), + dtype=np.int64) expected = frame.copy() - frame["new"] = pd.cut(frame[0], 10) + df["new"] = pd.cut(frame[0], 10) expected["new"] = pd.cut(expected[0], 10).astype(str) - frame.to_excel(self.path, "test1") + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_interval_labels(self, frame, *_): + def test_to_excel_interval_labels(self, *_): # see gh-19242 # # Test writing Interval with labels. - frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)), - dtype=np.int64) - expected = frame.copy() + df = DataFrame(np.random.randint(-10, 10, size=(20, 1)), + dtype=np.int64) + expected = df.copy() intervals = pd.cut(frame[0], 10, labels=["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]) - frame["new"] = intervals + df["new"] = intervals expected["new"] = pd.Series(list(intervals)) - frame.to_excel(self.path, "test1") + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) tm.assert_frame_equal(expected, recons) - def test_to_excel_timedelta(self, frame, *_): + def test_to_excel_timedelta(self, *_): # see gh-19242, gh-9155 # # Test writing timedelta to xls. - frame = DataFrame(np.random.randint(-10, 10, size=(20, 1)), - columns=["A"], dtype=np.int64) - expected = frame.copy() + df = DataFrame(np.random.randint(-10, 10, size=(20, 1)), + columns=["A"], dtype=np.int64) + expected = df.copy() - frame["new"] = frame["A"].apply(lambda x: timedelta(seconds=x)) + df["new"] = df["A"].apply(lambda x: timedelta(seconds=x)) expected["new"] = expected["A"].apply( lambda x: timedelta(seconds=x).total_seconds() / float(86400)) - frame.to_excel(self.path, "test1") + df.to_excel(self.path, "test1") reader = ExcelFile(self.path) recons = pd.read_excel(reader, "test1", index_col=0) @@ -1492,7 +1492,6 @@ def test_to_excel_periodindex( tm.assert_frame_equal(xp, rs.to_period('M')) def test_to_excel_multiindex(self, merge_cells, engine, ext, frame): - frame = frame arrays = np.arange(len(frame.index) * 2).reshape(2, -1) new_index = MultiIndex.from_arrays(arrays, names=['first', 'second']) @@ -1509,21 +1508,20 @@ def test_to_excel_multiindex(self, merge_cells, engine, ext, frame): # GH13511 def test_to_excel_multiindex_nan_label( - self, merge_cells, engine, ext, frame): - frame = pd.DataFrame({'A': [None, 2, 3], - 'B': [10, 20, 30], - 'C': np.random.sample(3)}) - frame = frame.set_index(['A', 'B']) - - frame.to_excel(self.path, merge_cells=merge_cells) - df = pd.read_excel(self.path, index_col=[0, 1]) - tm.assert_frame_equal(frame, df) + self, merge_cells, engine, ext, ): + df = pd.DataFrame({'A': [None, 2, 3], + 'B': [10, 20, 30], + 'C': np.random.sample(3)}) + df = df.set_index(['A', 'B']) + + df.to_excel(self.path, merge_cells=merge_cells) + df1 = pd.read_excel(self.path, index_col=[0, 1]) + tm.assert_frame_equal(df, df1) # Test for Issue 11328. If column indices are integers, make # sure they are handled correctly for either setting of # merge_cells def test_to_excel_multiindex_cols(self, merge_cells, engine, ext, frame): - frame = frame arrays = np.arange(len(frame.index) * 2).reshape(2, -1) new_index = MultiIndex.from_arrays(arrays, names=['first', 'second']) From 407149f7a320a73789bf1d7d691899ccb37fa5d9 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:03:03 -0400 Subject: [PATCH 06/14] Reverted changes to frame tests --- pandas/tests/frame/common.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pandas/tests/frame/common.py b/pandas/tests/frame/common.py index 6e3f0b464bb59..4b71405e20d32 100644 --- a/pandas/tests/frame/common.py +++ b/pandas/tests/frame/common.py @@ -5,11 +5,12 @@ import pandas as pd import pandas.util.testing as tm +_seriesd = tm.getSeriesData() _tsd = tm.getTimeSeriesData() -_frame = pd.DataFrame(seriesd) -_frame2 = pd.DataFrame(seriesd, columns=['D', 'C', 'B', 'A']) -_intframe = pd.DataFrame({k: v.astype(int) for k, v in seriesd.items()}) +_frame = pd.DataFrame(_seriesd) +_frame2 = pd.DataFrame(_seriesd, columns=['D', 'C', 'B', 'A']) +_intframe = pd.DataFrame({k: v.astype(int) for k, v in _seriesd.items()}) _tsframe = pd.DataFrame(_tsd) From 88d378eb7cb098943f3f3b9de31276ea4afd2522 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:03:59 -0400 Subject: [PATCH 07/14] Reverted errant merge fixup --- pandas/conftest.py | 1 - 1 file changed, 1 deletion(-) diff --git a/pandas/conftest.py b/pandas/conftest.py index 492993803d052..9d2c5c43ea1ad 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -722,4 +722,3 @@ def float_frame(): [30 rows x 4 columns] """ return DataFrame(tm.getSeriesData()) ->>>>>>> upstream/master From 4996340bb212b3b7473e78c5f2c599de37a6e47f Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:04:41 -0400 Subject: [PATCH 08/14] Reverted changes to frame conftest --- pandas/tests/frame/conftest.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/pandas/tests/frame/conftest.py b/pandas/tests/frame/conftest.py index 74dd858feac21..d8a590bc492a4 100644 --- a/pandas/tests/frame/conftest.py +++ b/pandas/tests/frame/conftest.py @@ -31,7 +31,7 @@ def float_frame_with_na(): [30 rows x 4 columns] """ - df = DataFrame(seriesd) + df = DataFrame(tm.getSeriesData()) # set some NAs df.loc[5:10] = np.nan df.loc[15:20, -2:] = np.nan @@ -39,7 +39,7 @@ def float_frame_with_na(): @pytest.fixture -def bool_frame_with_na(seriesd): +def bool_frame_with_na(): """ Fixture for DataFrame of booleans with index of unique strings @@ -64,7 +64,7 @@ def bool_frame_with_na(seriesd): [30 rows x 4 columns] """ - df = DataFrame(seriesd) > 0 + df = DataFrame(tm.getSeriesData()) > 0 df = df.astype(object) # set some NAs df.loc[5:10] = np.nan @@ -73,7 +73,7 @@ def bool_frame_with_na(seriesd): @pytest.fixture -def int_frame(seriesd): +def int_frame(): """ Fixture for DataFrame of ints with index of unique strings @@ -98,7 +98,7 @@ def int_frame(seriesd): [30 rows x 4 columns] """ - df = DataFrame({k: v.astype(int) for k, v in seriesd.items()}) + df = DataFrame({k: v.astype(int) for k, v in tm.getSeriesData().items()}) # force these all to int64 to avoid platform testing issues return DataFrame({c: s for c, s in df.items()}, dtype=np.int64) @@ -133,7 +133,7 @@ def datetime_frame(): @pytest.fixture -def float_string_frame(seriesd): +def float_string_frame(): """ Fixture for DataFrame of floats and strings with index of unique strings @@ -158,13 +158,13 @@ def float_string_frame(seriesd): [30 rows x 5 columns] """ - df = DataFrame(seriesd) + df = DataFrame(tm.getSeriesData()) df['foo'] = 'bar' return df @pytest.fixture -def mixed_float_frame(seriesd): +def mixed_float_frame(): """ Fixture for DataFrame of different float types with index of unique strings @@ -189,7 +189,7 @@ def mixed_float_frame(seriesd): [30 rows x 4 columns] """ - df = DataFrame(seriesd) + df = DataFrame(tm.getSeriesData()) df.A = df.A.astype('float32') df.B = df.B.astype('float32') df.C = df.C.astype('float16') @@ -198,7 +198,7 @@ def mixed_float_frame(seriesd): @pytest.fixture -def mixed_int_frame(seriesd): +def mixed_int_frame(): """ Fixture for DataFrame of different int types with index of unique strings @@ -223,7 +223,7 @@ def mixed_int_frame(seriesd): [30 rows x 4 columns] """ - df = DataFrame({k: v.astype(int) for k, v in seriesd.items()}) + df = DataFrame({k: v.astype(int) for k, v in tm.getSeriesData().items()}) df.A = df.A.astype('int32') df.B = np.ones(len(df.B), dtype='uint64') df.C = df.C.astype('uint8') From 05867590aacfbbebd038fc43eb4b971cf8c98d9f Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:10:41 -0400 Subject: [PATCH 09/14] Cleaned up fixture usage --- pandas/conftest.py | 1 - pandas/tests/io/test_excel.py | 11 ++++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/pandas/conftest.py b/pandas/conftest.py index 9d2c5c43ea1ad..09fe8e0829fa1 100644 --- a/pandas/conftest.py +++ b/pandas/conftest.py @@ -10,7 +10,6 @@ from pytz import FixedOffset, utc import pandas.util._test_decorators as td -import pandas.util.testing as tm import pandas as pd from pandas import DataFrame diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 873d7fa7f64aa..14e97e5872498 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -28,17 +28,18 @@ @pytest.fixture -def frame(seriesd): - return DataFrame(seriesd)[:10] +def frame(float_frame): + return float_frame[:10] @pytest.fixture -def frame2(seriesd): - return DataFrame(seriesd, columns=['D', 'C', 'B', 'A'])[:10] +def frame2(float_frame): + float_frame.columns = ['D', 'C', 'B', 'A'] + return float_frame[:10] @pytest.fixture -def tsframe(tdf): +def tsframe(): return tm.makeTimeDataFrame()[:5] From c59602b2a1ec42e98ebf7b27ab132232f92a55c3 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:11:08 -0400 Subject: [PATCH 10/14] Reverted groupby conftest from master --- pandas/tests/groupby/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pandas/tests/groupby/conftest.py b/pandas/tests/groupby/conftest.py index 5bd8e63d50490..cb4fe511651ee 100644 --- a/pandas/tests/groupby/conftest.py +++ b/pandas/tests/groupby/conftest.py @@ -30,6 +30,11 @@ def ts(): return tm.makeTimeSeries() +@pytest.fixture +def seriesd(): + return tm.getSeriesData() + + @pytest.fixture def tsd(): return tm.getTimeSeriesData() From 3b739df4a709f1d170034d8c4c7f8bce3a252045 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:21:01 -0400 Subject: [PATCH 11/14] Fixed up failures with mixed fixture usage --- pandas/tests/io/test_excel.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 14e97e5872498..a25f1521e6f4d 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -1161,6 +1161,7 @@ def test_excel_writer_context_manager(self, frame, frame2, *_): tm.assert_frame_equal(found_df2, frame2) def test_roundtrip(self, merge_cells, engine, ext, frame): + frame = frame.copy() frame['A'][:5] = nan frame.to_excel(self.path, 'test1') @@ -1228,6 +1229,7 @@ def test_ts_frame(self, *_): tm.assert_frame_equal(df, recons) def test_basics_with_nan(self, merge_cells, engine, ext, frame): + frame = frame.copy() frame['A'][:5] = nan frame.to_excel(self.path, 'test1') frame.to_excel(self.path, 'test1', columns=['A', 'B']) @@ -1293,6 +1295,7 @@ def test_inf_roundtrip(self, *_): tm.assert_frame_equal(df, recons) def test_sheets(self, merge_cells, engine, ext, frame, tsframe): + frame = frame.copy() frame['A'][:5] = nan frame.to_excel(self.path, 'test1') @@ -1315,6 +1318,7 @@ def test_sheets(self, merge_cells, engine, ext, frame, tsframe): assert 'test2' == reader.sheet_names[1] def test_colaliases(self, merge_cells, engine, ext, frame, frame2): + frame = frame.copy() frame['A'][:5] = nan frame.to_excel(self.path, 'test1') @@ -1332,6 +1336,7 @@ def test_colaliases(self, merge_cells, engine, ext, frame, frame2): tm.assert_frame_equal(xp, rs) def test_roundtrip_indexlabels(self, merge_cells, engine, ext, frame): + frame = frame.copy() frame['A'][:5] = nan frame.to_excel(self.path, 'test1') @@ -1453,9 +1458,9 @@ def test_to_excel_interval_no_labels(self, *_): # Test writing Interval without labels. df = DataFrame(np.random.randint(-10, 10, size=(20, 1)), dtype=np.int64) - expected = frame.copy() + expected = df.copy() - df["new"] = pd.cut(frame[0], 10) + df["new"] = pd.cut(df[0], 10) expected["new"] = pd.cut(expected[0], 10).astype(str) df.to_excel(self.path, "test1") @@ -1471,7 +1476,7 @@ def test_to_excel_interval_labels(self, *_): df = DataFrame(np.random.randint(-10, 10, size=(20, 1)), dtype=np.int64) expected = df.copy() - intervals = pd.cut(frame[0], 10, labels=["A", "B", "C", "D", "E", + intervals = pd.cut(df[0], 10, labels=["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"]) df["new"] = intervals expected["new"] = pd.Series(list(intervals)) From 2d0d3dc0a0b0fb8839f081dc1b29adda58ca3779 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:22:28 -0400 Subject: [PATCH 12/14] Used tsframe fixture where appropriate --- pandas/tests/io/test_excel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index a25f1521e6f4d..21f95ef8e4f64 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -1219,8 +1219,8 @@ def test_mixed(self, merge_cells, engine, ext, frame): recons = pd.read_excel(reader, 'test1', index_col=0) tm.assert_frame_equal(mixed_frame, recons) - def test_ts_frame(self, *_): - df = tm.makeTimeDataFrame()[:5] + def test_ts_frame(self, tsframe, *_): + df = tsframe df.to_excel(self.path, "test1") reader = ExcelFile(self.path) From 5d0b63182696ef167b4cb790026ce6eabb9ee50c Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 19:28:22 -0400 Subject: [PATCH 13/14] style fixes --- pandas/tests/io/test_excel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index 21f95ef8e4f64..f22b9ed56cbb7 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -1477,7 +1477,7 @@ def test_to_excel_interval_labels(self, *_): dtype=np.int64) expected = df.copy() intervals = pd.cut(df[0], 10, labels=["A", "B", "C", "D", "E", - "F", "G", "H", "I", "J"]) + "F", "G", "H", "I", "J"]) df["new"] = intervals expected["new"] = pd.Series(list(intervals)) @@ -1532,7 +1532,7 @@ def test_to_excel_multiindex(self, merge_cells, engine, ext, frame): # GH13511 def test_to_excel_multiindex_nan_label( - self, merge_cells, engine, ext, ): + self, merge_cells, engine, ext): df = pd.DataFrame({'A': [None, 2, 3], 'B': [10, 20, 30], 'C': np.random.sample(3)}) From 199909ae2c4142612c9aae7e1b4f888b884eaba7 Mon Sep 17 00:00:00 2001 From: Will Ayd Date: Mon, 3 Jun 2019 21:07:57 -0400 Subject: [PATCH 14/14] Added copy to frame2 fixture --- pandas/tests/io/test_excel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandas/tests/io/test_excel.py b/pandas/tests/io/test_excel.py index f22b9ed56cbb7..b99f0336fa4c5 100644 --- a/pandas/tests/io/test_excel.py +++ b/pandas/tests/io/test_excel.py @@ -34,6 +34,7 @@ def frame(float_frame): @pytest.fixture def frame2(float_frame): + float_frame = float_frame.copy() float_frame.columns = ['D', 'C', 'B', 'A'] return float_frame[:10]