def test_repr(db_session, factories): name = "My Hypothesis Group" user = factories.User() group = models.Group(name=name, authority='foobar.com', creator=user) db_session.add(group) db_session.flush() assert repr(group) == "<Group: my-hypothesis-group>"
def test_slug(db_session, factories): name = "My Hypothesis Group" user = factories.User() group = models.Group(name=name, authority="foobar.com", creator=user) db_session.add(group) db_session.flush() assert group.slug == "my-hypothesis-group"
def test_group_organization_defaults_to_none(db_session): name = "My Hypothesis Group" group = models.Group(name=name, authority='foobar.com') db_session.add(group) db_session.flush() assert group.organization is None assert group.organization_id is None
def test_created_by(db_session, factories, default_organization): name_1 = "My first group" name_2 = "My second group" user = factories.User() group_1 = models.Group(name=name_1, authority='foobar.com', creator=user, organization=default_organization) group_2 = models.Group(name=name_2, authority='foobar.com', creator=user, organization=default_organization) db_session.add_all([group_1, group_2]) db_session.flush() assert models.Group.created_by(db_session, user).all() == [group_1, group_2]
def test_enforce_scope_can_be_set_False(db_session, factories): user = factories.User() group = models.Group( name="Foobar", authority="foobar.com", creator=user, enforce_scope=False ) db_session.add(group) db_session.flush() assert group.enforce_scope is False
def test_group_organization(db_session): name = "My Hypothesis Group" org = models.Organization(name="My Organization", authority="foobar.com") db_session.add(org) db_session.flush() group = models.Group(name=name, authority="foobar.com", organization=org) db_session.add(group) db_session.flush() assert group.organization == org assert group.organization_id == org.id
def test_repr(db_session, factories, default_organization): name = "My Hypothesis Group" user = factories.User() group = models.Group( name=name, authority="foobar.com", creator=user, organization=default_organization, ) db_session.add(group) db_session.flush() assert repr(group) == "<Group: my-hypothesis-group>"
def _maybe_create_world_group(engine, authority): from h import models from h.models.group import ReadableBy, WriteableBy session = Session(bind=engine) world_group = session.query(models.Group).filter_by(pubid='__world__').one_or_none() if world_group is None: world_group = models.Group(name=u'Public', authority=authority, joinable_by=None, readable_by=ReadableBy.world, writeable_by=WriteableBy.authority) world_group.pubid = '__world__' session.add(world_group) session.commit() session.close()
def test_init(db_session, factories): name = "My Hypothesis Group" description = "This group is awesome" user = factories.User() group = models.Group(name=name, creator=user, description=description) db_session.add(group) db_session.flush() assert group.id assert group.name == name assert group.description == description assert group.created assert group.updated assert group.creator == user assert group.creator_id == user.id assert group.members == [user]
def create(request): """Respond to a submission of the create group form.""" if request.authenticated_userid is None: raise exc.HTTPNotFound() form = _group_form(request) try: appstruct = form.validate(request.POST.items()) except deform.ValidationFailure: return {'form': form.render()} group = models.Group( name=appstruct["name"], creator=request.authenticated_user) request.db.add(group) # We need to flush the db session here so that group.id will be generated. request.db.flush() _send_group_notification(request, 'group-join', group.pubid) url = request.route_url('group_read', pubid=group.pubid, slug=group.slug) return exc.HTTPSeeOther(url)
def test_init_sets_given_attributes(): group = models.Group(name='My group', authority='example.com') assert group.name == 'My group' assert group.authority == 'example.com'
def test_it_returns_None_by_default_for_authority_provided_id(): group = models.Group(name="abcdefg") assert group.authority_provided_id is None
def test_it_raises_ValueError_if_invalid_authority_provided_id(authority_provided_id): group = models.Group(name="abcdefg") with pytest.raises(ValueError, match="authority_provided_id must only contain"): group.authority_provided_id = authority_provided_id
def test_it_allows_authority_provided_id_to_be_None(): group = models.Group(name="abcdefg") group.authority_provided_id = None
def test_it_raises_ValueError_if_authority_provided_id_too_long(): group = models.Group(name="abcdefg") with pytest.raises(ValueError, match="characters or fewer"): group.authority_provided_id = "a" * (AUTHORITY_PROVIDED_ID_MAX_LENGTH + 1)
def test_init_sets_given_attributes(): group = models.Group(name="My group", authority="example.com", enforce_scope=False) assert group.name == "My group" assert group.authority == "example.com" assert group.enforce_scope is False
def test_init_adds_creator_as_member(): creator = models.User() group = models.Group(creator=creator) assert creator in group.members
def test_public_group(): group = models.Group(readable_by=ReadableBy.world) assert group.is_public
def test_with_short_name(): """Should raise ValueError if name shorter than 4 characters.""" with pytest.raises(ValueError): models.Group(name="abc")
def test_with_long_name(): """Should raise ValueError if name longer than 25 characters.""" with pytest.raises(ValueError): models.Group(name="abcdefghijklmnopqrstuvwxyz")
def group(db_session, factories): """Add a new group to the db and return it.""" group_ = models.Group(name='test-group', creator=factories.User()) db_session.add(group_) group_.pubid = 'test-group' return group_
def test_non_public_group(): group = models.Group(readable_by=ReadableBy.members) assert not group.is_public
def test_with_short_name(factories): """Should raise ValueError if name shorter than 4 characters.""" with pytest.raises(ValueError): models.Group(name="abc", creator=factories.User())