Found during testing of ChildrenArray. Having a children populated with some nodes, and then removing one of them leads to such call traces on the listener:
{
'property_change': [
{
'node': MinimalNode(system_name=None, display_name=node1),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node3),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node4),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node5),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node2),
'name': 'parentNode',
'old': MinimalNode(system_name=parent_node),
'new': None,
},
{
'node': MinimalNode(system_name=None, display_name=node1),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node3),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node4),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
{
'node': MinimalNode(system_name=None, display_name=node5),
'name': 'parentNode',
'old': None,
'new': MinimalNode(system_name=parent_node),
},
]
}
In that instance, only node2 was removed. All the other nodes were already there.
Strong suspicions it is related to #3. But making it a separate issue because the behaviour of notifying for remaining nodes, appearing as if they were added, and all that during an actual removal process, is quite differently wrong from what #3 shows.
Found during testing of ChildrenArray. Having a children populated with some nodes, and then removing one of them leads to such call traces on the listener:
{ 'property_change': [ { 'node': MinimalNode(system_name=None, display_name=node1), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node3), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node4), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node5), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node2), 'name': 'parentNode', 'old': MinimalNode(system_name=parent_node), 'new': None, }, { 'node': MinimalNode(system_name=None, display_name=node1), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node3), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node4), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, { 'node': MinimalNode(system_name=None, display_name=node5), 'name': 'parentNode', 'old': None, 'new': MinimalNode(system_name=parent_node), }, ] }In that instance, only node2 was removed. All the other nodes were already there.
Strong suspicions it is related to #3. But making it a separate issue because the behaviour of notifying for remaining nodes, appearing as if they were added, and all that during an actual removal process, is quite differently wrong from what #3 shows.