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)
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
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
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
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
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
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
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
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