This is a bit crypt, I agree. If you check the code for ```_invite_user_to_group```, it's:

```python
    def _invite_user_to_group(self, email='user@email.com',
                              group=None, role='member'):
        user = factories.User()
        group = group or factories.Group(user=user)

        context = {
            'user': user['name']
        }
        params = {
            'email': email,
            'group_id': group['id'],
            'role': role
        }

        result = helpers.call_action('user_invite', context, **params)

        return ckan.model.User.get(result['id'])
```

So it's returning the user itself (and ```None``` if it couldn't find any).

I haven't used ```user_show``` there because I need an ```User``` object to call its methods in some other tests.