9
9
10
10
11
11
class SQLTests (unittest .TestCase ):
12
-
13
12
def test_multiple_statements (self ):
14
13
self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO cs50(val) VALUES('baz'); INSERT INTO cs50(val) VALUES('qux')" )
15
14
@@ -133,20 +132,10 @@ def test_identifier_case(self):
133
132
self .assertIn ("count" , self .db .execute ("SELECT 1 AS count" )[0 ])
134
133
135
134
def tearDown (self ):
136
- self .db .execute ("DROP TABLE cs50" )
135
+ self .db .execute ("DROP TABLE IF EXISTS cs50" )
137
136
self .db .execute ("DROP TABLE IF EXISTS foo" )
138
137
self .db .execute ("DROP TABLE IF EXISTS bar" )
139
138
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
-
150
139
class MySQLTests (SQLTests ):
151
140
@classmethod
152
141
def setUpClass (self ):
@@ -156,7 +145,6 @@ def setUp(self):
156
145
self .db .execute ("CREATE TABLE IF NOT EXISTS cs50 (id INTEGER NOT NULL AUTO_INCREMENT, val VARCHAR(16), bin BLOB, PRIMARY KEY (id))" )
157
146
self .db .execute ("DELETE FROM cs50" )
158
147
159
-
160
148
class PostgresTests (SQLTests ):
161
149
@classmethod
162
150
def setUpClass (self ):
@@ -169,9 +157,11 @@ def setUp(self):
169
157
def test_cte (self ):
170
158
self .assertEqual (self .db .execute ("WITH foo AS ( SELECT 1 AS bar ) SELECT bar FROM foo" ), [{"bar" : 1 }])
171
159
160
+ def test_postgres_scheme (self ):
161
+ db = SQL (
"postgres://postgres:[email protected] /test" )
162
+ db .execute ("SELECT 1" )
172
163
173
164
class SQLiteTests (SQLTests ):
174
-
175
165
@classmethod
176
166
def setUpClass (self ):
177
167
open ("test.db" , "w" ).close ()
@@ -283,7 +273,6 @@ def test_named(self):
283
273
self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES (:bar, :baz)" , bar = 'bar' , baz = 'baz' , qux = 'qux' )
284
274
self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES (:bar, :baz)" , 'baz' , bar = 'bar' )
285
275
286
-
287
276
def test_numeric (self ):
288
277
self .db .execute ("CREATE TABLE foo (firstname STRING, lastname STRING)" )
289
278
@@ -319,6 +308,9 @@ def test_numeric(self):
319
308
def test_cte (self ):
320
309
self .assertEqual (self .db .execute ("WITH foo AS ( SELECT 1 AS bar ) SELECT bar FROM foo" ), [{"bar" : 1 }])
321
310
311
+ def test_none (self ):
312
+ self .db .execute ("CREATE TABLE foo (val INTEGER)" )
313
+ self .db .execute ("SELECT * FROM foo WHERE val = ?" , None )
322
314
323
315
if __name__ == "__main__" :
324
316
suite = unittest .TestSuite ([
0 commit comments