1- from cs50 . sql import SQL
1+ import logging
22import sys
33import unittest
44import warnings
55
6+ from cs50 .sql import SQL
7+
68class SQLTests (unittest .TestCase ):
7- def multi_inserts_enabled (self ):
8- return True
9+
10+ def test_multiple_statements (self ):
11+ self .assertRaises (RuntimeError , self .db .execute , "INSERT INTO cs50(val) VALUES('baz'); INSERT INTO cs50(val) VALUES('qux')" )
912
1013 def test_delete_returns_affected_rows (self ):
1114 rows = [
@@ -15,20 +18,13 @@ def test_delete_returns_affected_rows(self):
1518 ]
1619 for row in rows :
1720 self .db .execute ("INSERT INTO cs50(val) VALUES(:val);" , val = row ["val" ])
18-
19- print (self .db .execute ("DELETE FROM cs50 WHERE id = :id" , id = rows [0 ]["id" ]))
20- print (self .db .execute ("SELECT * FROM cs50" ))
21- return
22-
2321 self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = :id" , id = rows [0 ]["id" ]), 1 )
2422 self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = :a or id = :b" , a = rows [1 ]["id" ], b = rows [2 ]["id" ]), 2 )
2523 self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = -50" ), 0 )
2624
2725 def test_insert_returns_last_row_id (self ):
2826 self .assertEqual (self .db .execute ("INSERT INTO cs50(val) VALUES('foo')" ), 1 )
2927 self .assertEqual (self .db .execute ("INSERT INTO cs50(val) VALUES('bar')" ), 2 )
30- if self .multi_inserts_enabled ():
31- self .assertEqual (self .db .execute ("INSERT INTO cs50(val) VALUES('baz'); INSERT INTO cs50(val) VALUES('qux')" ), 4 )
3228
3329 def test_select_all (self ):
3430 self .assertEqual (self .db .execute ("SELECT * FROM cs50" ), [])
@@ -122,5 +118,5 @@ def multi_inserts_enabled(self):
122118 unittest .TestLoader ().loadTestsFromTestCase (MySQLTests ),
123119 unittest .TestLoader ().loadTestsFromTestCase (PostgresTests )
124120 ])
125-
121+ logging . getLogger ( "cs50.sql" ). disabled = True
126122 sys .exit (not unittest .TextTestRunner (verbosity = 2 ).run (suite ).wasSuccessful ())
0 commit comments