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

@@ -197,6 +197,17 @@ class UUID(Column):
raise ValidationError("{} is not a valid uuid".format(value)) raise ValidationError("{} is not a valid uuid".format(value))
return _UUID(val) 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): class Boolean(Column):
db_type = 'boolean' db_type = 'boolean'

View File

@@ -4,7 +4,7 @@ from decimal import Decimal as D
from cqlengine.tests.base import BaseCassEngTestCase 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 Bytes
from cqlengine.columns import Ascii from cqlengine.columns import Ascii
from cqlengine.columns import Text from cqlengine.columns import Text
@@ -63,5 +63,36 @@ class TestDecimal(BaseCassEngTestCase):
dt2 = self.DecimalTest.objects(test_id=0).first() dt2 = self.DecimalTest.objects(test_id=0).first()
assert dt2.dec_val == D('5') 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