h
h copied to clipboard
Fix `factories.Group` creator membership
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>]