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)
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)
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)
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)