Skip to content

Commit 5de325e

Browse files
bcallerBen Caller
authored and
Ben Caller
committed
Add __init__.py to modules as a package import
from test_project.folder import ... should import module in test_project/folder/__init__.py and all the modules within the folder for working out if taint propagates.
1 parent d7a94dd commit 5de325e

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

examples/test_project/folder/__init__.py

Whitespace-only changes.

pyt/core/project_handler.py

+11-8
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,10 @@ def get_modules(path):
5252
'.'
5353
)
5454
directory = directory.replace('.', '', 1)
55-
if directory:
56-
modules.append(
57-
('.'.join((module_root, directory, filename.replace('.py', ''))), os.path.join(root, filename))
58-
)
59-
else:
60-
modules.append(
61-
('.'.join((module_root, filename.replace('.py', ''))), os.path.join(root, filename))
62-
)
55+
modules.append((
56+
'.'.join(p for p in (module_root, directory, _filename_to_module(filename)) if p),
57+
os.path.join(root, filename)
58+
))
6359

6460
return modules
6561

@@ -68,3 +64,10 @@ def _is_python_file(path):
6864
if os.path.splitext(path)[1] == '.py':
6965
return True
7066
return False
67+
68+
69+
def _filename_to_module(filename):
70+
if filename == '__init__.py':
71+
return ''
72+
else:
73+
return os.path.splitext(filename)[0]

tests/core/project_handler_test.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,32 @@ def test_get_modules(self):
3232
utils_path = os.path.join(project_folder, 'utils.py')
3333
exceptions_path = os.path.join(project_folder, 'exceptions.py')
3434
some_path = os.path.join(project_folder, folder, 'some.py')
35+
__init__path = os.path.join(project_folder, folder, '__init__.py')
3536
indhold_path = os.path.join(project_folder, folder, directory, 'indhold.py')
3637

3738
# relative_folder_name = '.' + folder
3839
app_name = project_namespace + '.' + 'app'
3940
utils_name = project_namespace + '.' + 'utils'
4041
exceptions_name = project_namespace + '.' + 'exceptions'
4142
some_name = project_namespace + '.' + folder + '.some'
43+
__init__name = project_namespace + '.' + folder
4244
indhold_name = project_namespace + '.' + folder + '.' + directory + '.indhold'
4345

4446
app_tuple = (app_name, app_path)
4547
utils_tuple = (utils_name, utils_path)
4648
exceptions_tuple = (exceptions_name, exceptions_path)
4749
some_tuple = (some_name, some_path)
50+
__init__tuple = (__init__name, __init__path)
4851
indhold_tuple = (indhold_name, indhold_path)
4952

5053
self.assertIn(app_tuple, modules)
5154
self.assertIn(utils_tuple, modules)
5255
self.assertIn(exceptions_tuple, modules)
5356
self.assertIn(some_tuple, modules)
57+
self.assertIn(__init__tuple, modules)
5458
self.assertIn(indhold_tuple, modules)
5559

56-
self.assertEqual(len(modules), 5)
60+
self.assertEqual(len(modules), 6)
5761

5862
def test_get_modules_and_packages(self):
5963
project_folder = os.path.normpath(os.path.join('examples', 'test_project'))
@@ -104,4 +108,4 @@ def test_get_modules_and_packages(self):
104108
self.assertIn(some_tuple, modules)
105109
self.assertIn(indhold_tuple, modules)
106110

107-
self.assertEqual(len(modules), 7)
111+
self.assertEqual(len(modules), 8)

0 commit comments

Comments
 (0)