Exemplo n.º 1
0
 def test_prepare_subpreparer(self):
     subpreparer = FieldsPreparer(fields={
         'id': 'id',
         'data': 'data',
     })
     preparer = FieldsPreparer(fields={
         'flying': 'say',
         'wale': SubPreparer('moof.buried', subpreparer),
     })
     preped = preparer.prepare(self.obj_data)
Exemplo n.º 2
0
 def test_prepare_subsubpreparer(self):
     subsubpreparer = FieldsPreparer(fields={
         'really': 'yes',
     })
     subpreparer = FieldsPreparer(fields={
         'data': SubPreparer('data', subsubpreparer),
     })
     preparer = FieldsPreparer(fields={
         'wale': SubPreparer('moof.buried', subpreparer),
     })
     preped = preparer.prepare(self.obj_data)
     self.assertEqual(preped, {'wale': {'data': {'really': 'no'}}})
Exemplo n.º 3
0
 def test_prepare_collection_subpreparer(self):
     subpreparer = FieldsPreparer(fields={
         'name': 'name',
     })
     preparer = FieldsPreparer(fields={
         'who': CollectionSubPreparer('who', subpreparer),
     })
     preped = preparer.prepare(self.dict_data)
     self.assertEqual(preped, {'who': [
         {'name': 'Ford'},
         {'name': 'Arthur'},
         {'name': 'Beeblebrox'},
     ]})
Exemplo n.º 4
0
class TicketResource(DjangoResource):

    def __init__(self, *args, **kwargs):
        super(TicketResource, self).__init__(*args, **kwargs)

        self.http_methods.update({
            'issue': {
                'GET': 'issue',
            }
        })

        self.ticket_preparer = FieldsPreparer(fields={
            'record_locator': 'record_locator'
        })

    def prepare_tickets(self, tickets):
        locators = []
        for t in tickets:
            locators.append(self.ticket_preparer.prepare(t))

        data = {
            'locators': locators
        }
        return data


    @skip_prepare
    def issue(self, num_locators=1, zip_code=None):
        if self.request and 'num_locators' in self.request.GET:
            num_locators = self.request.GET.get('num_locators', 1)
            num_locators = int(num_locators)

        if self.request and 'zip' in self.request.GET:
            zip_code = self.request.GET.get('zip', '00000')

        tickets, _ = create_tickets(zip_code, num_locators)
        response = self.prepare_tickets(tickets)
        return response

    # Finally, extend the URLs
    @classmethod
    def urls(cls, name_prefix=None):
        urlpatterns = super(TicketResource, cls).urls(name_prefix=name_prefix)
        new = [
            url(
                r'^issue/', cls.as_view('issue'),
                name=cls.build_url_name('issue', name_prefix)),
        ] + urlpatterns
        return new
Exemplo n.º 5
0
class TicketResource(DjangoResource):
    def __init__(self, *args, **kwargs):
        super(TicketResource, self).__init__(*args, **kwargs)

        self.http_methods.update({'issue': {
            'GET': 'issue',
        }})

        self.ticket_preparer = FieldsPreparer(
            fields={'record_locator': 'record_locator'})

    def prepare_tickets(self, tickets):
        locators = []
        for t in tickets:
            locators.append(self.ticket_preparer.prepare(t))

        data = {'locators': locators}
        return data

    @skip_prepare
    def issue(self, num_locators=1, zip_code=None):
        if self.request and 'num_locators' in self.request.GET:
            num_locators = self.request.GET.get('num_locators', 1)
            num_locators = int(num_locators)

        if self.request and 'zip' in self.request.GET:
            zip_code = self.request.GET.get('zip', '00000')

        tickets, _ = create_tickets(zip_code, num_locators)
        response = self.prepare_tickets(tickets)
        return response

    # Finally, extend the URLs
    @classmethod
    def urls(cls, name_prefix=None):
        urlpatterns = super(TicketResource, cls).urls(name_prefix=name_prefix)
        return urlpatterns + patterns(
            '',
            url(r'^issue/',
                cls.as_view('issue'),
                name=cls.build_url_name('issue', name_prefix)),
        )
Exemplo n.º 6
0
 def test_prepare_simple(self):
     preparer = FieldsPreparer(fields={
         'flying': 'say',
     })
     preped = preparer.prepare(self.obj_data)
     self.assertEqual(preped, {'flying': 'what'})