h icon indicating copy to clipboard operation
h copied to clipboard

Fix `factories.Group` creator membership

Open seanh opened this issue 9 months ago • 0 comments

When creating a group, the user my_group.creator should also be added as the first user in my_group.members. With factories.Group this currently works correctly as long as no members argument is passed to the factory:

>>> group = factories.Group()
>>> group.creator
<User: cookekathleen__0>
>>> group.members
[<User: cookekathleen__0>]
>>> user = factories.User()
>>> group = factories.Group(creator=user)
>>> group.creator
<User: pmitchell__1>
>>> group.members
[<User: pmitchell__1>]

But when a members argument is passed to the factory a group can be created with group.creator missing from group.members, which is abnormal:

>>> group = factories.Group(members=[user])
>>> group.creator
<User: arthurturner__2>
>>> group.members
[<User: pmitchell__1>]

Fix factories.Group to ensure that group.creator is always added as the first user in group.members even if a members list that does not include the creator is passed to the factory.

Tests of the new version:

>>> group = factories.Group()
>>> group.creator
<User: abeasley__0>
>>> group.members
[<User: abeasley__0>]
>>> user = factories.User()
>>> group = factories.Group(members=[user])
>>> group.creator
<User: kristinegutierrez__2>
>>> group.members
[<User: kristinegutierrez__2>, <User: kristina79__1>]
>>> group = factories.Group(creator=user, members=[user])
>>> group.creator
<User: kristina79__1>
>>> group.members
[<User: kristina79__1>]

seanh avatar May 09 '24 11:05 seanh