diff options
author | Zhongyue Luo <zhongyue.nah@intel.com> | 2013-04-10 10:31:03 +0800 |
---|---|---|
committer | Zhongyue Luo <zhongyue.nah@intel.com> | 2013-04-11 09:03:02 +0800 |
commit | fa84da27458847d90075c9f8d77333b532d7882a (patch) | |
tree | 436a9091d6726bb540fd23b36f58002522f0d2be | |
parent | 9dcf688ea80f52cdb5413514198b2aa81d5a4e09 (diff) | |
download | oslo-fa84da27458847d90075c9f8d77333b532d7882a.tar.gz oslo-fa84da27458847d90075c9f8d77333b532d7882a.tar.xz oslo-fa84da27458847d90075c9f8d77333b532d7882a.zip |
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
-rw-r--r-- | openstack/common/db/sqlalchemy/models.py | 7 | ||||
-rw-r--r-- | tests/unit/db/sqlalchemy/test_models.py | 22 |
2 files changed, 27 insertions, 2 deletions
diff --git a/openstack/common/db/sqlalchemy/models.py b/openstack/common/db/sqlalchemy/models.py index f674da2..e019eed 100644 --- a/openstack/common/db/sqlalchemy/models.py +++ b/openstack/common/db/sqlalchemy/models.py @@ -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) diff --git a/tests/unit/db/sqlalchemy/test_models.py b/tests/unit/db/sqlalchemy/test_models.py index cd1a664..04905a6 100644 --- a/tests/unit/db/sqlalchemy/test_models.py +++ b/tests/unit/db/sqlalchemy/test_models.py @@ -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)) |