45 lines
1.9 KiB
Python
Executable file
45 lines
1.9 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
from newfol.database import DatabaseVersion, Database, Schema
|
|
from newfol.filemanip import Record
|
|
import unittest
|
|
|
|
class TestDatabaseVersion(unittest.TestCase):
|
|
def test_default_serialization(self):
|
|
self.assertEqual(DatabaseVersion().serialization(), "csv")
|
|
def test_preferred_serialization(self):
|
|
self.assertEqual(DatabaseVersion.preferred().serialization(), "pickle")
|
|
def test_preferred_serialization_version(self):
|
|
self.assertEqual(DatabaseVersion.preferred().serialization_version(), 1)
|
|
def test_preferred_record_version(self):
|
|
self.assertEqual(DatabaseVersion.preferred().record_version(), 2)
|
|
def test_preferred_version_version(self):
|
|
self.assertEqual(DatabaseVersion.preferred().version_version(), 0)
|
|
|
|
class TestDatabaseAccessors(unittest.TestCase):
|
|
def test_location(self):
|
|
for location in ("/tmp/foo", "/bar", "/home/quux/.newfol"):
|
|
obj = Database(location, 2, Schema(), [])
|
|
self.assertEqual(obj.location(), location)
|
|
def test_records(self):
|
|
obj = Database("/tmp/foo", 2, Schema(), [Record([1, 2, 3])])
|
|
records = obj.records()
|
|
self.assertEqual(len(records), 1)
|
|
self.assertEqual(len(records[0].fields), 3)
|
|
def test_version(self):
|
|
obj = Database("/tmp/foo", DatabaseVersion(), Schema(), [])
|
|
self.assertEqual(obj.version(), 0)
|
|
|
|
obj = Database("/tmp/foo", DatabaseVersion.preferred(), Schema(), [])
|
|
self.assertEqual(obj.version(), DatabaseVersion.preferred())
|
|
def test_serialization(self):
|
|
obj = Database("/tmp/foo", DatabaseVersion(), Schema(), [])
|
|
self.assertEqual(obj.serialization(),
|
|
DatabaseVersion(0).serialization())
|
|
|
|
obj = Database("/tmp/foo", DatabaseVersion.preferred(), Schema(), [])
|
|
self.assertEqual(obj.serialization(),
|
|
DatabaseVersion.preferred().serialization())
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|