From 2ae1a70bacd278b317ff12b94c65d0d67bccfb55 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 26 Jun 2026 16:01:05 +0200 Subject: [PATCH] test: simplify interfaces/veth_delete Signed-off-by: Joachim Wiberg --- test/case/interfaces/veth_delete/test.adoc | 5 ++--- test/case/interfaces/veth_delete/test.py | 24 ++++++++-------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/test/case/interfaces/veth_delete/test.adoc b/test/case/interfaces/veth_delete/test.adoc index 372faa71..aed8c524 100644 --- a/test/case/interfaces/veth_delete/test.adoc +++ b/test/case/interfaces/veth_delete/test.adoc @@ -23,8 +23,7 @@ image::topology.svg[Verify that VETH Pairs Can Be Deleted topology, align=center . Verify interfaces 'veth0a' and 'veth0b' exist . Set IP address on target:data1 (dummy op) . Set IP address on target:data2 (dummy op) -. Reset configuration -. Verify target:data1 and target:data2 still exist -. Verify VETH pair have been removed +. Delete VETH pair +. Verify VETH pair has been removed diff --git a/test/case/interfaces/veth_delete/test.py b/test/case/interfaces/veth_delete/test.py index 67091d98..8bc1bd65 100755 --- a/test/case/interfaces/veth_delete/test.py +++ b/test/case/interfaces/veth_delete/test.py @@ -86,23 +86,15 @@ with infamy.Test() as test: } }}) - # TODO: need target.del_config_dict() or similar for VETH _pairs_, - # because both interfaces must be removed at the same time. - # with test.step("Delete VETH pair"): - # xpath = f"/ietf-interfaces:interfaces/interface[name='{veth0a}']" - # target.delete_xpath(xpath) - # XXX: temporary workaround - with test.step("Reset configuration"): - # Calls target.test_reset() to apply safe-config - target = env.attach("target", "mgmt") + with test.step("Delete VETH pair"): + # Both ends are mutually mandatory leafrefs, so they must be + # removed in a single transaction. + target.delete_xpaths([ + f"/ietf-interfaces:interfaces/interface[name='{veth0a}']", + f"/ietf-interfaces:interfaces/interface[name='{veth0b}']", + ]) - with test.step("Verify target:data1 and target:data2 still exist"): - assert iface.exist(target, data1), \ - f"Interface {data1} missing!" - assert iface.exist(target, data2), \ - f"Interface {data2} missing!" - - with test.step("Verify VETH pair have been removed"): + with test.step("Verify VETH pair has been removed"): assert not iface.exist(target, veth0a), \ f"Interface <{veth0a}> still exists!" assert not iface.exist(target, veth0b), \