def test_update_annotations(self): annotations = Annotations(finalized=True) updating_fancy_dict = FancyDict(key=1) updating_fancy_dict.annotate("key", annotations) base_fancy_dict = FancyDict() base_fancy_dict.update(updating_fancy_dict) assert base_fancy_dict.get_annotations("key").finalized
def test_set_condition(self): fancy_dict = FancyDict() fancy_dict["key"] = "value" fancy_dict["key_not_merging"] = "value" fancy_dict.annotate("key_not_merging", Annotations(condition=lambda o, n: False)) assert {"key": "value"} == FancyDict(fancy_dict)
def test_if_finalized_dont_update_annotations(self): fancy_dict = FancyDict(key=1) fancy_dict.annotate("key", finalized=True) update = FancyDict(key=2) update.annotate("key", finalized=False) fancy_dict.update(update) assert 1 == fancy_dict["key"]
def test_merge_method(self): base_dict = FancyDict() base_dict["counter"] = 1 update_dict = FancyDict(counter=1) update_dict.annotate("counter", Annotations(merge_method=add)) base_dict.update(update_dict) assert 2 == base_dict["counter"]
def test_create_annotations_from_keyword_arguments(self): fancy_dict = FancyDict(finalized=1) fancy_dict.annotate("finalized", finalized=True) fancy_dict.update(finalized=2) assert 1 == fancy_dict["finalized"] fancy_dict["key"] = "value" fancy_dict["key_not_merging"] = "value" fancy_dict.annotate("key_not_merging", condition=lambda o, n: False) assert "key_not_merging" not in FancyDict(fancy_dict) fancy_dict["counter"] = 1 update_dict = FancyDict(counter=1) update_dict.annotate("counter", merge_method=add) fancy_dict.update(update_dict) assert 2 == fancy_dict["counter"]
def test_setitem_allow_change_even_if_finalized(self): fancy_dict = FancyDict(finalized=1) fancy_dict.annotate("finalized", Annotations(finalized=True)) fancy_dict["finalized"] = 2 assert 2 == fancy_dict["finalized"]
def test_dont_set_annotations_when_there_are_none(self): fancy_dict = FancyDict(key=1) fancy_dict.annotate("key", None) assert fancy_dict.get_annotations("key") is None
def test_update_existing_annotations(self): annotations = Annotations(finalized=True) fancy_dict = FancyDict(key=1) fancy_dict.annotate("key", annotations) fancy_dict.annotate("key", finalized=False) assert not annotations.finalized
def test_finalized(self): fancy_dict = FancyDict(finalized=1) fancy_dict.annotate("finalized", Annotations(finalized=True)) fancy_dict.update(finalized=2) assert 1 == fancy_dict["finalized"]