-
Notifications
You must be signed in to change notification settings - Fork 0
/
sheila2_test.py
47 lines (38 loc) · 1.31 KB
/
sheila2_test.py
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import unittest
import os
from sheila2 import Sheila
class BasicTestCase(unittest.TestCase):
def setUp(self):
self.sheila = Sheila("testdb", "test.cst")
def tearDown(self):
try:
os.remove("test.cst")
except OSError:
pass
self.sheila.destroy()
class TestBasicInsertion(BasicTestCase):
def testTableEntryExpansion(self):
sheila = self.sheila
sheila.insert({"a": 1, "b": 2})
self.assertEqual(len(sheila.cst.tables()), 1)
sheila.insert({"a": 12})
self.assertEqual(len(sheila.cst.tables()), 1)
sheila.insert({"a": 1, "b": 2, "c": 3})
self.assertEqual(len(sheila.cst.tables()), 1)
def testTableExpansion(self):
sheila = self.sheila
sheila.insert({"a": 1, "b": 2})
self.assertEqual(len(sheila.cst.tables()), 1)
sheila.insert({"c": 12})
self.assertEqual(len(sheila.cst.tables()), 2)
sheila.insert({"b": 2, "c": 3})
self.assertEqual(len(sheila.cst.tables()), 2)
class TestBasicQuery(BasicTestCase):
def testGetData(self):
sheila = self.sheila
test_data = {"a": 1, "b": 2}
sheila.insert(test_data)
query_data = sheila.query({"a": 1})
self.assertIn(test_data, query_data)
if __name__ == '__main__':
unittest.main()