The TestNode has a p2p property which is an alias for p2ps[0].
I think this should be removed because it can be confusing and misleading (to both the test writer and reviewer), especially if a TestNode has multiple p2ps connected (which is the case for many tests).
Another example is when a test has multiple subtests that connect 1 p2p and use the p2p property to reference it. If the subtests don't completely clean up after themselves, the subtests may affect one another.
The best way to refer to a connected p2p is use the object returned by add_p2p_connection like this:
p2p_conn = node.add_p2p_connection(P2PInterface())
A good example is p2p_invalid_locator.py, which cleans up after itself (waits in both wait_for_disconnect and in disconnect_p2ps) but wouldn't need so much complexity if it just referenced the connections directly.
If there is only one connected, it's not really that tedious to just use node.p2ps[0] instead of node.p2p (and it can always be aliased inside the test itself).