Skip to content

Commit 65f9072

Browse files
test: add a meta test to make sure that v4/objects/ files are imported
Add a test to make sure that all of the `gitlab/v4/objects/` files are imported in `gitlab/v4/objects/__init__.py`
1 parent 8dfed0c commit 65f9072

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""
2+
Ensure objects defined in gitlab.v4.objects are imported in
3+
`gitlab/v4/objects/__init__.py`
4+
5+
"""
6+
import os
7+
import pkgutil
8+
from typing import Set
9+
10+
import gitlab.v4.objects
11+
12+
13+
def test_verify_v4_objects_imported() -> None:
14+
assert len(gitlab.v4.objects.__path__) == 1
15+
16+
init_files: Set[str] = set()
17+
with open(gitlab.v4.objects.__file__, "r") as in_file:
18+
for line in in_file.readlines():
19+
if line.startswith("from ."):
20+
init_files.add(line.rstrip())
21+
22+
object_files = set()
23+
for module in pkgutil.iter_modules(gitlab.v4.objects.__path__):
24+
object_files.add(f"from .{module.name} import *")
25+
26+
missing_in_init = object_files - init_files
27+
error_message = (
28+
f"\nThe file {gitlab.v4.objects.__file__!r} is missing the following imports:"
29+
)
30+
for missing in sorted(missing_in_init):
31+
error_message += f"\n {missing}"
32+
33+
assert not missing_in_init, error_message

0 commit comments

Comments
 (0)