Removes created_at, updated_at from ModelBase
Created a 'TimestampMixin' class. Next step is to update Nova which is the only project using oslo.db Fixes bug #1119702 Change-Id: I1ffcc09a2971e6e6102da7ecb855a2837a159baf
This commit is contained in:
@@ -33,8 +33,6 @@ from openstack.common import timeutils
|
||||
class ModelBase(object):
|
||||
"""Base class for models."""
|
||||
__table_initialized__ = False
|
||||
created_at = Column(DateTime, default=timeutils.utcnow)
|
||||
updated_at = Column(DateTime, onupdate=timeutils.utcnow)
|
||||
metadata = None
|
||||
|
||||
def save(self, session=None):
|
||||
@@ -92,6 +90,11 @@ class ModelBase(object):
|
||||
return local.iteritems()
|
||||
|
||||
|
||||
class TimestampMixin(object):
|
||||
created_at = Column(DateTime, default=timeutils.utcnow)
|
||||
updated_at = Column(DateTime, onupdate=timeutils.utcnow)
|
||||
|
||||
|
||||
class SoftDeleteMixin(object):
|
||||
deleted_at = Column(DateTime)
|
||||
deleted = Column(Integer, default=0)
|
||||
|
||||
@@ -28,6 +28,7 @@ class ModelBaseTest(test_utils.BaseTestCase):
|
||||
'get',
|
||||
'next',
|
||||
'update',
|
||||
'save',
|
||||
'iteritems')
|
||||
for method in dict_methods:
|
||||
self.assertTrue(hasattr(models.ModelBase, method))
|
||||
@@ -70,3 +71,24 @@ class ModelBaseTest(test_utils.BaseTestCase):
|
||||
found_items += 1
|
||||
|
||||
self.assertEqual(min_items, found_items)
|
||||
|
||||
|
||||
class TimestampMixinTest(test_utils.BaseTestCase):
|
||||
|
||||
def test_timestampmixin_attr(self):
|
||||
|
||||
class TestModel(models.ModelBase, models.TimestampMixin):
|
||||
pass
|
||||
|
||||
dict_methods = ('__getitem__',
|
||||
'__setitem__',
|
||||
'__iter__',
|
||||
'get',
|
||||
'next',
|
||||
'update',
|
||||
'save',
|
||||
'iteritems',
|
||||
'created_at',
|
||||
'updated_at')
|
||||
for method in dict_methods:
|
||||
self.assertTrue(hasattr(TestModel, method))
|
||||
|
||||
Reference in New Issue
Block a user