def test_copying_then_setting_tags_doesnt_leak_backwards(): with Flow(name="test"): t1 = Task() with tasks.tags("init-tag"): t2 = t1.copy() assert t2.tags == {"init-tag"} assert t1.tags == set()
def test_setting_tags_then_calling_copies_tags(): with tasks.tags("init-tag"): t1 = Task() with Flow(name="test"): t2 = t1() assert t2.tags == {"init-tag"}
def test_context_manager_for_setting_tags(): """ Test setting Task tags with a context manager, including: - top level - nested - nested with explicit tags """ with tasks.tags("1", "2"): t1 = Task() assert t1.tags == set(["1", "2"]) with tasks.tags("3", "4"): t2 = Task() assert t2.tags == set(["1", "2", "3", "4"]) t3 = Task(tags=["5"]) assert t3.tags == set(["1", "2", "3", "4", "5"])
def test_tag_contextmanager_works_with_task_decorator(): @tasks.task def mytask(): pass @tasks.task(tags=["default"]) def tagged_task(): pass with Flow(name="test"): with tasks.tags("chris"): res = mytask() other = tagged_task() assert res.tags == {"chris"} assert other.tags == {"chris", "default"}