def test_add_existing_import_normal_import_aliased(self):
   tree = ast.parse('import a.b.c as d')
   self.assertEqual('a.b',
                    import_utils.add_import(tree, 'a.b', from_import=False))
   self.assertEqual('d',
                    import_utils.add_import(tree, 'a.b.c', from_import=False))
   self.assertEqual('import a.b\nimport a.b.c as d\n', pasta.dump(tree))
  def test_merge_from_import(self):
    tree = ast.parse('from a.b import c')

    # x is explicitly not merged
    self.assertEqual('x', import_utils.add_import(tree, 'a.b.x',
                                                  merge_from_imports=False))
    self.assertEqual('from a.b import x\nfrom a.b import c\n',
                     pasta.dump(tree))

    # y is allowed to be merged and is grouped into the first matching import
    self.assertEqual('y', import_utils.add_import(tree, 'a.b.y',
                                                  merge_from_imports=True))
    self.assertEqual('from a.b import x, y\nfrom a.b import c\n',
                     pasta.dump(tree))
 def test_add_single_name_from_import_with_asname(self):
   tree = ast.parse('')
   self.assertEqual(
     'bar',
     import_utils.add_import(tree, 'foo', asname='bar', from_import=True)
   )
   self.assertEqual('import foo as bar\n', pasta.dump(tree))
 def test_add_from_import_with_asname(self):
   tree = ast.parse('')
   self.assertEqual(
     'd',
     import_utils.add_import(tree, 'a.b.c', asname='d', from_import=True)
   )
   self.assertEqual('from a.b import c as d\n', pasta.dump(tree))
 def test_add_normal_import_with_asname(self):
   tree = ast.parse('')
   self.assertEqual(
     'd',
     import_utils.add_import(tree, 'a.b.c', asname='d', from_import=False)
   )
   self.assertEqual('import a.b.c as d\n', pasta.dump(tree))
Example #6
0
 def test_add_import_with_asname_with_conflict(self):
     tree = ast.parse('def c(): pass\n')
     self.assertEqual(
         'c_1',
         import_utils.add_import(tree, 'a.b', asname='c', from_import=True))
     self.assertEqual('from a import b as c_1\ndef c():\n  pass\n',
                      pasta.dump(tree))
Example #7
0
 def test_add_existing_import_normal_import(self):
     tree = pasta.ast_parse('import a.b.c', py_ver)
     self.assertEqual(
         'a.b',
         import_utils.add_import(tree, 'a.b', py_ver,
                                 from_import=False))
     self.assertEqual('import a.b.c\n', pasta.dump(tree, py_ver))
Example #8
0
 def test_add_existing_import_aliased_with_asname(self):
     tree = pasta.ast_parse('from a.b import c as d', py_ver)
     self.assertEqual(
         'd', import_utils.add_import(tree, 'a.b.c', py_ver,
                                      asname='e'))
     self.assertEqual('from a.b import c as d\n',
                      pasta.dump(tree, py_ver))
Example #9
0
 def test_add_existing_import(self):
   tree = ast.Module(body=[
       ast.ImportFrom(level=0, module='a.b',
                      names=[ast.alias(name='c', asname=None)])
   ])
   self.assertIsNone(import_utils.add_import(tree, 'a.b.c'))
   self.assertEqual('from a.b import c\n', pasta.dump(tree))
Example #10
0
  def test_merge_from_import(self):
    tree = ast.Module(body=[
        ast.ImportFrom(level=0, module='a.b',
                       names=[ast.alias(name='c', asname=None)]),
    ])

    # x is explicitly not merged
    self.assertEqual('x', import_utils.add_import(tree, 'a.b.x',
                                                  merge_from_imports=False))
    self.assertEqual('from a.b import x\nfrom a.b import c\n',
                     pasta.dump(tree))

    # y is allowed to be merged and is grouped into the first matching import
    self.assertEqual('y', import_utils.add_import(tree, 'a.b.y',
                                                  merge_from_imports=True))
    self.assertEqual('from a.b import x, y\nfrom a.b import c\n',
                     pasta.dump(tree))
Example #11
0
 def test_add_from_import(self):
     tree = pasta.ast_parse('', py_ver)
     self.assertEqual(
         'c',
         import_utils.add_import(tree,
                                 'a.b.c',
                                 py_ver,
                                 from_import=True))
     self.assertEqual('from a.b import c\n', pasta.dump(tree, py_ver))
Example #12
0
 def test_add_import_with_conflict(self):
     tree = pasta.ast_parse('def c(): pass\n', py_ver)
     self.assertEqual(
         'c_1',
         import_utils.add_import(tree,
                                 'a.b.c',
                                 py_ver,
                                 from_import=True))
     self.assertEqual('from a.b import c as c_1\ndef c():\n  pass\n',
                      pasta.dump(tree, py_ver))
 def test_add_existing_import_aliased(self):
   tree = ast.parse('from a.b import c as d')
   self.assertEqual('d', import_utils.add_import(tree, 'a.b.c'))
   self.assertEqual('from a.b import c as d\n', pasta.dump(tree))
 def test_add_single_name_from_import(self):
   tree = ast.parse('')
   self.assertEqual('foo',
                    import_utils.add_import(tree, 'foo', from_import=True))
   self.assertEqual('import foo\n', pasta.dump(tree))
Example #15
0
 def test_add_import_after_docstring(self):
     tree = ast.Module(body=[ast.Expr(value=ast.Str(s='Docstring.'))])
     self.assertEqual('a', import_utils.add_import(tree, 'a'))
     self.assertEqual('\'Docstring.\'\nimport a\n', pasta.dump(tree))
Example #16
0
 def test_add_from_import(self):
     tree = ast.Module(body=[])
     self.assertEqual(
         'c', import_utils.add_import(tree, 'a.b.c', from_import=True))
     self.assertEqual('from a.b import c\n', pasta.dump(tree))
 def test_add_import_after_docstring(self):
   tree = ast.parse('\'Docstring.\'')
   self.assertEqual('a', import_utils.add_import(tree, 'a'))
   self.assertEqual('\'Docstring.\'\nimport a\n', pasta.dump(tree))
 def test_add_normal_import(self):
   tree = ast.parse('')
   self.assertEqual('a.b.c',
                    import_utils.add_import(tree, 'a.b.c', from_import=False))
   self.assertEqual('import a.b.c\n', pasta.dump(tree))