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 From e31211c578854d63128a30c036e40eee5c43edc7 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 29 Oct 2015 14:25:58 -0400 Subject: - convert wrap_callable() to a general purpose update_wrapper-like function; the caller still passes in the "wrapper" - move tests for wrap_callable() to be generic util tests - changelog for pullreq github:204 --- test/sql/test_defaults.py | 60 ----------------------------------------------- 1 file changed, 60 deletions(-) (limited to 'test/sql') diff --git a/test/sql/test_defaults.py b/test/sql/test_defaults.py index e2250e834..88679e208 100644 --- a/test/sql/test_defaults.py +++ b/test/sql/test_defaults.py @@ -301,66 +301,6 @@ 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): -- cgit v1.2.1