diff options
author | raylu <lurayl@gmail.com> | 2015-05-12 18:35:52 -0700 |
---|---|---|
committer | raylu <lurayl@gmail.com> | 2015-05-12 18:35:52 -0700 |
commit | c755db9a8931fcf98d0bc3feb067e8770a866cbe (patch) | |
tree | 2b66fd11b19e31608211c515be20d6691afbb861 | |
parent | c8cf9abf3254915a65c352981a604bcfb3005d49 (diff) | |
download | astroid-pylint-480.tar.gz |
Add brain module for dateutil.parser.parsepylint-480
-rw-r--r-- | astroid/brain/pydateutil.py | 15 | ||||
-rw-r--r-- | astroid/tests/unittest_brain.py | 18 |
2 files changed, 33 insertions, 0 deletions
diff --git a/astroid/brain/pydateutil.py b/astroid/brain/pydateutil.py new file mode 100644 index 0000000..0b45412 --- /dev/null +++ b/astroid/brain/pydateutil.py @@ -0,0 +1,15 @@ +"""Astroid hooks for dateutil"""
+
+import textwrap
+
+from astroid import MANAGER, register_module_extender
+from astroid.builder import AstroidBuilder
+
+def dateutil_transform():
+ return AstroidBuilder(MANAGER).string_build(textwrap.dedent('''
+ import datetime
+ def parse(timestr, parserinfo=None, **kwargs):
+ return datetime.datetime()
+ '''))
+
+register_module_extender(MANAGER, 'dateutil.parser', dateutil_transform)
diff --git a/astroid/tests/unittest_brain.py b/astroid/tests/unittest_brain.py index b0e0608..3eae3f9 100644 --- a/astroid/tests/unittest_brain.py +++ b/astroid/tests/unittest_brain.py @@ -47,6 +47,12 @@ try: except ImportError: HAS_ENUM = False +try: + import dateutil # pylint: disable=unused-import + HAS_DATEUTIL = True +except ImportError: + HAS_DATEUTIL = False + class HashlibTest(unittest.TestCase): def test_hashlib(self): """Tests that brain extensions for hashlib work.""" @@ -285,5 +291,17 @@ class EnumBrainTest(unittest.TestCase): self.assertTrue(clazz.is_subtype_of(int_type), 'IntEnum based enums should be a subtype of int') + +@unittest.skipUnless(HAS_DATEUTIL, "This test requires the dateutil library.") +class DateutilBrainTest(unittest.TestCase): + def test_parser(self): + module = AstroidBuilder().string_build(dedent(""" + from dateutil.parser import parse + d = parse('2000-01-01') + """)) + d_type = next(module['d'].infer()) + self.assertEqual(d_type.qname(), "datetime.datetime") + + if __name__ == '__main__': unittest.main() |