added timeuuid column

This commit is contained in:
Blake Eggleston
2012-12-05 11:16:01 -08:00
parent 1935bd1a0b
commit 57359a87ad
2 changed files with 43 additions and 1 deletions

View File

@@ -196,6 +196,17 @@ class UUID(Column):
if not self.re_uuid.match(val):
raise ValidationError("{} is not a valid uuid".format(value))
return _UUID(val)
class TimeUUID(UUID):
"""
UUID containing timestamp
"""
db_type = 'timeuuid'
def __init__(self, **kwargs):
kwargs.setdefault('default', lambda: uuid1())
super(TimeUUID, self).__init__(**kwargs)
class Boolean(Column):
db_type = 'boolean'

View File

@@ -4,7 +4,7 @@ from decimal import Decimal as D
from cqlengine.tests.base import BaseCassEngTestCase
from cqlengine.columns import Column
from cqlengine.columns import Column, TimeUUID
from cqlengine.columns import Bytes
from cqlengine.columns import Ascii
from cqlengine.columns import Text
@@ -63,5 +63,36 @@ class TestDecimal(BaseCassEngTestCase):
dt2 = self.DecimalTest.objects(test_id=0).first()
assert dt2.dec_val == D('5')
class TestTimeUUID(BaseCassEngTestCase):
class TimeUUIDTest(Model):
test_id = Integer(primary_key=True)
timeuuid = TimeUUID()
@classmethod
def setUpClass(cls):
super(TestTimeUUID, cls).setUpClass()
create_table(cls.TimeUUIDTest)
@classmethod
def tearDownClass(cls):
super(TestTimeUUID, cls).tearDownClass()
delete_table(cls.TimeUUIDTest)
def test_timeuuid_io(self):
t0 = self.TimeUUIDTest.create(test_id=0)
t1 = self.TimeUUIDTest.get(test_id=0)
assert t1.timeuuid.time == t1.timeuuid.time