def test__eagerload_includes__no_includes(self, mock_current_app, session, permission_user, sqlalchemy_data_layer): mock_current_app.config.get.return_value = None query = session.query(ModelWithMeta) qs = QueryStringManager({}, ModelWithMeta) result = PermissionPlugin._eagerload_includes(query, qs, permission_user, sqlalchemy_data_layer) assert result is query
def test__eagerload_includes__with_not_allowed_includes( self, mock_current_app, mock_get_joinedload_object_for_include, mock_is_access_foreign_key, session, permission_user, sqlalchemy_data_layer): mock_current_app.config.get.return_value = None query = session.query(ModelWithMeta) include = 'related_model_id' qs = QueryStringManager({'include': include}, ModelWithMeta) result = PermissionPlugin._eagerload_includes(query, qs, permission_user, sqlalchemy_data_layer) assert result is query mock_get_joinedload_object_for_include.assert_not_called()
def test_eagerload_includes__with_splitted_includes( self, mock_current_app, mock_get_joinedload_object_for_splitted_include, permission_user, sqlalchemy_data_layer): mock_current_app.config.get.return_value = None query = mock.Mock() include = 'foo.bar' qs = QueryStringManager({'include': include}, ModelWithMeta) result = PermissionPlugin._eagerload_includes(query, qs, permission_user, sqlalchemy_data_layer) mock_get_joinedload_object_for_splitted_include.assert_called_once_with( include, qs, permission_user, ModelWithMetaSchema, ModelWithMeta) query.options.assert_called_once_with( mock_get_joinedload_object_for_splitted_include.return_value) assert result == query.options.return_value