def it_returns_non_none_if_old_and_new_different(): new_config = Munch(a=1, b=2) utils.json_save("/tmp/config.json", new_config) new_config["c"] = 3 assert ( PipelineTask._config_dirty(new_config, "/tmp/config.json") is not None )
def _pt(config={}, progress_fn=None): return PipelineTask(src_dir, dst_dir, task_name, config, progress_fn)
def it_returns_false_if_all_parent_files_are_older_than_all_child_files(): m_parent_timestamps.returns([("p0", 1)]) m_child_timestamps.returns([("c0", 2), ("c1", 3)]) assert PipelineTask._out_of_date("parent", "child")[0] is False
def it_returns_true_if_any_parent_file_is_younger_than_youngest_child(): m_parent_timestamps.returns([("p0", 3)]) m_child_timestamps.returns([("c0", 1), ("c1", 2)]) assert PipelineTask._out_of_date("parent", "child")[0] is True
def it_returns_true_on_no_child_files(): m_parent_timestamps.returns([("a0", 1)]) m_child_timestamps.returns([]) assert PipelineTask._out_of_date("parent", "child")[0] is True
def it_returns_false_on_no_parent_files(): m_parent_timestamps.returns([]) assert PipelineTask._out_of_date("parent", "child")[0] is False
def it_returns_non_none_if_old_un_parseable(): with open("/tmp/config.json", "w") as f: f.write("This is not json") assert ( PipelineTask._config_dirty(Munch(a=1), "/tmp/config.json") is not None )
def it_returns_non_none_if_old_not_found(): assert ( PipelineTask._config_dirty(Munch(a=1), "/tmp/doesnt_exist_config.json") is not None )
def it_returns_none_if_old_and_new_differ_only_by_underscore_blocks(): new_config = Munch(a=1, b=2, _c=3) utils.json_save("/tmp/config.json", new_config) new_config["_c"] = 4 assert PipelineTask._config_dirty(new_config, "/tmp/config.json") is None
def it_returns_none_if_old_and_new_identical(): new_config = Munch(a=1, b=2) utils.json_save("/tmp/config.json", new_config) assert PipelineTask._config_dirty(new_config, "/tmp/config.json") is None
def it_returns_none_on_old_config_missing(): assert PipelineTask._config_dirty("test", None) is None
def it_returns_none_on_new_config_missing(): assert PipelineTask._config_dirty(None, "test") is None