Beispiel #1
0
    def test_datastream_etag(self):
        rqst = Mock()
        # DC
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)

        # bogus dsid should not error
        etag = datastream_etag(rqst, self.obj.pid, 'bogus-datastream-id')
        self.assertEqual(None, etag)
Beispiel #2
0
    def test_datastream_etag(self):
        rqst = Mock()
        # DC
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)

        # bogus dsid should not error
        etag = datastream_etag(rqst, self.obj.pid, 'bogus-datastream-id')
        self.assertEqual(None, etag)
Beispiel #3
0
    def test_datastream_etag(self):
        rqst = Mock()
        rqst.META = {}
        # DC
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)

        # bogus dsid should not error
        etag = datastream_etag(rqst, self.obj.pid, 'bogus-datastream-id')
        self.assertEqual(None, etag)

        # range request 1 to end should return etag
        rqst.META = {'HTTP_RANGE': 'bytes=1-'}
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)
Beispiel #4
0
    def test_datastream_etag(self):
        rqst = Mock()
        rqst.META = {}
        # DC
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)

        # bogus dsid should not error
        etag = datastream_etag(rqst, self.obj.pid, 'bogus-datastream-id')
        self.assertEqual(None, etag)

        # range request 1 to end should return etag
        rqst.META = {'HTTP_RANGE': 'bytes=1-'}
        etag = datastream_etag(rqst, self.obj.pid, 'DC')
        self.assertEqual(self.obj.dc.checksum, etag)
Beispiel #5
0
def unapi_etag(request):
    'etag for unapi'
    item_id = request.GET.get('id', None)

    # if no id, just lists available formats
    if item_id is None:
        # configuration is based on Volume class definition, so should only
        # change if the file has changed
        return books_models_md5sum

    # metadata for a specific record
    else:
        fmt = request.GET.get('format', None)
        if fmt == 'rdf_dc':
            return datastream_etag(request, item_id, Volume.dc.id, type=Volume)
Beispiel #6
0
def unapi_etag(request):
    'etag for unapi'
    item_id = request.GET.get('id', None)

    # if no id, just lists available formats
    if item_id is None:
        # configuration is based on Volume class definition, so should only
        # change if the file has changed
        return books_models_md5sum

    # metadata for a specific record
    else:
        fmt = request.GET.get('format', None)
        if fmt == 'rdf_dc':
            return datastream_etag(request, item_id, Volume.dc.id, type=Volume)
Beispiel #7
0
def page_image_etag(request, pid, **kwargs):
    'etag for Page image datastream'
    return datastream_etag(request, pid, Page.image.id, type=Page)
Beispiel #8
0
def ocr_etag(request, pid):
    'etag for Volume OCR datastream'
    return datastream_etag(request, pid, VolumeV1_0.ocr.id)
Beispiel #9
0
def pdf_etag(request, pid):
    'etag for Volume PDF datastream'
    return datastream_etag(request, pid, Volume.pdf.id)
Beispiel #10
0
def page_image_etag(request, pid, **kwargs):
    'etag for Page image datastream'
    return datastream_etag(request, pid, Page.image.id, type=Page)
Beispiel #11
0
def ocr_etag(request, pid):
    'etag for Volume OCR datastream'
    return datastream_etag(request, pid, VolumeV1_0.ocr.id)
Beispiel #12
0
def pdf_etag(request, pid):
    'etag for Volume PDF datastream'
    return datastream_etag(request, pid, Volume.pdf.id)