Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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"]
Ejemplo n.º 3
0
 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"]
Ejemplo n.º 4
0
 def test_use_different_merge_methods_only_once(self):
     base_fancy_dict = FancyDict(counter=1)
     update_fancy_dict = fancy_dict_with_merge_methods(MergeMethod(add))
     update_fancy_dict["counter"] = 1
     base_fancy_dict.update(update_fancy_dict)
     assert 2 == base_fancy_dict["counter"]
     base_fancy_dict.update(counter=1)
     assert 1 == base_fancy_dict["counter"]
Ejemplo n.º 5
0
    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"]
Ejemplo n.º 6
0
 def test_with_keyword_arguments(self):
     base_dict = FancyDict({})
     base_dict.update(key=1)
     assert {"key": 1} == base_dict
Ejemplo n.º 7
0
 def test_overwrite_dict_with_another_type(self):
     base_dict = FancyDict({"base": {"sub": 1}})
     base_dict.update({"base": 0})
     assert {"base": 0} == base_dict
Ejemplo n.º 8
0
 def test_updates_nested_dicts(self):
     base_dict = FancyDict({"base": {"key0": 0}})
     update_dict = {"base": {"key1": 1}}
     base_dict.update(update_dict)
     assert {"base": {"key0": 0, "key1": 1}} == base_dict
Ejemplo n.º 9
0
 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"]