Skip to content

CLN/TST: Use fixture instead of setup_method #49004

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Oct 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 23 additions & 20 deletions pandas/tests/frame/test_query_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,45 +36,48 @@ def skip_if_no_pandas_parser(parser):


class TestCompat:
def setup_method(self):
self.df = DataFrame({"A": [1, 2, 3]})
self.expected1 = self.df[self.df.A > 0]
self.expected2 = self.df.A + 1
@pytest.fixture
def df(self):
return DataFrame({"A": [1, 2, 3]})

@pytest.fixture
def expected1(self, df):
return df[df.A > 0]

@pytest.fixture
def expected2(self, df):
return df.A + 1

def test_query_default(self):
def test_query_default(self, df, expected1, expected2):

# GH 12749
# this should always work, whether NUMEXPR_INSTALLED or not
df = self.df
result = df.query("A>0")
tm.assert_frame_equal(result, self.expected1)
tm.assert_frame_equal(result, expected1)
result = df.eval("A+1")
tm.assert_series_equal(result, self.expected2, check_names=False)
tm.assert_series_equal(result, expected2, check_names=False)

def test_query_None(self):
def test_query_None(self, df, expected1, expected2):

df = self.df
result = df.query("A>0", engine=None)
tm.assert_frame_equal(result, self.expected1)
tm.assert_frame_equal(result, expected1)
result = df.eval("A+1", engine=None)
tm.assert_series_equal(result, self.expected2, check_names=False)
tm.assert_series_equal(result, expected2, check_names=False)

def test_query_python(self):
def test_query_python(self, df, expected1, expected2):

df = self.df
result = df.query("A>0", engine="python")
tm.assert_frame_equal(result, self.expected1)
tm.assert_frame_equal(result, expected1)
result = df.eval("A+1", engine="python")
tm.assert_series_equal(result, self.expected2, check_names=False)
tm.assert_series_equal(result, expected2, check_names=False)

def test_query_numexpr(self):
def test_query_numexpr(self, df, expected1, expected2):

