Move DatabaseVersion to newfol.database.

Also add unit tests for it.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
This commit is contained in:
brian m. carlson 2013-10-12 19:30:31 +00:00
parent ae4de78165
commit 0ad382de85
No known key found for this signature in database
GPG key ID: BF535D811F52F68B
3 changed files with 33 additions and 14 deletions

View file

@ -1,5 +1,18 @@
import newfol.filemanip
class DatabaseVersion(int):
@staticmethod
def preferred():
return DatabaseVersion(0x00000102)
def version_version(self):
return (int(self) & 0xff000000) >> 24
def serialization_version(self):
return (int(self) & 0xff00) >> 8
def serialization(self):
return ("csv", "pickle")[self.serialization_version()]
def record_version(self):
return int(self) & 0xff
class Singleton(type):
def __init__(cls, name, bases, d):
super(Singleton, cls).__init__(name, bases, d)

15
newfol
View file

@ -22,7 +22,7 @@ import newfol.exception
import newfol.filemanip as filemanip
import newfol.version
from newfol.database import DatabaseData
from newfol.database import DatabaseData, DatabaseVersion
__version__ = newfol.version.version()
@ -134,19 +134,6 @@ class Mapping:
mapping[fromval] = toval
return mapping
class DatabaseVersion(int):
@staticmethod
def preferred():
return DatabaseVersion(0x00000102)
def version_version(self):
return (int(self) & 0xff000000) >> 24
def serialization_version(self):
return (int(self) & 0xff00) >> 8
def serialization(self):
return ("csv", "pickle")[self.serialization_version()]
def record_version(self):
return int(self) & 0xff
class SelectableListBox(urwid.ListBox):
def __init__(self, body, obj=None):
super().__init__(body)

19
test/testdatabase.py Executable file
View file

@ -0,0 +1,19 @@
#!/usr/bin/python3
from newfol.database import DatabaseVersion
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)
if __name__ == '__main__':
unittest.main()