Skip to content

improve compactness for for keyed children #2

@obust

Description

@obust
    # case: with keys
    src = Element("ul", {}, [
        Element("li", {}, "a", key=Optional(String("a"))),
        Element("li", {}, "b", key=Optional(String("b"))),
    ])
    dst = Element("ul", {}, [
        Element("li", {}, "foo", key=Optional(String("foo"))),
        Element("li", {}, "a", key=Optional(String("a"))),
        Element("li", {}, "b", key=Optional(String("b"))),
    ])
    patches = diff(src, dst)
    expected = ListPatch([
        Patch(action="remove", path=[1], value=None),
        Patch(action="remove", path=[0], value=None),
        Patch(action="insert", path=[0], value=Element("li", {}, "foo", key=Optional(String("foo")))),
        Patch(action="insert", path=[1], value=Element("li", {}, "a", key=Optional(String("a")))),
        Patch(action="insert", path=[2], value=Element("li", {}, "b", key=Optional(String("b")))),
    ])
    assert_equal(patches, expected)
    assert_equal(patches(src), dst)

should expect


    expected = ListPatch([
        Patch(action="insert", path=[0], value=Element("li", {}, "foo", key=Optional(String("foo")))),
    ])

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions