DjangoWeekendCardiff sprint contribution to #18586

This is my (admittedly small) sprint contribution to ticket #18586 - a refactor of RecursiveM2MTests to split the monolithic test up into several smaller more targeted methods.