def test_get_import_statements(self): """ Test that import statements are generated correctly :return: """ dirs = [ 'myproj/common', 'myproj/specific', 'yourproj', 'theirproj/common', 'theirproj/common/steps', 'theirproj/specific', 'theirproj/.git', 'theirproj/.git/dir', ] files = [ 'myproj/common/file1.py', 'myproj/common/file2.py', 'myproj/specific/your.py', 'yourproj/step.py', 'theirproj/common/file3.py', 'theirproj/common/file4.py', 'theirproj/common/steps/file5.py', 'theirproj/common/steps/file6.py', 'theirproj/common/steps/file7.py', ] expected_out = [ 'from myproj.common.file1 import *', 'from myproj.common.file2 import *', 'from myproj.specific.your import *', 'from yourproj.step import *', 'from theirproj.common.file3 import *', 'from theirproj.common.file4 import *', 'from theirproj.common.steps.file5 import *', 'from theirproj.common.steps.file6 import *', 'from theirproj.common.steps.file7 import *', ] # create dirs for d in dirs: os.makedirs(d) # create files for f in files: with open(f, 'w') as fw: fw.write(f) output = BehaveWorkingDirectory.get_import_statements(os.getcwd()) assert len(set(expected_out).intersection(output)) == len(expected_out)