newfol/test/testdatabase.py
brian m. carlson 083f411d34
Add basic Database and Schema objects.
Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
2013-10-12 19:53:45 +00:00

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()