From c47802aa74d8e0d9395d17ebc4462c51b3526425 Mon Sep 17 00:00:00 2001 From: Justin Sexton Date: Tue, 1 Dec 2020 01:13:02 -0600 Subject: [PATCH] TST: Added dataframe constructor tests confirming order is preserved with standard Python dicts (#38033) --- pandas/tests/frame/test_constructors.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pandas/tests/frame/test_constructors.py b/pandas/tests/frame/test_constructors.py index a98723e9e31f8..2300a8937991e 100644 --- a/pandas/tests/frame/test_constructors.py +++ b/pandas/tests/frame/test_constructors.py @@ -1238,32 +1238,34 @@ def test_constructor_single_row(self): ) tm.assert_frame_equal(result, expected) - def test_constructor_ordered_dict_preserve_order(self): + @pytest.mark.parametrize("dict_type", [dict, OrderedDict]) + def test_constructor_ordered_dict_preserve_order(self, dict_type): # see gh-13304 expected = DataFrame([[2, 1]], columns=["b", "a"]) - data = OrderedDict() + data = dict_type() data["b"] = [2] data["a"] = [1] result = DataFrame(data) tm.assert_frame_equal(result, expected) - data = OrderedDict() + data = dict_type() data["b"] = 2 data["a"] = 1 result = DataFrame([data]) tm.assert_frame_equal(result, expected) - def test_constructor_ordered_dict_conflicting_orders(self): + @pytest.mark.parametrize("dict_type", [dict, OrderedDict]) + def test_constructor_ordered_dict_conflicting_orders(self, dict_type): # the first dict element sets the ordering for the DataFrame, # even if there are conflicting orders from subsequent ones - row_one = OrderedDict() + row_one = dict_type() row_one["b"] = 2 row_one["a"] = 1 - row_two = OrderedDict() + row_two = dict_type() row_two["a"] = 1 row_two["b"] = 2