def test_multi_aliased_from_import_block(self):
     sut = PythonDeclaration(
         "from biicode.common.edition import Parser as pepe, Counter as cont"
     )
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals([("Parser", "pepe"), ("Counter", "cont")],
                       sut.python_import().names)
 def test_normalize_import_with_alias(self):
     sut = PythonDeclaration("import myblock as block")
     result = sut.normalize(
         ['testuser/block/__init__.py', 'testuser/block/myblock.py'])
     self.assertEquals(
         PythonDeclaration("import testuser.block.myblock as block"),
         result)
 def test_complex_normalize_with_alias(self):
     sut = PythonDeclaration("from myblock import Parser as Hell")
     result = sut.normalize(
         ['testuser/block/__init__.py', 'testuser/block/myblock.py'])
     self.assertEquals(
         PythonDeclaration(
             "from testuser.block.myblock import Parser as Hell"), result)
 def test_init_match(self):
     sut = PythonDeclaration("import biicode.common.edition")
     block_cell_names = set([
         BlockCellName("biicode/common/__init__.py"),
         BlockCellName("biicode/common/edition.py")
     ])
     self.assertEquals(block_cell_names, sut.match(block_cell_names))
 def test_multi_init_match(self):
     sut = PythonDeclaration("import biicode.common.edition")
     block_cell_names = set([BlockCellName("biicode/common/__init__.py"),
                             BlockCellName("biicode/common/test/__init__.py"),
                             BlockCellName("biicode/common/edition.py")])
     expected = set([BlockCellName("biicode/common/__init__.py"),
                     BlockCellName("biicode/common/edition.py")])
     self.assertEquals(expected, sut.match(block_cell_names))
    def test_simple_match_relative(self):
        sut = PythonDeclaration("from edition import *")

        block_cell_names = set([BlockCellName("biicode/common/edition.py"),
                                BlockCellName("biicode/common/jarl.py")])

        from_block_cell_name = BlockCellName("biicode/common/main.py")
        self.assertEquals(set([BlockCellName("biicode/common/edition.py")]),
                          sut.match(block_cell_names, from_block_cell_name))
Example #7
0
    def test_declarations(self):
        d1 = CPPDeclaration('path/to/file.h')
        s = d1.serialize()
        d2 = CPPDeclaration.deserialize(s)
        self.assertEqual(d1, d2)

        d1 = PythonDeclaration("import sys")
        s = d1.serialize()
        d2 = PythonDeclaration.deserialize(s)
        self.assertEqual(d1, d2)
    def test_simple_match_relative_in_different_block(self):
        sut = PythonDeclaration("from edition import *")

        block_cell_names = set([
            BlockCellName("biicode/parsing/edition.py"),
            BlockCellName("biicode/parsing/jarl.py")
        ])

        from_block_cell_name = BlockCellName("biicode/common/main.py")
        self.assertEquals(set(),
                          sut.match(block_cell_names, from_block_cell_name))
    def test_multi_init_levels_match_relative_import(self):
        sut = PythonDeclaration("import name")

        block_cell_names = set([BlockCellName("biicode/common/__init__.py"),
                                BlockCellName("biicode/common/test/__init__.py"),
                                BlockCellName("biicode/common/test/name.py"),
                                BlockCellName("biicode/common/edition.py")])

        expected = set([BlockCellName("biicode/common/__init__.py"),
                        BlockCellName("biicode/common/test/__init__.py"),
                        BlockCellName("biicode/common/test/name.py")])

        self.assertEquals(expected, sut.match(block_cell_names,
                                              BlockCellName("biicode/common/test/name.py")))
    def test_multi_init_levels_match(self):
        sut = PythonDeclaration("import biicode.common.test.name")
        block_cell_names = set([
            BlockCellName("biicode/common/__init__.py"),
            BlockCellName("biicode/common/test/__init__.py"),
            BlockCellName("biicode/common/test/name.py"),
            BlockCellName("biicode/common/edition.py")
        ])

        expected = set([
            BlockCellName("biicode/common/__init__.py"),
            BlockCellName("biicode/common/test/__init__.py"),
            BlockCellName("biicode/common/test/name.py")
        ])
        self.assertEquals(expected, sut.match(block_cell_names))
    def test_declarations(self):
        d1 = CPPDeclaration('path/to/file.h')
        s = d1.serialize()
        d2 = CPPDeclaration.deserialize(s)
        self.assertEqual(d1, d2)

        d1 = PythonDeclaration("import sys")
        s = d1.serialize()
        d2 = PythonDeclaration.deserialize(s)
        self.assertEqual(d1, d2)
