Пример #1
0
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>"
Пример #2
0
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"
Пример #3
0
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
Пример #4
0
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]
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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>"
Пример #8
0
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()
Пример #9
0
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]
Пример #10
0
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)
Пример #11
0
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'
Пример #12
0
def test_it_returns_None_by_default_for_authority_provided_id():
    group = models.Group(name="abcdefg")

    assert group.authority_provided_id is None
Пример #13
0
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
Пример #14
0
def test_it_allows_authority_provided_id_to_be_None():
    group = models.Group(name="abcdefg")

    group.authority_provided_id = None
Пример #15
0
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)
Пример #16
0
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
Пример #17
0
def test_init_adds_creator_as_member():
    creator = models.User()
    group = models.Group(creator=creator)

    assert creator in group.members
Пример #18
0
def test_public_group():
    group = models.Group(readable_by=ReadableBy.world)

    assert group.is_public
Пример #19
0
def test_with_short_name():
    """Should raise ValueError if name shorter than 4 characters."""
    with pytest.raises(ValueError):
        models.Group(name="abc")
Пример #20
0
def test_with_long_name():
    """Should raise ValueError if name longer than 25 characters."""
    with pytest.raises(ValueError):
        models.Group(name="abcdefghijklmnopqrstuvwxyz")
Пример #21
0
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_
Пример #22
0
def test_non_public_group():
    group = models.Group(readable_by=ReadableBy.members)

    assert not group.is_public
Пример #23
0
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())