From 21349b23dcfd0857785aa53007cc6636259d2395 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sun, 3 Jul 2016 22:23:45 +0900 Subject: Add `default` parameter for `index_property` And force to use keyword arguments for trivial parameters in index_property Change-Id: I12a178128182f77a2d06b52d7e36f59a36b45a33 --- test/ext/test_indexable.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'test') diff --git a/test/ext/test_indexable.py b/test/ext/test_indexable.py index 56f2e1786..b9e942e4b 100644 --- a/test/ext/test_indexable.py +++ b/test/ext/test_indexable.py @@ -138,6 +138,31 @@ class IndexPropertyTest(fixtures.TestBase): j.field = 10 eq_(j.field, 10) + def test_get_default_value(self): + Base = declarative_base() + + class J(Base): + __tablename__ = 'j' + id = Column(Integer, primary_key=True) + json = Column(JSON, default={}) + default = index_property('json', 'field', default='default') + none = index_property('json', 'field', default=None) + + j = J() + assert j.json is None + + assert j.default == 'default' + assert j.none is None + j.json = {} + assert j.default == 'default' + assert j.none is None + j.default = None + assert j.default is None + assert j.none is None + j.none = 10 + assert j.default is 10 + assert j.none == 10 + class IndexPropertyArrayTest(fixtures.DeclarativeMappedTest): -- cgit v1.2.1