Пример #1
0
 def test_package_name(self):
     """test base properties and method of a astroid module"""
     datap = resources.build_file('data/__init__.py', 'data')
     self.assertEqual(datap.name, 'data')
     self.assertEqual(datap.package, 1)
     datap = resources.build_file('data/__init__.py', 'data.__init__')
     self.assertEqual(datap.name, 'data')
     self.assertEqual(datap.package, 1)
Пример #2
0
 def test_package_name(self):
     """test base properties and method of a astroid module"""
     datap = resources.build_file('data/__init__.py', 'data')
     self.assertEqual(datap.name, 'data')
     self.assertEqual(datap.package, 1)
     datap = resources.build_file('data/__init__.py', 'data.__init__')
     self.assertEqual(datap.name, 'data')
     self.assertEqual(datap.package, 1)
Пример #3
0
 def test_package_name(self):
     """test base properties and method of an astroid module"""
     datap = resources.build_file("data/__init__.py", "data")
     self.assertEqual(datap.name, "data")
     self.assertEqual(datap.package, 1)
     datap = resources.build_file("data/__init__.py", "data.__init__")
     self.assertEqual(datap.name, "data")
     self.assertEqual(datap.package, 1)
     datap = resources.build_file("data/tmp__init__.py", "data.tmp__init__")
     self.assertEqual(datap.name, "data.tmp__init__")
     self.assertEqual(datap.package, 0)
Пример #4
0
 def test_absolute_import(self):
     astroid = resources.build_file('data/absimport.py')
     ctx = InferenceContext()
     # will fail if absolute import failed
     next(astroid['message'].infer(ctx, lookupname='message'))
     m = next(astroid['email'].infer(ctx, lookupname='email'))
     self.assertFalse(m.file.startswith(os.path.join('data', 'email.py')))
Пример #5
0
 def test_big_binop_crash(self):
     # Test that we don't fail on a lot of joined strings
     # through the addition operator.
     module = resources.build_file('data/joined_strings.py')
     element = next(module['x'].infer())
     self.assertIsInstance(element, astroid.Const)
     self.assertEqual(len(element.value), 61660)
Пример #6
0
 def test_big_binop_crash(self):
     # Test that we don't fail on a lot of joined strings
     # through the addition operator.
     module = resources.build_file('data/joined_strings.py')
     element = next(module['x'].infer())
     self.assertIsInstance(element, astroid.Const)
     self.assertEqual(len(element.value), 61660)
Пример #7
0
def test_get_children_order():
    class OrderVisitor:
        def __init__(self):
            for node_class in nodes.ALL_NODE_CLASSES:
                visit_name = 'visit_' + node_class.__name__.lower()
                self.__dict__[visit_name] = self.visit

            self.position = (0, 0)

        def visit(self, node):
            if (isinstance(node, node_classes.BinOp)
                    and (isinstance(node.left, node_classes.BinOp)
                         or isinstance(node.right, node_classes.BinOp))):
                # The outer BinOp in nested BinOps has incorrect col_offset
                # at the col_offset of the operator
                return

            if isinstance(node, node_classes.ExceptHandler):
                # Exception handler name node has incorrect col_offset of 0
                return

            # All other node classes have correct positions so check they
            # are yielded in position order
            for child in node.get_children():
                if child.lineno is not None:
                    position = (child.lineno, child.col_offset)
                    assert self.position <= position, child
                    self.position = position

                child.accept(self)

    ast = builder.parse('''
    def func(a: bool, b=1, *c: str, d: str, e=2, **kwargs: int):
        return b if a else e

    a = 1 + 2 + 3

    try:
      func()
    except Exception as e:
      pass
    ''')
    ast.accept(OrderVisitor())

    for module in ['data/module.py', 'data/module2.py']:
        resources.build_file(module).accept(OrderVisitor())
Пример #8
0
 def test_absolute_import(self):
     module = resources.build_file("data/absimport.py")
     ctx = contextmod.InferenceContext()
     # will fail if absolute import failed
     ctx.lookupname = "message"
     next(module["message"].infer(ctx))
     ctx.lookupname = "email"
     m = next(module["email"].infer(ctx))
     self.assertFalse(m.file.startswith(os.path.join("data", "email.py")))
Пример #9
0
 def test_absolute_import(self):
     module = resources.build_file('data/absimport.py')
     ctx = contextmod.InferenceContext()
     # will fail if absolute import failed
     ctx.lookupname = 'message'
     next(module['message'].infer(ctx))
     ctx.lookupname = 'email'
     m = next(module['email'].infer(ctx))
     self.assertFalse(m.file.startswith(os.path.join('data', 'email.py')))
 def test_absolute_import(self):
     astroid = resources.build_file("data/absimport.py")
     ctx = contextmod.InferenceContext()
     # will fail if absolute import failed
     ctx.lookupname = "message"
     next(astroid["message"].infer(ctx))
     ctx.lookupname = "email"
     m = next(astroid["email"].infer(ctx))
     self.assertFalse(m.file.startswith(os.path.join("data", "email.py")))
