Skip to content

Commit 7d9220b

Browse files
committed
fixing empty init
1 parent 14d8526 commit 7d9220b

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

acai_aws/apigateway/resolver/modes/directory.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,12 @@ def __get_route_path(self, split_path):
2323
def __get_import_path_file_tree(self, split_path, split_index, file_tree):
2424
if split_index < len(split_path):
2525
part = split_path[split_index]
26-
possible_directory = part.replace('-', '_')
27-
possible_file = f'{possible_directory}.py'
26+
if part == '':
27+
possible_directory = None
28+
possible_file = '__init__.py'
29+
else:
30+
possible_directory = part.replace('-', '_')
31+
possible_file = f'{possible_directory}.py'
2832
if possible_directory in file_tree:
2933
self.__handle_directory_path_part(possible_directory, split_path, split_index, file_tree)
3034
elif possible_file in file_tree:

tests/acai_aws/apigateway/resolver/modes/test_directory.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,25 @@ def test_default_init_get_file_and_import_path(self):
6060
self.assertTrue('tests/mocks/apigateway/resolver/directory_handlers/home/__init__.py' in file_path)
6161
self.assertEqual('tests.mocks.apigateway.resolver.directory_handlers.home.__init__', import_path)
6262

63+
def test_base_path_get_file_and_import_path(self):
64+
base_path_request = mock_request.get_basic()
65+
base_path_request['path'] = self.base_path
66+
request = Request(base_path_request)
67+
file_path, import_path = self.directory_resolver._get_file_and_import_path(request.path)
68+
self.assertTrue('tests/mocks/apigateway/resolver/directory_handlers/__init__.py' in file_path)
69+
self.assertEqual('tests.mocks.apigateway.resolver.directory_handlers.__init__', import_path)
70+
71+
def test_base_path_raises_without_init_file(self):
72+
handler_path = 'tests/mocks/apigateway/resolver/directory_handlers_no_root_init'
73+
base_path_request = mock_request.get_basic()
74+
base_path_request['path'] = self.base_path
75+
request = Request(base_path_request)
76+
directory_resolver = DirectoryModeResolver(base_path=self.base_path, handlers=handler_path)
77+
with self.assertRaises(ApiException) as resolver_error:
78+
directory_resolver._get_file_and_import_path(request.path)
79+
self.assertEqual(resolver_error.exception.code, 404)
80+
self.assertEqual(resolver_error.exception.message, 'route not found')
81+
6382
def test_dynamic_get_file_and_import_path(self):
6483
request = Request(self.dynamic_request)
6584
file_path, import_path = self.directory_resolver._get_file_and_import_path(request.path)
@@ -102,4 +121,3 @@ def test_triple_nested_dynamic_get_file_and_import_path(self):
102121
file_path, import_path = self.directory_resolver._get_file_and_import_path(request.path)
103122
self.assertTrue('tests/mocks/apigateway/resolver/directory_handlers/user/_user_id/item/_item_id.py' in file_path)
104123
self.assertEqual('tests.mocks.apigateway.resolver.directory_handlers.user._user_id.item._item_id', import_path)
105-
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
def post(request, response):
2+
response.body = {'directory_basic': True}
3+
return response

0 commit comments

Comments
 (0)