From c7d04beeac6ad54d638afb01783dee2d769aef9d Mon Sep 17 00:00:00 2001 From: "Martin J. Hsu" Date: Fri, 25 Sep 2015 16:15:28 +0800 Subject: - wrap ColumnDefault empty arg callables like functools.wraps, setting __name__, __doc__, and __module__ --- test/sql/test_defaults.py | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) (limited to 'test/sql') diff --git a/test/sql/test_defaults.py b/test/sql/test_defaults.py index 673085cf7..e2250e834 100644 --- a/test/sql/test_defaults.py +++ b/test/sql/test_defaults.py @@ -301,6 +301,67 @@ class DefaultTest(fixtures.TestBase): c = sa.ColumnDefault(fn) c.arg("context") + def test_wrapping_update_wrapper_fn(self): + def my_fancy_default(): + """run the fancy default""" + return 10 + + c = sa.ColumnDefault(my_fancy_default) + eq_(c.arg.__name__, "my_fancy_default") + eq_(c.arg.__doc__, "run the fancy default") + + def test_wrapping_update_wrapper_fn_nodocstring(self): + def my_fancy_default(): + return 10 + + c = sa.ColumnDefault(my_fancy_default) + eq_(c.arg.__name__, "my_fancy_default") + eq_(c.arg.__doc__, "my_fancy_default") + + def test_wrapping_update_wrapper_cls(self): + class MyFancyDefault(object): + """a fancy default""" + + def __call__(self): + """run the fancy default""" + return 10 + + c = sa.ColumnDefault(MyFancyDefault()) + eq_(c.arg.__name__, "MyFancyDefault") + eq_(c.arg.__doc__, "run the fancy default") + + def test_wrapping_update_wrapper_cls_noclassdocstring(self): + class MyFancyDefault(object): + + def __call__(self): + """run the fancy default""" + return 10 + + c = sa.ColumnDefault(MyFancyDefault()) + eq_(c.arg.__name__, "MyFancyDefault") + eq_(c.arg.__doc__, "run the fancy default") + + def test_wrapping_update_wrapper_cls_nomethoddocstring(self): + class MyFancyDefault(object): + """a fancy default""" + + def __call__(self): + return 10 + + c = sa.ColumnDefault(MyFancyDefault()) + eq_(c.arg.__name__, "MyFancyDefault") + eq_(c.arg.__doc__, "a fancy default") + + def test_wrapping_update_wrapper_cls_noclassdocstring_nomethoddocstring(self): + class MyFancyDefault(object): + + def __call__(self): + return 10 + + c = sa.ColumnDefault(MyFancyDefault()) + eq_(c.arg.__name__, "MyFancyDefault") + eq_(c.arg.__doc__, "MyFancyDefault") + @testing.fails_on('firebird', 'Data type unknown') def test_standalone(self): c = testing.db.engine.contextual_connect() -- cgit v1.2.1