Source code for tests.resources

"""
    tests.resources
    ~~~~~~~~~~~~~~~

    Resources used for test purposes.

"""
# :copyright: (c) 2016-2020 by Nicholas Repole and contributors.
#             See AUTHORS for more details.
# :license: MIT - See LICENSE for more details.
from drowsy.resource import ModelResource
from .schemas import (
    AlbumCamelSchema, AlbumSchema, ArtistCamelSchema, ArtistSchema,
    CompositeOneSchema, CompositeOneCamelSchema, CompositeManySchema,
    CompositeManyCamelSchema, CompositeNodeCamelSchema, CompositeNodeSchema,
    CustomerCamelSchema, CustomerSchema, EmployeeCamelSchema, EmployeeSchema,
    GenreCamelSchema, GenreSchema, InvoiceLineCamelSchema, InvoiceLineSchema,
    InvoiceCamelSchema, InvoiceSchema, MediaTypeCamelSchema, MediaTypeSchema,
    NodeCamelSchema, NodeSchema, PlaylistCamelSchema, PlaylistSchema,
    TrackCamelSchema, TrackSchema, TrackStatsSchema
)


[docs] def page_max_100(resource): """Always returns 100 as the page max size.""" if resource is not None: return 100
[docs] class AlbumResource(ModelResource):
[docs] class Meta: schema_cls = AlbumSchema
[docs] class InvoiceLineResource(ModelResource):
[docs] class Meta: schema_cls = InvoiceLineSchema
[docs] class InvoiceResource(ModelResource):
[docs] class Meta: schema_cls = InvoiceSchema page_max_size = page_max_100 options = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
[docs] class EmployeeResource(ModelResource):
[docs] class Meta: schema_cls = EmployeeSchema error_messages = { "invalid_field": "Test invalid_field message." }
[docs] class CustomerResource(ModelResource):
[docs] class Meta: schema_cls = CustomerSchema
[docs] class PlaylistResource(ModelResource):
[docs] class Meta: schema_cls = PlaylistSchema
[docs] class MediaTypeResource(ModelResource):
[docs] class Meta: schema_cls = MediaTypeSchema
[docs] class GenreResource(ModelResource):
[docs] class Meta: schema_cls = GenreSchema
[docs] class TrackResource(ModelResource):
[docs] class Meta: schema_cls = TrackSchema
[docs] def get_required_filters(self, alias=None): model = alias or self.model if self.context.get("user") == "limited": # NOTE: Should split this out into a different test... filters = (model.track_id != 130, ) return filters elif self.context.get("user") == "limited_single_filter": filters = model.track_id != 130 return filters return None
[docs] class TrackStatsResource(ModelResource):
[docs] class Meta: schema_cls = TrackStatsSchema
[docs] class ArtistResource(ModelResource):
[docs] class Meta: schema_cls = ArtistSchema
[docs] class NodeResource(ModelResource):
[docs] class Meta: schema_cls = NodeSchema
[docs] class CompositeNodeResource(ModelResource):
[docs] class Meta: schema_cls = CompositeNodeSchema
[docs] class CompositeOneResource(ModelResource):
[docs] class Meta: schema_cls = CompositeOneSchema
[docs] class CompositeManyResource(ModelResource):
[docs] class Meta: schema_cls = CompositeManySchema
[docs] class AlbumCamelResource(ModelResource):
[docs] class Meta: schema_cls = AlbumCamelSchema
[docs] class InvoiceLineCamelResource(ModelResource):
[docs] class Meta: schema_cls = InvoiceLineCamelSchema
[docs] class InvoiceCamelResource(ModelResource):
[docs] class Meta: schema_cls = InvoiceCamelSchema page_max_size = page_max_100
[docs] class EmployeeCamelResource(ModelResource):
[docs] class Meta: schema_cls = EmployeeCamelSchema error_messages = { "invalid_field": "Test invalid_field message." }
[docs] class CustomerCamelResource(ModelResource):
[docs] class Meta: schema_cls = CustomerCamelSchema
[docs] class PlaylistCamelResource(ModelResource):
[docs] class Meta: schema_cls = PlaylistCamelSchema
[docs] class MediaTypeCamelResource(ModelResource):
[docs] class Meta: schema_cls = MediaTypeCamelSchema
[docs] class GenreCamelResource(ModelResource):
[docs] class Meta: schema_cls = GenreCamelSchema
[docs] class TrackCamelResource(ModelResource):
[docs] class Meta: schema_cls = TrackCamelSchema
[docs] class ArtistCamelResource(ModelResource):
[docs] class Meta: schema_cls = ArtistCamelSchema
[docs] class NodeCamelResource(ModelResource):
[docs] class Meta: schema_cls = NodeCamelSchema
[docs] class CompositeNodeCamelResource(ModelResource):
[docs] class Meta: schema_cls = CompositeNodeCamelSchema
[docs] class CompositeOneCamelResource(ModelResource):
[docs] class Meta: schema_cls = CompositeOneCamelSchema
[docs] class CompositeManyCamelResource(ModelResource):
[docs] class Meta: schema_cls = CompositeManyCamelSchema