-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_delete.py
More file actions
32 lines (25 loc) · 1.12 KB
/
test_delete.py
File metadata and controls
32 lines (25 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
import unittest
from pysqlit.database import EnhancedDatabase
class TestDelete(unittest.TestCase):
def setUp(self):
self.db = EnhancedDatabase('test.db')
self.db.execute('CREATE TABLE animal (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)')
self.db.execute("INSERT INTO animal (name, age) VALUES ('Tom', 20)")
self.db.execute("INSERT INTO animal (name, age) VALUES ('Jerry', 20)")
self.db.execute("INSERT INTO animal (name, age) VALUES ('Spike', NULL)")
def tearDown(self):
os.remove('test.db')
def test_unconditional_delete(self):
result = self.db.execute('DELETE FROM animal')
self.assertEqual(result, 3)
rows = self.db.execute('SELECT * FROM animal')
self.assertEqual(len(rows), 0)
def test_conditional_delete(self):
result = self.db.execute("DELETE FROM animal WHERE age = 20")
self.assertEqual(result, 2)
rows = self.db.execute('SELECT * FROM animal')
self.assertEqual(len(rows), 1)
self.assertEqual(rows[0].name, 'Spike')
if __name__ == '__main__':
unittest.main()