Пример #11
0
    def test_wildard_import_names(self):
        m = resources.build_file('data/all.py', 'all')
        self.assertEqual(m.wildcard_import_names(), ['Aaa', '_bla', 'name'])
        m = resources.build_file('data/notall.py', 'notall')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ['Aaa', 'func', 'name', 'other'])

        m = test_utils.build_module('''
            from missing import tzop
            trop = "test"
            __all__ = (trop, "test1", tzop, 42)
        ''')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ["test", "test1"])

        m = test_utils.build_module('''
            test = tzop = 42
            __all__ = ('test', ) + ('tzop', )
        ''')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ['test', 'tzop'])
Пример #12
0
    def test_wildard_import_names(self):
        m = resources.build_file('data/all.py', 'all')
        self.assertEqual(m.wildcard_import_names(), ['Aaa', '_bla', 'name'])
        m = resources.build_file('data/notall.py', 'notall')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ['Aaa', 'func', 'name', 'other'])

        m = test_utils.build_module('''
            from missing import tzop
            trop = "test"
            __all__ = (trop, "test1", tzop, 42)
        ''')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ["test", "test1"])

        m = test_utils.build_module('''
            test = tzop = 42
            __all__ = ('test', ) + ('tzop', )
        ''')
        res = sorted(m.wildcard_import_names())
        self.assertEqual(res, ['test', 'tzop'])
Пример #13
0
 def test_getattr(self):
     yo = self.module.getattr('YO')[0]
     self.assertIsInstance(yo, nodes.Class)
     self.assertEqual(yo.name, 'YO')
     red = next(self.module.igetattr('redirect'))
     self.assertIsInstance(red, nodes.Function)
     self.assertEqual(red.name, 'four_args')
     pb = next(self.module.igetattr('pb'))
     self.assertIsInstance(pb, nodes.Class)
     self.assertEqual(pb.name, 'ProgressBar')
     # resolve packageredirection
     mod = resources.build_file('data/appl/myConnection.py',
                                'data.appl.myConnection')
     ssl = next(mod.igetattr('SSL1'))
     cnx = next(ssl.igetattr('Connection'))
     self.assertEqual(cnx.__class__, nodes.Class)
     self.assertEqual(cnx.name, 'Connection')
     self.assertEqual(cnx.root().name, 'data.SSL1.Connection1')
     self.assertEqual(len(self.nonregr.getattr('enumerate')), 2)
     # raise ResolveError
     self.assertRaises(InferenceError, self.nonregr.igetattr, 'YOAA')
Пример #14
0
 def test_getattr(self):
     yo = self.module.getattr('YO')[0]
     self.assertIsInstance(yo, nodes.Class)
     self.assertEqual(yo.name, 'YO')
     red = next(self.module.igetattr('redirect'))
     self.assertIsInstance(red, nodes.Function)
     self.assertEqual(red.name, 'four_args')
     pb = next(self.module.igetattr('pb'))
     self.assertIsInstance(pb, nodes.Class)
     self.assertEqual(pb.name, 'ProgressBar')
     # resolve packageredirection
     mod = resources.build_file('data/appl/myConnection.py',
                                'data.appl.myConnection')
     ssl = next(mod.igetattr('SSL1'))
     cnx = next(ssl.igetattr('Connection'))
     self.assertEqual(cnx.__class__, nodes.Class)
     self.assertEqual(cnx.name, 'Connection')
     self.assertEqual(cnx.root().name, 'data.SSL1.Connection1')
     self.assertEqual(len(self.nonregr.getattr('enumerate')), 2)
     # raise ResolveError
     self.assertRaises(InferenceError, self.nonregr.igetattr, 'YOAA')
Пример #15
0
 def setUp(self):
     super(ImportNodeTest, self).setUp()
     self.module = resources.build_file("data/module.py", "data.module")
     self.module2 = resources.build_file("data/module2.py", "data.module2")
Пример #16
0
 def test_missing_newline(self):
     """check that a file with no trailing new line is parseable"""
     resources.build_file('data/noendingnewline.py')
Пример #17
0
 def test_missing_file(self):
     with self.assertRaises(exceptions.AstroidBuildingError):
         resources.build_file('data/inexistant.py')
Пример #18
0
 def test_more_absolute_import(self):
     module = resources.build_file('data/module1abs/__init__.py', 'data.module1abs')
     self.assertIn('sys', module.locals)
Пример #19
0
 def test_module2_as_string(self):
     """check as_string on a whole module prepared to be returned identically
     """
     module2 = resources.build_file('data/module2.py', 'data.module2')
     with open(resources.find('data/module2.py'), 'r') as fobj:
         self.assertMultiLineEqual(module2.as_string(), fobj.read())
