Ejemplo n.º 1
0
    def test_dunder_json(self):
        from kotti.sqla import NestedMutationDict

        data = {"some": ["other", {"stuff": 1}]}
        mdict = NestedMutationDict(data)

        assert json.loads(json.dumps(mdict.__json__(None))) == data
Ejemplo n.º 2
0
    def test_dictwrapper_wraps(self):
        from kotti.sqla import NestedMutationDict
        from kotti.sqla import NestedMutationList

        wrapper = NestedMutationDict(
            {'name': 'andy', 'age': 77, 'children': []})
        changed = wrapper.changed = MagicMock()

        wrapper['name'] = 'randy'
        assert changed.call_count == 1

        assert isinstance(wrapper['children'], NestedMutationList)
        wrapper['children'].append({'name': 'sandy', 'age': 33})
        assert changed.call_count == 2
        assert len(wrapper['children']), 1
        assert isinstance(wrapper['children'][0], NestedMutationDict)
Ejemplo n.º 3
0
    def test_dictwrapper_wraps(self):
        from kotti.sqla import NestedMutationDict
        from kotti.sqla import NestedMutationList

        wrapper = NestedMutationDict({
            "name": "andy",
            "age": 77,
            "children": []
        })
        assert getattr(wrapper, "get", False) is not False
        changed = wrapper.changed = MagicMock()

        wrapper["name"] = "randy"
        assert changed.call_count == 1

        assert isinstance(wrapper["children"], NestedMutationList)
        wrapper["children"].append({"name": "sandy", "age": 33})
        assert changed.call_count == 2
        assert len(wrapper["children"]), 1
        assert isinstance(wrapper["children"][0], NestedMutationDict)
Ejemplo n.º 4
0
    def test_dictwrapper_changed(self):
        from kotti.sqla import NestedMutationDict

        data = {}
        wrapper = NestedMutationDict(data)
        changed = wrapper.changed = MagicMock()

        wrapper['name'] = 'andy'
        assert data == {'name': 'andy'}
        assert wrapper == {'name': 'andy'}
        assert wrapper['name'] == 'andy'
        assert changed.call_count == 1

        wrapper['age'] = 77
        assert data == {'name': 'andy', 'age': 77}
        assert wrapper['age'] == 77
        assert wrapper['name'] == 'andy'
        assert changed.call_count == 2

        wrapper['age'] += 1
        assert data == {'name': 'andy', 'age': 78}
        assert wrapper['age'] == 78
        assert changed.call_count == 3
Ejemplo n.º 5
0
    def test_dictwrapper_changed(self):
        from kotti.sqla import NestedMutationDict

        data = {}
        wrapper = NestedMutationDict(data)
        changed = wrapper.changed = MagicMock()

        wrapper["name"] = "andy"
        assert data == {"name": "andy"}
        assert wrapper == {"name": "andy"}
        assert wrapper["name"] == "andy"
        assert changed.call_count == 1

        wrapper["age"] = 77
        assert data == {"name": "andy", "age": 77}
        assert wrapper["age"] == 77
        assert wrapper["name"] == "andy"
        assert changed.call_count == 2

        wrapper["age"] += 1
        assert data == {"name": "andy", "age": 78}
        assert wrapper["age"] == 78
        assert changed.call_count == 3
Ejemplo n.º 6
0
    def test_dictwrapper_comparison(self):
        from kotti.sqla import NestedMutationDict

        assert NestedMutationDict({}) == NestedMutationDict({})
        assert (NestedMutationDict({'a':
                                    'ok'}) == NestedMutationDict({'a': 'ok'}))
Ejemplo n.º 7
0
 def test_setdefault_parent(self):
     from kotti.sqla import NestedMutationDict
     mdict = NestedMutationDict({})
     assert mdict.setdefault('bar', []).__parent__ is mdict
Ejemplo n.º 8
0
 def test_setdefault_list(self):
     from kotti.sqla import NestedMutationDict
     from kotti.sqla import NestedMutationList
     mdict = NestedMutationDict({})
     assert isinstance(mdict.setdefault('bar', []), NestedMutationList)
Ejemplo n.º 9
0
    def test_dictwrapper_comparison(self):
        from kotti.sqla import NestedMutationDict

        assert NestedMutationDict({}) == NestedMutationDict({})
        assert NestedMutationDict({"a":
                                   "ok"}) == NestedMutationDict({"a": "ok"})
Ejemplo n.º 10
0
    def test_setdefault_dict(self):
        from kotti.sqla import NestedMutationDict

        mdict = NestedMutationDict({})
        assert isinstance(mdict.setdefault("bar", {}), NestedMutationDict)