1
- from cs50 . sql import SQL
1
+ import logging
2
2
import sys
3
3
import unittest
4
4
import warnings
5
5
6
+ from cs50 .sql import SQL
7
+
6
8
class 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')" )
9
12
10
13
def test_delete_returns_affected_rows (self ):
11
14
rows = [
@@ -15,20 +18,13 @@ def test_delete_returns_affected_rows(self):
15
18
]
16
19
for row in rows :
17
20
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
-
23
21
self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = :id" , id = rows [0 ]["id" ]), 1 )
24
22
self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = :a or id = :b" , a = rows [1 ]["id" ], b = rows [2 ]["id" ]), 2 )
25
23
self .assertEqual (self .db .execute ("DELETE FROM cs50 WHERE id = -50" ), 0 )
26
24
27
25
def test_insert_returns_last_row_id (self ):
28
26
self .assertEqual (self .db .execute ("INSERT INTO cs50(val) VALUES('foo')" ), 1 )
29
27
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 )
32
28
33
29
def test_select_all (self ):
34
30
self .assertEqual (self .db .execute ("SELECT * FROM cs50" ), [])
@@ -122,5 +118,5 @@ def multi_inserts_enabled(self):
122
118
unittest .TestLoader ().loadTestsFromTestCase (MySQLTests ),
123
119
unittest .TestLoader ().loadTestsFromTestCase (PostgresTests )
124
120
])
125
-
121
+ logging . getLogger ( "cs50.sql" ). disabled = True
126
122
sys .exit (not unittest .TextTestRunner (verbosity = 2 ).run (suite ).wasSuccessful ())
0 commit comments