@@ -101,6 +101,8 @@ def test_string_literal_with_colon(self):
101101
102102 def tearDown (self ):
103103 self .db .execute ("DROP TABLE cs50" )
104+ self .db .execute ("DROP TABLE IF EXISTS foo" )
105+ self .db .execute ("DROP TABLE IF EXISTS bar" )
104106
105107 @classmethod
106108 def tearDownClass (self ):
@@ -132,29 +134,27 @@ class SQLiteTests(SQLTests):
132134 def setUpClass (self ):
133135 open ("test.db" , "w" ).close ()
134136 self .db = SQL ("sqlite:///test.db" )
135- open ("test1.db" , "w" ).close ()
136- self .db1 = SQL ("sqlite:///test1.db" , foreign_keys = True )
137137
138138 def setUp (self ):
139- self .db .execute ("DROP TABLE IF EXISTS cs50" )
140139 self .db .execute ("CREATE TABLE cs50(id INTEGER PRIMARY KEY, val TEXT)" )
141140
141+ def test_lastrowid (self ):
142+ self .db .execute ("CREATE TABLE foo(id INTEGER PRIMARY KEY AUTOINCREMENT, firstname TEXT, lastname TEXT)" )
143+ self .assertEqual (self .db .execute ("INSERT INTO foo (firstname, lastname) VALUES('firstname', 'lastname')" ), 1 )
144+ self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo (id, firstname, lastname) VALUES(1, 'firstname', 'lastname')" )
145+ self .assertEqual (self .db .execute ("INSERT OR IGNORE INTO foo (id, firstname, lastname) VALUES(1, 'firstname', 'lastname')" ), None )
146+
147+ def test_integrity_constraints (self ):
148+ self .db .execute ("CREATE TABLE foo(id INTEGER PRIMARY KEY)" )
149+ self .assertEqual (self .db .execute ("INSERT INTO foo VALUES(1)" ), 1 )
150+ self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES(1)" )
151+
142152 def test_foreign_key_support (self ):
143- self .db .execute ("DROP TABLE IF EXISTS foo" )
144153 self .db .execute ("CREATE TABLE foo(id INTEGER PRIMARY KEY)" )
145- self .db .execute ("DROP TABLE IF EXISTS bar" )
146154 self .db .execute ("CREATE TABLE bar(foo_id INTEGER, FOREIGN KEY (foo_id) REFERENCES foo(id))" )
147- self .assertEqual (self .db .execute ("INSERT INTO bar VALUES(50)" ), 1 )
148-
149- self .db1 .execute ("DROP TABLE IF EXISTS foo" )
150- self .db1 .execute ("CREATE TABLE foo(id INTEGER PRIMARY KEY)" )
151- self .db1 .execute ("DROP TABLE IF EXISTS bar" )
152- self .db1 .execute ("CREATE TABLE bar(foo_id INTEGER, FOREIGN KEY (foo_id) REFERENCES foo(id))" )
153- self .assertEqual (self .db1 .execute ("INSERT INTO bar VALUES(50)" ), None )
154-
155+ self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO bar VALUES(50)" )
155156
156157 def test_qmark (self ):
157- self .db .execute ("DROP TABLE IF EXISTS foo" )
158158 self .db .execute ("CREATE TABLE foo (firstname STRING, lastname STRING)" )
159159
160160 self .db .execute ("INSERT INTO foo VALUES (?, 'bar')" , "baz" )
@@ -188,7 +188,6 @@ def test_qmark(self):
188188 self .assertEqual (self .db .execute ("SELECT * FROM foo" ), [{"firstname" : "bar" , "lastname" : "baz" }])
189189 self .db .execute ("DELETE FROM foo" )
190190
191- self .db .execute ("DROP TABLE IF EXISTS bar" )
192191 self .db .execute ("CREATE TABLE bar (firstname STRING)" )
193192 self .db .execute ("INSERT INTO bar VALUES (?)" , "baz" )
194193 self .assertEqual (self .db .execute ("SELECT * FROM bar" ), [{"firstname" : "baz" }])
@@ -203,7 +202,6 @@ def test_qmark(self):
203202 self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO foo VALUES (?, ?)" , 'bar' , baz = 'baz' )
204203
205204 def test_named (self ):
206- self .db .execute ("DROP TABLE IF EXISTS foo" )
207205 self .db .execute ("CREATE TABLE foo (firstname STRING, lastname STRING)" )
208206
209207 self .db .execute ("INSERT INTO foo VALUES (:baz, 'bar')" , baz = "baz" )
@@ -226,7 +224,6 @@ def test_named(self):
226224 self .assertEqual (self .db .execute ("SELECT * FROM foo" ), [{"firstname" : "bar" , "lastname" : "baz" }])
227225 self .db .execute ("DELETE FROM foo" )
228226
229- self .db .execute ("DROP TABLE IF EXISTS bar" )
230227 self .db .execute ("CREATE TABLE bar (firstname STRING)" )
231228 self .db .execute ("INSERT INTO bar VALUES (:baz)" , baz = "baz" )
232229 self .assertEqual (self .db .execute ("SELECT * FROM bar" ), [{"firstname" : "baz" }])
@@ -238,7 +235,6 @@ def test_named(self):
238235
239236
240237 def test_numeric (self ):
241- self .db .execute ("DROP TABLE IF EXISTS foo" )
242238 self .db .execute ("CREATE TABLE foo (firstname STRING, lastname STRING)" )
243239
244240 self .db .execute ("INSERT INTO foo VALUES (:1, 'bar')" , "baz" )
@@ -272,7 +268,6 @@ def test_numeric(self):
272268 self .assertEqual (self .db .execute ("SELECT * FROM foo" ), [{"firstname" : "bar" , "lastname" : "baz" }])
273269 self .db .execute ("DELETE FROM foo" )
274270
275- self .db .execute ("DROP TABLE IF EXISTS bar" )
276271 self .db .execute ("CREATE TABLE bar (firstname STRING)" )
277272 self .db .execute ("INSERT INTO bar VALUES (:1)" , "baz" )
278273 self .assertEqual (self .db .execute ("SELECT * FROM bar" ), [{"firstname" : "baz" }])
0 commit comments