Skip to content

Commit 3dcc953

Browse files
committed
TST: Add tests for backtick quoting (pandas-dev#6508)
1 parent 2626215 commit 3dcc953

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

pandas/tests/frame/test_query_eval.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,3 +1038,34 @@ def test_invalid_type_for_operator_raises(self, parser, engine, op):
10381038

10391039
with pytest.raises(TypeError, match=msg):
10401040
df.eval('a {0} b'.format(op), engine=engine, parser=parser)
1041+
1042+
1043+
class TestDataFrameQueryBacktickQuoting(object):
1044+
1045+
def setup_method(self, method):
1046+
self.df = DataFrame({'A': [1, 2, 3],
1047+
'B B': [3, 2, 1],
1048+
'C C': [4, 5, 6]})
1049+
1050+
def teardown_method(self, method):
1051+
del self.df
1052+
1053+
def test_single_backtick_variable_query(self):
1054+
res = self.df.query('1 < `B B`')
1055+
expect = self.df[1 < self.df['B B']]
1056+
assert_frame_equal(res, expect)
1057+
1058+
def test_two_backtick_variables_query(self):
1059+
res = self.df.query('1 < `B B` and 4 < `C C`')
1060+
expect = self.df[(1 < self.df['B B']) & (4 < self.df['C C'])]
1061+
assert_frame_equal(res, expect)
1062+
1063+
def test_single_backtick_variable_expr(self):
1064+
res = self.df.eval('A + `B B`')
1065+
expect = self.df['A'] + self.df['B B']
1066+
assert_series_equal(res, expect)
1067+
1068+
def test_two_backtick_variables_expr(self):
1069+
res = self.df.eval('`B B` + `C C`')
1070+
expect = self.df['B B'] + self.df['C C']
1071+
assert_series_equal(res, expect)

0 commit comments

Comments
 (0)