def test_auto_namespace_not_matching_2(self):
        auto_namespace(scope="incorrect_namespace")

        class MyTask(dbnd.Task):
            pass

        assert MyTask.task_definition.task_family == "MyTask"
    def test_auto_namespace_global(self):
        auto_namespace()

        class MyTask(dbnd.Task):
            pass

        assert MyTask.task_definition.task_family == self.this_module + ".MyTask"
    def test_auto_namespace_scope(self):
        auto_namespace(scope=__name__)
        namespace("bleh", scope="")

        class MyTask(dbnd.Task):
            pass

        assert MyTask.task_definition.task_family == self.this_module + ".MyTask"
    def test_auto_namespace_not_matching(self):
        auto_namespace(scope="incorrect_namespace")
        namespace("bleh", scope="")

        class MyTask(dbnd.Task):
            pass

        namespace(scope="incorrect_namespace")
        namespace(scope="")
        assert MyTask.task_definition.task_family == "bleh.MyTask"
Beispiel #5
0
from dbnd import auto_namespace, band, parameter
from dbnd._core.constants import CloudType
from dbnd_test_scenarios.test_common.task.factories import FooConfig, TTask

auto_namespace(scope=__name__)


class FirstTask(TTask):
    # exists only for local
    foo = parameter(default="FooConfig")[FooConfig]
    param = parameter(default="FirstTask.inline.param")[str]


class SecondTask(FirstTask):
    defaults = {
        FooConfig.bar: "SecondTask.defaults.bar",
        FooConfig.quz: "SecondTask.defaults.quz",
    }


@band(defaults={FooConfig.bar: "first_pipeline.defaults.bar"})
def first_pipeline():
    return SecondTask(param="first_pipeline.band.param").t_output


@band(defaults={FooConfig.quz: "second_pipeline.defaults.quz"})
def second_pipeline():
    return (
        first_pipeline(
            override={FooConfig.quz: "second_pipeline.band.override.quz"
                      }  # overridden by self.config