Skip to content

Commit ac043c2

Browse files
authored
Merge pull request #42 from AbsaOSS/bugfix/module-register-double-loading-modules
Bugfix: Module Loader Clear before re-enabling disabled decorators
2 parents 66aaa29 + d40a0cf commit ac043c2

File tree

5 files changed

+30
-1
lines changed

5 files changed

+30
-1
lines changed

rialto/jobs/module_register.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def remove_module(cls, module):
6464
:param module: The module to be removed.
6565
"""
6666
cls._storage.pop(module.__name__, None)
67+
cls._dependency_tree.pop(module.__name__, None)
6768

6869
@classmethod
6970
def register_dependency(cls, module, parent_name):
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
from rialto.jobs import config_parser
2+
3+
4+
@config_parser
5+
def my_config():
6+
return 42

tests/jobs/dependency_checks_job/dependency_checks_job.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,8 @@ def default_dependency_job(run_date, spark, config, table_reader):
3030
assert spark is not None
3131
assert config is not None
3232
assert table_reader is not None
33+
34+
35+
@job
36+
def dependency_with_config_job(dependency_with_config):
37+
assert dependency_with_config == 54 # 1 + 11 + 42

tests/jobs/dependency_checks_job/main_datasources.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
from rialto.jobs import datasource
1+
import tests.jobs.dependency_checks_job.datasources_config as cfg
2+
from rialto.jobs import datasource, register_dependency_module
3+
4+
register_dependency_module(cfg)
25

36

47
@datasource
@@ -35,3 +38,8 @@ def circle_third(circle_first):
3538
@datasource
3639
def self_dependency(a, b, c, self_dependency):
3740
return a
41+
42+
43+
@datasource
44+
def dependency_with_config(a, b, my_config):
45+
return a + b + my_config

tests/jobs/test_test_utils.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,12 @@ def test_duplicate_dependency_fails_on_duplicate(spark):
106106

107107
assert exc_info is not None
108108
assert str(exc_info.value) == f"Multiple functions with the same name i found !"
109+
110+
111+
def test_resolver_with_disable_decorators(spark):
112+
with disable_job_decorators(dependency_checks_job):
113+
# Doesn't really matter what we call here, as long as it is a job
114+
dependency_checks_job.dependency_with_config_job(54)
115+
116+
# Now, resolver should work as normal, as decorators are re-enabled and the module is reloaded
117+
assert resolver_resolves(spark, dependency_checks_job.dependency_with_config_job)

0 commit comments

Comments
 (0)