Ejemplo n.º 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>"
Ejemplo n.º 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"
Ejemplo n.º 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
Ejemplo n.º 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]
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 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>"
Ejemplo n.º 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()
Ejemplo n.º 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]
Ejemplo n.º 10
0
Archivo: views.py Proyecto: bZichett/h
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)
Ejemplo n.º 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'
Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 14
0
def test_it_allows_authority_provided_id_to_be_None():
    group = models.Group(name="abcdefg")

    group.authority_provided_id = None
Ejemplo n.º 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)
Ejemplo n.º 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
Ejemplo n.º 17
0
def test_init_adds_creator_as_member():
    creator = models.User()
    group = models.Group(creator=creator)

    assert creator in group.members
Ejemplo n.º 18
0
def test_public_group():
    group = models.Group(readable_by=ReadableBy.world)

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

    assert not group.is_public
Ejemplo n.º 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())