예제 #1
0
    def test_hydrate(self):
        # note = Note.objects.get(pk=1)

        bundle_1 = Bundle(data={
            'datetime': '2010-05-12 10:36:28',
        })
        field_1 = DateTimeField(attribute='created')
        field_1.instance_name = 'datetime'
        self.assertEqual(field_1.hydrate(bundle_1), aware_datetime(2010, 5, 12, 10, 36, 28))

        bundle_2 = Bundle()
        field_2 = DateTimeField(default=aware_datetime(2010, 4, 1, 2, 0))
        field_2.instance_name = 'datetime'
        self.assertEqual(field_2.hydrate(bundle_2), aware_datetime(2010, 4, 1, 2, 0))

        bundle_3 = Bundle(data={
            'datetime': 'Tue, 30 Mar 2010 20:05:00 -0500',
        })
        field_3 = DateTimeField(attribute='created_string')
        field_3.instance_name = 'datetime'
        self.assertEqual(field_3.hydrate(bundle_3), aware_datetime(2010, 3, 30, 20, 5, tzinfo=tzoffset(None, -18000)))

        bundle_4 = Bundle(data={
            'datetime': None,
        })
        field_4 = DateField(attribute='created', null=True)
        field_4.instance_name = 'datetime'
        self.assertEqual(field_4.hydrate(bundle_4), None)
예제 #2
0
파일: api.py 프로젝트: chenghz4/driverdata
class ExportJobResource(ModelResource):
    query = ToOneField('dds.api.QueryResource', attribute='query')
    requested = DateTimeField('requested', readonly=True, default=now)
    begin = DateTimeField('begin', readonly=True, null=True, blank=True)
    end = DateTimeField('end', readonly=True, null=True, blank=True)
    download_link = CharField('get_indirect_link', readonly=True, blank=True)
    filename = CharField('export_filename',
                         readonly=True,
                         blank=True,
                         null=True)

    class Meta:
        queryset = ExportJob.objects.all()
        authentication = SessionAuthentication()
        authorization = OwnedOnlyAuthorization()

    def apply_authorization_limits(self, request, object_list):
        return object_list.filter(query__account=request.user.account)

    def obj_create(self, bundle, **kwargs):
        result = super(ExportJobResource, self).obj_create(bundle, **kwargs)
        if result.obj.query.account != bundle.request.user.account:
            raise Unauthorized("Can't attach to a query that is not yours")
        return result

    def obj_get_list(self, bundle, **kwargs):
        return [
            f for f in super(ExportJobResource, self).obj_get_list(
                bundle, **kwargs)
            if f.query.account == bundle.request.user.account
        ]

    def obj_get(self, bundle, **kwargs):
        result = super(ExportJobResource, self).obj_get(bundle, **kwargs)
        if result.query.account != bundle.request.user.account:
            raise Unauthorized("Forbidden")
        return result
예제 #3
0
    def test_dehydrate(self):
        note = Note.objects.get(pk=1)
        bundle = Bundle(obj=note)

        field_1 = DateTimeField(attribute='created')
        self.assertEqual(field_1.dehydrate(bundle), aware_datetime(2010, 3, 30, 20, 5))

        field_2 = DateTimeField(default=aware_datetime(2010, 4, 1, 1, 7))
        self.assertEqual(field_2.dehydrate(bundle), aware_datetime(2010, 4, 1, 1, 7))

        note.created_string = '2010-04-02 01:11:00'
        field_3 = DateTimeField(attribute='created_string')
        self.assertEqual(field_3.dehydrate(bundle), aware_datetime(2010, 4, 2, 1, 11))
예제 #4
0
파일: resources.py 프로젝트: ekr/ietfdb
class MeetingResource(ModelResource):
    type = ToOneField(MeetingTypeNameResource, 'type')
    agenda = ToOneField('ietf.meeting.resources.ScheduleResource',
                        'agenda',
                        null=True)
    updated = DateTimeField(attribute='updated')

    class Meta:
        cache = SimpleCache()
        queryset = Meeting.objects.all()
        serializer = api.Serializer()
        #resource_name = 'meeting'
        filtering = {
            "id": ALL,
            "number": ALL,
            "date": ALL,
            "city": ALL,
            "country": ALL,
            "time_zone": ALL,
            "idsubmit_cutoff_day_offset_00": ALL,
            "idsubmit_cutoff_day_offset_01": ALL,
            "idsubmit_cutoff_time_utc": ALL,
            "idsubmit_cutoff_warning_days": ALL,
            "submission_start_day_offset": ALL,
            "submmission_cutoff_day_offset": ALL,
            "submission_correction_day_offset": ALL,
            "venue_name": ALL,
            "venue_addr": ALL,
            "break_area": ALL,
            "reg_area": ALL,
            "agenda_note": ALL,
            "session_request_lock_message": ALL,
            "type": ALL_WITH_RELATIONS,
            "agenda": ALL_WITH_RELATIONS,
            "proceedings_final": ALL,
        }
예제 #5
0
class TimestampResourceMixin(ModelResource):
    created = DateTimeField(attribute='created', readonly=True)
    updated = DateTimeField(attribute='updated', readonly=True)