Esempio n. 1
0
def test_created_at_defaults_to_datetime(superuser, user, collection):
    """Test creation date."""
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)

    assert bool(permission.created_at)
    assert isinstance(permission.created_at, datetime)
Esempio n. 2
0
def test_get_by_id(superuser, user, collection):
    """Get permission by ID."""
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)

    retrieved = Permission.get_by_id(permission.id)
    assert retrieved == permission
Esempio n. 3
0
def test_adding_permissions(collection):
    """Grant a permission to a user."""
    user = UserFactory()
    user.save()
    permission = Permission(user=user, collection=collection)
    permission.save_as(user)

    assert permission in user.permissions
Esempio n. 4
0
def test_adding_permissions(superuser, user):
    """Add a permission on the collection."""
    collection = CollectionFactory()
    collection.save()
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)

    assert permission in collection.permissions
Esempio n. 5
0
def test_removing_permissions(collection):
    """Withdraw permission from a user."""
    user = UserFactory()
    user.save()
    permission = Permission(user=user, collection=collection)
    permission.save_as(user)
    permission.delete()

    assert permission not in user.permissions
Esempio n. 6
0
def test_removing_permissions(superuser, user):
    """Remove the permissions an a collection."""
    collection = CollectionFactory()
    collection.save()
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)
    permission.delete()

    assert permission not in collection.permissions
Esempio n. 7
0
def test_delete_all_by_user(db, user, superuser, collection):
    """Delete all permissions for a specific user."""
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)

    other_permission = PermissionFactory()
    db.session.commit()

    Permission.delete_all_by_user(user)
    permissions = Permission.query.all()
    assert permission not in permissions
    assert [other_permission] == permissions
Esempio n. 8
0
def test_modified_at_defaults_to_current_datetime(superuser, user, collection):
    """Test modified date."""
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)
    first_modified_at = permission.modified_at

    assert abs((first_modified_at - permission.created_at).total_seconds()) < 10

    permission.registrant = not permission.registrant
    permission.save()

    assert first_modified_at != permission.modified_at
Esempio n. 9
0
def test_created_by_and_modified_by_is_updated(superuser, user, collection):
    """Test created/modified by."""
    permission = Permission(user=user, collection=collection)
    permission.save_as(superuser)
    assert permission.created_by_id == superuser.id
    assert permission.created_by == superuser
    assert permission.modified_by_id == superuser.id
    assert permission.modified_by == superuser

    # Another superuser updates something in the permission.
    another_superuser = SuperUserFactory()
    permission.update_as(another_superuser, commit=True, cataloger=not permission.cataloger)
    assert permission.created_by == superuser
    assert permission.modified_by == another_superuser