Exemple #1
0
    def test_single_dependency(self):
        build_package_tree({
            ROOT_PACKAGE: {
                INIT_FILE: '',
                PACKAGE_A: {
                    INIT_FILE:
                    '',
                    MODULE_A:
                    """
                                    import os
                                    import sys
                                    from root_package.package_b import module_a
                                    def bar():
                                        print 'bar'
                                    if __name__ == '__main__':
                                        module_a.foo()
                                  """
                },
                PACKAGE_B: {
                    INIT_FILE:
                    '',
                    MODULE_A:
                    """
                                    import socket
                                    def foo():
                                        print 'foo'
                                  """
                }
            }
        })

        result = main(PACKAGE_A_PATHNAME, PACKAGE_B_PATHNAME)

        etalon = {
            module_meta(MAIN, PACKAGE_A_MODULE_A_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_B]),
                            PACKAGE_B_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_B, "module_a"]),
                            PACKAGE_B_MODULE_A_PATHNAME)
            ]),
        }
        self.assertDictEqual(result, etalon)
Exemple #2
0
    def test_dependency_of_sub_package(self):
        build_package_tree({
            ROOT_PACKAGE: {
                INIT_FILE: '',
                PACKAGE_A: {
                    INIT_FILE: '',
                    MODULE_A: """
                                    import os
                                    import sys
                                    from root_package.package_a.package_b import module_a
                                    def bar():
                                        print 'bar'
                                    if __name__ == '__main__':
                                        module_a.foo()
                                  """,
                    MODULE_B: '',
                    PACKAGE_B: {
                        INIT_FILE:
                        '',
                        MODULE_A:
                        """
                                    import socket
                                    def foo():
                                        print 'foo'
                                    """,
                        MODULE_B:
                        """
                                    from root_package.package_a import module_b
                            """
                    }
                }
            }
        })

        result = main(os.path.join(ROOT_PACKAGE, PACKAGE_A),
                      os.path.join(ROOT_PACKAGE, PACKAGE_A, PACKAGE_B))

        etalon = {
            module_meta(MAIN, PACKAGE_A_MODULE_A_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_A]),
                            os.path.join(ROOT_PACKAGE, PACKAGE_A, INIT_FILE)),
                module_meta(
                    '.'.join([ROOT, PACKAGE_A, PACKAGE_B]),
                    os.path.join(ROOT_PACKAGE, PACKAGE_A, PACKAGE_B,
                                 INIT_FILE)),
                module_meta(
                    '.'.join([ROOT, PACKAGE_A, PACKAGE_B, "module_a"]),
                    os.path.join(ROOT_PACKAGE, PACKAGE_A, PACKAGE_B, MODULE_A))
            ]),
            module_meta(
                MAIN, os.path.join(ROOT_PACKAGE, PACKAGE_A, PACKAGE_B, MODULE_B)):
            set([
                module_meta('.'.join([ROOT, PACKAGE_A]),
                            os.path.join(ROOT_PACKAGE, PACKAGE_A, INIT_FILE)),
                module_meta('.'.join([ROOT, PACKAGE_A, "module_b"]),
                            os.path.join(ROOT_PACKAGE, PACKAGE_A, MODULE_B))
            ])
        }

        self.assertDictEqual(result, etalon)
Exemple #3
0
    def test_import_inside_function(self):
        build_package_tree({
            ROOT_PACKAGE: {
                INIT_FILE: '',
                PACKAGE_A: {
                    INIT_FILE:
                    """
                                    import os
                                    import sys

                                    def baz():
                                        from root_package.package_b import module_a
                                        print 'baz'

                                    if __name__ == '__main__':
                                        module_a.foo()
                        """,
                    MODULE_A:
                    """
                                    import os
                                    import sys
                                  """
                },
                PACKAGE_B: {
                    INIT_FILE:
                    'import sys',
                    MODULE_A:
                    """
                                    import socket
                                    def foo():
                                        print 'foo'
                                        """,
                    MODULE_B:
                    """
                                    from root_package.package_a import baz
                                    if __name__ == '__main__':
                                        baz()

                        """
                },
            }
        })

        result = main(PACKAGE_A_PATHNAME, PACKAGE_B_PATHNAME)

        etalon = {
            module_meta(MAIN, PACKAGE_A_MODULE_INIT_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_B]),
                            PACKAGE_B_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_B, "module_a"]),
                            PACKAGE_B_MODULE_A_PATHNAME)
            ]),
            module_meta(MAIN, PACKAGE_B_MODULE_B_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_A]),
                            PACKAGE_A_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_B]),
                            PACKAGE_B_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_B, 'module_a']),
                            PACKAGE_B_MODULE_A_PATHNAME)
            ])
        }

        self.assertDictEqual(result, etalon)
Exemple #4
0
    def test_two_dependencies_and_custom_modules_transitive(self):
        build_package_tree({
            ROOT_PACKAGE: {
                INIT_FILE: '',
                PACKAGE_A: {
                    INIT_FILE:
                    '',
                    MODULE_A:
                    """
                                    import os
                                    import sys
                                    from root_package.package_b import module_a
                                    from root_package.package_c import module_a as c_module_a
                                    def bar():
                                        print 'bar'
                                    if __name__ == '__main__':
                                        module_a.foo()
                                        """,
                    MODULE_B:
                    """
                                    import shutil
                                    def baz():
                                        print 'baz'
                                        """
                },
                PACKAGE_B: {
                    INIT_FILE:
                    '',
                    MODULE_A:
                    """
                                    import socket
                                    from root_package.package_a import module_b

                                    def foo():
                                        print 'foo'
                                        """
                },
                PACKAGE_C: {
                    INIT_FILE: '',
                    MODULE_A: ''
                }
            }
        })

        result = main(PACKAGE_A_PATHNAME, PACKAGE_B_PATHNAME)

        etalon = {
            module_meta(MAIN, PACKAGE_A_MODULE_A_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_B]),
                            PACKAGE_B_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_B, "module_a"]),
                            PACKAGE_B_MODULE_A_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_A]),
                            PACKAGE_A_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_A, 'module_b']),
                            PACKAGE_A_MODULE_B_PATHNAME)
            ]),
            module_meta(MAIN, PACKAGE_B_MODULE_A_PATHNAME):
            set([
                module_meta('.'.join([ROOT, PACKAGE_A]),
                            PACKAGE_A_MODULE_INIT_PATHNAME),
                module_meta('.'.join([ROOT, PACKAGE_A, 'module_b']),
                            PACKAGE_A_MODULE_B_PATHNAME)
            ])
        }

        self.assertDictEqual(result, etalon)