Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 5857d3f

Browse files
committedNov 23, 2020
removed support for unpacking dicts and lists in execute
1 parent e9464d8 commit 5857d3f

File tree

2 files changed

+1
-34
lines changed

2 files changed

+1
-34
lines changed
 

‎src/cs50/sql.py

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def execute(self, sql, *args, **kwargs):
127127

128128
# Ensure named and positional parameters are mutually exclusive
129129
if len(args) > 0 and len(kwargs) > 0:
130-
raise RuntimeError("cannot pass both named and positional parameters")
130+
raise RuntimeError("cannot pass both positional and named parameters")
131131

132132
# Infer command from (unflattened) statement
133133
for token in statements[0]:
@@ -163,18 +163,6 @@ def execute(self, sql, *args, **kwargs):
163163
# Remember placeholder's index, name
164164
placeholders[index] = name
165165

166-
# If more placeholders than arguments
167-
if len(args) == 1 and len(placeholders) > 1:
168-
169-
# If user passed args as list or tuple, explode values into args
170-
if isinstance(args[0], (list, tuple)):
171-
args = args[0]
172-
173-
# If user passed kwargs as dict, migrate values from args to kwargs
174-
elif len(kwargs) == 0 and isinstance(args[0], dict):
175-
kwargs = args[0]
176-
args = []
177-
178166
# If no placeholders
179167
if not paramstyle:
180168

‎tests/sql.py

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -211,26 +211,16 @@ def test_qmark(self):
211211
self.db.execute("INSERT INTO foo VALUES ('qux', 'quux')")
212212
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = ?", 'qux'), [{"firstname": "qux", "lastname": "quux"}])
213213
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = ? AND lastname = ?", "qux", "quux"), [{"firstname": "qux", "lastname": "quux"}])
214-
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = ? AND lastname = ?", ("qux", "quux")), [{"firstname": "qux", "lastname": "quux"}])
215-
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = ? AND lastname = ?", ["qux", "quux"]), [{"firstname": "qux", "lastname": "quux"}])
216214
self.db.execute("DELETE FROM foo")
217215

218216
self.db.execute("INSERT INTO foo VALUES (?)", ("bar", "baz"))
219217
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
220218
self.db.execute("DELETE FROM foo")
221219

222-
self.db.execute("INSERT INTO foo VALUES (?, ?)", ("bar", "baz"))
223-
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
224-
self.db.execute("DELETE FROM foo")
225-
226220
self.db.execute("INSERT INTO foo VALUES (?)", ["bar", "baz"])
227221
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
228222
self.db.execute("DELETE FROM foo")
229223

230-
self.db.execute("INSERT INTO foo VALUES (?, ?)", ["bar", "baz"])
231-
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
232-
self.db.execute("DELETE FROM foo")
233-
234224
self.db.execute("INSERT INTO foo VALUES (?,?)", "bar", "baz")
235225
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
236226
self.db.execute("DELETE FROM foo")
@@ -308,19 +298,8 @@ def test_numeric(self):
308298
self.db.execute("INSERT INTO foo VALUES ('qux', 'quux')")
309299
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = :1", 'qux'), [{"firstname": "qux", "lastname": "quux"}])
310300
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = :1 AND lastname = :2", "qux", "quux"), [{"firstname": "qux", "lastname": "quux"}])
311-
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = :1 AND lastname = :2", ("qux", "quux")), [{"firstname": "qux", "lastname": "quux"}])
312-
self.assertEqual(self.db.execute("SELECT * FROM foo WHERE firstname = :1 AND lastname = :2", ["qux", "quux"]), [{"firstname": "qux", "lastname": "quux"}])
313301
self.db.execute("DELETE FROM foo")
314302

315-
self.db.execute("INSERT INTO foo VALUES (:1, :2)", ("bar", "baz"))
316-
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
317-
self.db.execute("DELETE FROM foo")
318-
319-
self.db.execute("INSERT INTO foo VALUES (:1, :2)", ["bar", "baz"])
320-
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
321-
self.db.execute("DELETE FROM foo")
322-
323-
324303
self.db.execute("INSERT INTO foo VALUES (:1,:2)", "bar", "baz")
325304
self.assertEqual(self.db.execute("SELECT * FROM foo"), [{"firstname": "bar", "lastname": "baz"}])
326305
self.db.execute("DELETE FROM foo")

0 commit comments

Comments
 (0)
Please sign in to comment.