Example #12
0
    def test_python_c_include(self):
        code = r'''
import biipyc
import my_block
lib = link_clib("user/block/test.h")
some_var = test("user/block/cosa.h")
value = 3
libd = biipyc.link_clib("user/block/test2.h")'''

        py = PythonParser()
        py.parse(code)
        obtained_explicit_decs = py.explicit_declarations
        expected_explicit_decs = [CPPDeclaration("user/block/test.h"),
                                  CPPDeclaration("user/block/test2.h"),
                                  PythonDeclaration("import my_block"),
                                  PythonDeclaration("import biipyc")]

        self.assertItemsEqual(expected_explicit_decs, obtained_explicit_decs)
        self.assertTrue(py.has_main_function())
 def test_simple_match(self):
     sut = PythonDeclaration("import biicode.common.edition")
     block_cell_names = set([BlockCellName("biicode/common/edition.py"),
                             BlockCellName("biicode/common/jarl.py")])
     self.assertEquals(set([BlockCellName("biicode/common/edition.py")]),
                       sut.match(block_cell_names))
 def test_from_import_error(self):
     sut = PythonDeclaration("from biicode.common.edition impor Parser")
     self.assertIsNone(sut.block())
 def test_multi_aliased_from_import_block(self):
     sut = PythonDeclaration("from biicode.common.edition import Parser as pepe, Counter as cont")
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals([("Parser", "pepe"), ("Counter", "cont")], sut.python_import().names)
 def test_aliased_general_import_block(self):
     sut = PythonDeclaration("import biicode.common.edition as pepe")
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals(None, sut.python_import().names)
 def test_from_import_all(self):
     sut = PythonDeclaration("from biicode.common.edition import *")
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals([("*", None)], sut.python_import().names)
 def test_aliased_general_import_block(self):
     sut = PythonDeclaration("import biicode.common.edition as pepe")
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals(None, sut.python_import().names)
 def test_match_composed_system(self):
     sut = PythonDeclaration("import xml.dom.domreg")
     validator = self.generate_python_sys_libs()
     self.assertEquals(set(["xml/dom/domreg.py"]),
                       sut.match_system(validator))
 def test_normalize_import_with_alias(self):
     sut = PythonDeclaration("import myblock as block")
     result = sut.normalize(['testuser/block/__init__.py', 'testuser/block/myblock.py'])
     self.assertEquals(PythonDeclaration("import testuser.block.myblock as block"), result)
 def test_normalize_multi_dir(self):
     sut = PythonDeclaration("import biipyc")
     result = sut.normalize(['testuser1/pyc/pythondynlibs/biipyc.py'])
     self.assertEquals(PythonDeclaration("import testuser1.pyc.pythondynlibs.biipyc as biipyc"),
                       result)
 def test_match_system_inexistent(self):
     sut = PythonDeclaration("import reee")
     validator = self.generate_python_sys_libs()
     self.assertEquals(set([]), sut.match_system(validator))
 def test_match_composed_system(self):
     sut = PythonDeclaration("import xml.dom.domreg")
     validator = self.generate_python_sys_libs()
     self.assertEquals(set(["xml/dom/domreg.py"]), sut.match_system(validator))
 def test_normalize_composed_import(self):
     sut = PythonDeclaration("import     biicode.common.edition.parsing")
     result = sut.normalize(['biicode/common/edition/parsing.py'])
     self.assertEquals(
         PythonDeclaration("import biicode.common.edition.parsing"), result)
 def test_from_import_block(self):
     sut = PythonDeclaration("from biicode.common.edition import Parser")
     self.assertEquals("biicode/common", sut.block())
     self.assertEquals([('Parser', None)], sut.python_import().names)
 def test_normalize_multi_dir(self):
     sut = PythonDeclaration("import biipyc")
     result = sut.normalize(['testuser1/pyc/pythondynlibs/biipyc.py'])
     self.assertEquals(
         PythonDeclaration(
             "import testuser1.pyc.pythondynlibs.biipyc as biipyc"), result)
 def test_complex_normalize_with_alias(self):
     sut = PythonDeclaration("from myblock import Parser as Hell")
     result = sut.normalize(['testuser/block/__init__.py', 'testuser/block/myblock.py'])
     self.assertEquals(PythonDeclaration("from testuser.block.myblock import Parser as Hell"),
                       result)
 def test_match_system_inexistent(self):
     sut = PythonDeclaration("import reee")
     validator = self.generate_python_sys_libs()
     self.assertEquals(set([]), sut.match_system(validator))
 def test_normalize_composed_import(self):
     sut = PythonDeclaration("import     biicode.common.edition.parsing")
     result = sut.normalize(['biicode/common/edition/parsing.py'])
     self.assertEquals(PythonDeclaration("import biicode.common.edition.parsing"), result)
Example #30
0
 def explicit_declarations(self):
     result = set()
     result |= (set([PythonDeclaration(x.name) for x in self.imports]))
     result |= (set([CPPDeclaration(x) for x in self.c_includes]))
     result |= (set([DataDeclaration(x.name) for x in self.references]))
     return result
 def test_from_import_error(self):
     sut = PythonDeclaration("from biicode.common.edition impor Parser")
     self.assertIsNone(sut.block())