99
1010
1111class SQLTests (unittest .TestCase ):
12-
1312 def test_multiple_statements (self ):
1413 self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO cs50(val) VALUES('baz'); INSERT INTO cs50(val) VALUES('qux')" )
1514
@@ -133,20 +132,10 @@ def test_identifier_case(self):
133132 self .assertIn ("count" , self .db .execute ("SELECT 1 AS count" )[0 ])
134133
135134 def tearDown (self ):
136- self .db .execute ("DROP TABLE cs50" )
135+ self .db .execute ("DROP TABLE IF EXISTS cs50" )
137136 self .db .execute ("DROP TABLE IF EXISTS foo" )
138137 self .db .execute ("DROP TABLE IF EXISTS bar" )
139138
140- @classmethod
141- def tearDownClass (self ):
142- try :
143- self .db .execute ("DROP TABLE IF EXISTS cs50" )
144- except Warning as e :
145- # suppress "unknown table"
146- if not str (e ).startswith ("(1051" ):
147- raise e
148-
149-
150139class MySQLTests (SQLTests ):
151140 @classmethod
152141 def setUpClass (self ):
@@ -156,7 +145,6 @@ def setUp(self):
156145 self .db .execute ("CREATE TABLE IF NOT EXISTS cs50 (id INTEGER NOT NULL AUTO_INCREMENT, val VARCHAR(16), bin BLOB, PRIMARY KEY (id))" )
157146 self .db .execute ("DELETE FROM cs50" )
158147
159-
160148class PostgresTests (SQLTests ):
161149 @classmethod
162150 def setUpClass (self ):
@@ -169,9 +157,11 @@ def setUp(self):
169157 def test_cte (self ):
170158 self .assertEqual (self .db .execute ("WITH foo AS ( SELECT 1 AS bar ) SELECT bar FROM foo" ), [{"bar" : 1 }])
171159
160+ def test_postgres_scheme (self ):
161+ db = SQL (
"postgres://postgres:[email protected] /test" )
162+ db .execute ("SELECT 1" )
172163
173164class SQLiteTests (SQLTests ):
174-
175165 @classmethod
176166 def setUpClass (self ):
177167 open ("test.db" , "w" ).close ()
@@ -283,7 +273,6 @@ def test_named(self):
283273 self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES (:bar, :baz)" , bar = 'bar' , baz = 'baz' , qux = 'qux' )
284274 self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES (:bar, :baz)" , 'baz' , bar = 'bar' )
285275
286-
287276 def test_numeric (self ):
288277 self .db .execute ("CREATE TABLE foo (firstname STRING, lastname STRING)" )
289278
@@ -319,6 +308,9 @@ def test_numeric(self):
319308 def test_cte (self ):
320309 self .assertEqual (self .db .execute ("WITH foo AS ( SELECT 1 AS bar ) SELECT bar FROM foo" ), [{"bar" : 1 }])
321310
311+ def test_none (self ):
312+ self .db .execute ("CREATE TABLE foo (val INTEGER)" )
313+ self .db .execute ("SELECT * FROM foo WHERE val = ?" , None )
322314
323315if __name__ == "__main__" :
324316 suite = unittest .TestSuite ([
0 commit comments