Ejemplo n.º 1
0
    def test_formatEdition_v2_reader_flag(self, testEdition, testWebpubItem):
        testEdition.items.append(testWebpubItem)

        formattedEdition = APIUtils.formatEdition(testEdition, reader='v2')

        assert len(formattedEdition['items']) == 2
        assert formattedEdition['items'][0]['item_id'] == 'it2'
        assert formattedEdition['items'][0]['links'][0]['mediaType'] ==\
            'application/webpub+json'
        assert formattedEdition['items'][1]['links'][0]['flags']['reader'] is\
            False
Ejemplo n.º 2
0
    def test_formatEdition_w_records(self, testEdition, mocker):
        mockRecFormat = mocker.patch.object(APIUtils, 'formatRecord')
        mockRecFormat.side_effect = [{
            'id': 1,
            'items': []
        }, {
            'id': 2,
            'items': ['it1']
        }]

        formattedEdition = APIUtils.formatEdition(testEdition,
                                                  editionWorkTitle=None,
                                                  editionWorkAuthors=None,
                                                  records=['rec1', 'rec2'],
                                                  showAll=False)

        assert len(formattedEdition['instances']) == 1
        assert formattedEdition['instances'][0]['id'] == 2
        assert formattedEdition.get('items', None) is None

        testItemDict = {
            'id':
            'it1',
            'links': [{
                'link_id': 'li1',
                'mediaType': 'application/epub+xml',
                'url': 'testURI',
                'flags': {
                    'test': True
                }
            }],
            'rights': [{
                'source': 'test',
                'license': 'testLicense',
                'rightsStatement': 'testStatement'
            }],
            'physical_location': {
                'name': 'test'
            },
            'item_id':
            'it1',
            'location':
            'test',
            'source':
            'hathitrust'
        }

        mockRecFormat.assert_has_calls([
            mocker.call('rec1', {'testURI': testItemDict}),
            mocker.call('rec2', {'testURI': testItemDict})
        ])
Ejemplo n.º 3
0
    def test_formatEdition_no_records(self, testEdition):
        formattedEdition = APIUtils.formatEdition(testEdition)

        assert formattedEdition['work_uuid'] == 'uuid1'
        assert formattedEdition['edition_id'] == 'ed1'
        assert formattedEdition['publication_date'] == 2000
        assert formattedEdition['links'][0]['link_id'] == 'co1'
        assert formattedEdition['links'][0]['mediaType'] == 'image/png'
        assert formattedEdition['links'][0]['url'] == 'testCover'
        assert formattedEdition['items'][0]['item_id'] == 'it1'
        assert formattedEdition['items'][0]['location'] == 'test'
        assert formattedEdition['items'][0]['links'][0]['link_id'] == 'li1'
        assert formattedEdition['items'][0]['links'][0]['mediaType'] ==\
            'application/epub+xml'
        assert formattedEdition['items'][0]['links'][0]['url'] == 'testURI'
        assert formattedEdition['items'][0]['links'][0]['flags']['test'] is\
            True
        assert formattedEdition['items'][0]['rights'][0]['source'] == 'test'
        assert formattedEdition['items'][0]['rights'][0]['license'] ==\
            'testLicense'
        assert formattedEdition['items'][0]['rights'][0]['rightsStatement'] ==\
            'testStatement'
        assert formattedEdition.get('instances', None) is None