Skip to content

Commit 6e7b628

Browse files
gpoulinjeffreystarr
authored andcommitted
Add SQL read_parameters tests
1 parent ffa7fd3 commit 6e7b628

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

pandas/io/tests/test_sql.py

+42
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,24 @@
9595
INSERT INTO types_test_data
9696
VALUES(%s, %s, %s, %s, %s, %s, %s, %s)
9797
"""
98+
},
99+
'read_parameters': {
100+
'sqlite': "SELECT * FROM iris WHERE Name=? AND SepalLength=?",
101+
'mysql': 'SELECT * FROM iris WHERE `Name`="%s" AND `SepalLength`=%s',
102+
'postgresql': 'SELECT * FROM iris WHERE "Name"=%s AND "SepalLength"=%s'
103+
},
104+
'read_named_parameters': {
105+
'sqlite': """
106+
SELECT * FROM iris WHERE Name=:name AND SepalLength=:length
107+
""",
108+
'mysql': """
109+
SELECT * FROM iris WHERE
110+
`Name`="%(name)s" AND `SepalLength`=%(length)s
111+
""",
112+
'postgresql': """
113+
SELECT * FROM iris WHERE
114+
"Name"=%(name)s AND "SepalLength"=%(length)s
115+
"""
98116
}
99117
}
100118

@@ -168,6 +186,18 @@ def _read_sql_iris(self):
168186
iris_frame = self.pandasSQL.read_sql("SELECT * FROM iris")
169187
self._check_iris_loaded_frame(iris_frame)
170188

189+
def _read_sql_iris_parameter(self):
190+
query = SQL_STRINGS['read_parameters'][self.flavor]
191+
params = ['Iris-setosa', 5.1]
192+
iris_frame = self.pandasSQL.read_sql(query, params=params)
193+
self._check_iris_loaded_frame(iris_frame)
194+
195+
def _read_sql_iris_named_parameter(self):
196+
query = SQL_STRINGS['read_named_parameters'][self.flavor]
197+
params = {'name': 'Iris-setosa', 'length': 5.1}
198+
iris_frame = self.pandasSQL.read_sql(query, params=params)
199+
self._check_iris_loaded_frame(iris_frame)
200+
171201
def _to_sql(self):
172202
self.drop_table('test_frame1')
173203

@@ -491,6 +521,12 @@ class _TestSQLAlchemy(PandasSQLTest):
491521
def test_read_sql(self):
492522
self._read_sql_iris()
493523

524+
def test_read_sql_parameter(self):
525+
self._read_sql_iris_parameter()
526+
527+
def test_read_sql_named_parameter(self):
528+
self._read_sql_iris_named_parameter()
529+
494530
def test_to_sql(self):
495531
self._to_sql()
496532

@@ -703,6 +739,12 @@ def test_invalid_flavor(self):
703739
def test_read_sql(self):
704740
self._read_sql_iris()
705741

742+
def test_read_sql_parameter(self):
743+
self._read_sql_iris_parameter()
744+
745+
def test_read_sql_named_parameter(self):
746+
self._read_sql_iris_named_parameter()
747+
706748
def test_to_sql(self):
707749
self._to_sql()
708750

0 commit comments

Comments
 (0)