df = self.df
if NUMEXPR_INSTALLED:
result = df.query("A>0", engine="numexpr")
tm.assert_frame_equal(result, self.expected1)
tm.assert_frame_equal(result, expected1)
result = df.eval("A+1", engine="numexpr")
tm.assert_series_equal(result, self.expected2, check_names=False)
tm.assert_series_equal(result, expected2, check_names=False)
else:
msg = (
r"'numexpr' is not installed or an unsupported version. "
Expand Down
53 changes: 33 additions & 20 deletions pandas/tests/io/json/test_json_table_schema_ext_dtype.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,23 +111,36 @@ def test_as_json_table_type_ext_integer_dtype(self):


class TestTableOrient:
def setup_method(self):
self.da = DateArray([dt.date(2021, 10, 10)])
self.dc = DecimalArray([decimal.Decimal(10)])
self.sa = array(["pandas"], dtype="string")
self.ia = array([10], dtype="Int64")
self.df = DataFrame(
@pytest.fixture
def da(self):
return DateArray([dt.date(2021, 10, 10)])

@pytest.fixture
def dc(self):
return DecimalArray([decimal.Decimal(10)])

@pytest.fixture
def sa(self):
return array(["pandas"], dtype="string")

@pytest.fixture
def ia(self):
return array([10], dtype="Int64")

@pytest.fixture
def df(self, da, dc, sa, ia):
return DataFrame(
{
"A": self.da,
"B": self.dc,
"C": self.sa,
"D": self.ia,
"A": da,
"B": dc,
"C": sa,
"D": ia,
}
)

def test_build_date_series(self):
def test_build_date_series(self, da):

s = Series(self.da, name="a")
s = Series(da, name="a")
s.index.name = "id"
result = s.to_json(orient="table", date_format="iso")
result = json.loads(result, object_pairs_hook=OrderedDict)
Expand All @@ -151,9 +164,9 @@ def test_build_date_series(self):

assert result == expected

def test_build_decimal_series(self):
def test_build_decimal_series(self, dc):

s = Series(self.dc, name="a")
s = Series(dc, name="a")
s.index.name = "id"
result = s.to_json(orient="table", date_format="iso")
result = json.loads(result, object_pairs_hook=OrderedDict)
Expand All @@ -177,8 +190,8 @@ def test_build_decimal_series(self):

assert result == expected

def test_build_string_series(self):
s = Series(self.sa, name="a")
def test_build_string_series(self, sa):
s = Series(sa, name="a")
s.index.name = "id"
result = s.to_json(orient="table", date_format="iso")
result = json.loads(result, object_pairs_hook=OrderedDict)
Expand All @@ -202,8 +215,8 @@ def test_build_string_series(self):

assert result == expected

def test_build_int64_series(self):
s = Series(self.ia, name="a")
def test_build_int64_series(self, ia):
s = Series(ia, name="a")
s.index.name = "id"
result = s.to_json(orient="table", date_format="iso")
result = json.loads(result, object_pairs_hook=OrderedDict)
Expand All @@ -227,9 +240,9 @@ def test_build_int64_series(self):

assert result == expected

def test_to_json(self):
def test_to_json(self, df):

df = self.df.copy()
df = df.copy()
df.index.name = "idx"
result = df.to_json(orient="table", date_format="iso")
result = json.loads(result, object_pairs_hook=OrderedDict)
Expand Down
50 changes: 27 additions & 23 deletions pandas/tests/plotting/test_converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,66 +287,70 @@ def test_convert_nested(self, dtc):


class TestPeriodConverter:
def setup_method(self):
self.pc = converter.PeriodConverter()
@pytest.fixture
def pc(self):
return converter.PeriodConverter()

@pytest.fixture
def axis(self):
class Axis:
pass

self.axis = Axis()
self.axis.freq = "D"
axis = Axis()
axis.freq = "D"
return axis

def test_convert_accepts_unicode(self):
r1 = self.pc.convert("2012-1-1", None, self.axis)
r2 = self.pc.convert("2012-1-1", None, self.axis)
def test_convert_accepts_unicode(self, pc, axis):
r1 = pc.convert("2012-1-1", None, axis)
r2 = pc.convert("2012-1-1", None, axis)
assert r1 == r2

def test_conversion(self):
rs = self.pc.convert(["2012-1-1"], None, self.axis)[0]
def test_conversion(self, pc, axis):
rs = pc.convert(["2012-1-1"], None, axis)[0]
xp = Period("2012-1-1").ordinal
assert rs == xp

rs = self.pc.convert("2012-1-1", None, self.axis)
rs = pc.convert("2012-1-1", None, axis)
assert rs == xp

rs = self.pc.convert([date(2012, 1, 1)], None, self.axis)[0]
rs = pc.convert([date(2012, 1, 1)], None, axis)[0]
assert rs == xp

rs = self.pc.convert(date(2012, 1, 1), None, self.axis)
rs = pc.convert(date(2012, 1, 1), None, axis)
assert rs == xp

rs = self.pc.convert([Timestamp("2012-1-1")], None, self.axis)[0]
rs = pc.convert([Timestamp("2012-1-1")], None, axis)[0]
assert rs == xp

rs = self.pc.convert(Timestamp("2012-1-1"), None, self.axis)
rs = pc.convert(Timestamp("2012-1-1"), None, axis)
assert rs == xp

rs = self.pc.convert("2012-01-01", None, self.axis)
rs = pc.convert("2012-01-01", None, axis)
assert rs == xp

rs = self.pc.convert("2012-01-01 00:00:00+0000", None, self.axis)
rs = pc.convert("2012-01-01 00:00:00+0000", None, axis)
assert rs == xp

rs = self.pc.convert(
rs = pc.convert(
np.array(
["2012-01-01 00:00:00", "2012-01-02 00:00:00"],
dtype="datetime64[ns]",
),
None,
self.axis,
axis,
)
assert rs[0] == xp

def test_integer_passthrough(self):
def test_integer_passthrough(self, pc, axis):
# GH9012
rs = self.pc.convert([0, 1], None, self.axis)
rs = pc.convert([0, 1], None, axis)
xp = [0, 1]
assert rs == xp

def test_convert_nested(self):
def test_convert_nested(self, pc, axis):
data = ["2012-1-1", "2012-1-2"]
r1 = self.pc.convert([data, data], None, self.axis)
r2 = [self.pc.convert(data, None, self.axis) for _ in range(2)]
r1 = pc.convert([data, data], None, axis)
r2 = [pc.convert(data, None, axis) for _ in range(2)]
assert r1 == r2


Expand Down
Loading