Skip to content

Commit ff463ca

Browse files
committed
TST: Add tests for backtick quoting (pandas-dev#6508)
1 parent 83fe6ca commit ff463ca

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
@@ -1030,3 +1030,34 @@ def test_invalid_type_for_operator_raises(self, parser, engine, op):
10301030

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

0 commit comments

Comments
 (0)