Пример #20
0
 def setUp(self):
     super(ModuleLoader, self).setUp()
     self.module = resources.build_file('data/module.py', 'data.module')
     self.module2 = resources.build_file('data/module2.py', 'data.module2')
     self.nonregr = resources.build_file('data/nonregr.py', 'data.nonregr')
     self.pack = resources.build_file('data/__init__.py', 'data')
Пример #21
0
 def test_missing_file(self):
     with self.assertRaises(builder.AstroidBuildingException):
         resources.build_file('data/inexistant.py')
Пример #22
0
 def setUp(self):
     super(LookupTest, self).setUp()
     self.module = resources.build_file("data/module.py", "data.module")
     self.module2 = resources.build_file("data/module2.py", "data.module2")
     self.nonregr = resources.build_file("data/nonregr.py", "data.nonregr")
Пример #23
0
 def setUp(self):
     self.module = resources.build_file('data/module.py', 'data.module')
Пример #24
0
 def test_unknown_encoding(self):
     with self.assertRaises(exceptions.AstroidSyntaxError):
         resources.build_file('data/invalid_encoding.py')
Пример #25
0
 def setUp(self):
     self.astroid = resources.build_file('data/format.py')
 def test_more_absolute_import(self):
     astroid = resources.build_file("data/module1abs/__init__.py", "data.module1abs")
     self.assertIn("sys", astroid.locals)
 def test_module_as_string(self):
     """check as_string on a whole module prepared to be returned identically
     """
     module = resources.build_file("data/module.py", "data.module")
     with open(resources.find("data/module.py"), "r") as fobj:
         self.assertMultiLineEqual(module.as_string(), fobj.read())
 def setUp(self):
     super(ImportNodeTest, self).setUp()
     self.module = resources.build_file("data/module.py", "data.module")
     self.module2 = resources.build_file("data/module2.py", "data.module2")
Пример #29
0
 def setUp(self):
     self.module = resources.build_file('data/module.py', 'data.module')
Пример #30
0
 def test_missing_newline(self):
     """check that a file with no trailing new line is parseable"""
     resources.build_file("data/noendingnewline.py")
Пример #31
0
 def test_module_as_string(self):
     """check as_string on a whole module prepared to be returned identically
     """
     module = resources.build_file("data/module.py", "data.module")
     with open(resources.find("data/module.py"), "r") as fobj:
         self.assertMultiLineEqual(module.as_string(), fobj.read())
Пример #32
0
 def setUp(self):
     self.module = resources.build_file("data/module.py", "data.module")
 def setUp(self):
     super(LookupTest, self).setUp()
     self.module = resources.build_file('data/module.py', 'data.module')
     self.module2 = resources.build_file('data/module2.py', 'data.module2')
     self.nonregr = resources.build_file('data/nonregr.py', 'data.nonregr')
Пример #34
0
 def setUp(self):
     super(ModuleLoader, self).setUp()
     self.module = resources.build_file('data/module.py', 'data.module')
     self.module2 = resources.build_file('data/module2.py', 'data.module2')
     self.nonregr = resources.build_file('data/nonregr.py', 'data.nonregr')
     self.pack = resources.build_file('data/__init__.py', 'data')
Пример #35
0
 def setUp(self):
     super(LookupTest, self).setUp()
     self.module = resources.build_file("data/module.py", "data.module")
     self.module2 = resources.build_file("data/module2.py", "data.module2")
     self.nonregr = resources.build_file("data/nonregr.py", "data.nonregr")
Пример #36
0
 def test_more_absolute_import(self):
     module = resources.build_file("data/module1abs/__init__.py",
                                   "data.module1abs")
     self.assertIn("sys", module.locals)
Пример #37
0
 def test_missing_file(self):
     with self.assertRaises(exceptions.AstroidBuildingError):
         resources.build_file("data/inexistant.py")
Пример #38
0
 def setUp(self):
     super(LookupTest, self).setUp()
     self.module = resources.build_file('data/module.py', 'data.module')
     self.module2 = resources.build_file('data/module2.py', 'data.module2')
     self.nonregr = resources.build_file('data/nonregr.py', 'data.nonregr')
Пример #39
0
 def setUp(self):
     self.astroid = resources.build_file("data/format.py")
 def setUp(self):
     self.module = resources.build_file("data/module.py", "data.module")
Пример #41
0
 def test_unknown_encoding(self):
     with self.assertRaises(exceptions.AstroidSyntaxError):
         resources.build_file("data/invalid_encoding.py")
Пример #42
0
 def setUp(self):
     super(ImportNodeTest, self).setUp()
     self.module = resources.build_file('data/module.py', 'data.module')
     self.module2 = resources.build_file('data/module2.py', 'data.module2')