Example #1
0
 def test_invalid_check_digit(self):
     self.assertFalse(is_valid_isbn('0471958698'))
     self.assertFalse(is_valid_isbn('0 471 60695 1'))
     self.assertFalse(is_valid_isbn('0-470-84525-X'))
Example #2
0
def reactToAMQPMessage(req, UUID):
    """
    React to given (AMQP) message.

    This function is used by :mod:`edeposit.amqp.alephdaemon`. It works as
    highlevel wrapper for whole module.

    Example:
        >>> import aleph

        >>> request = aleph.SearchRequest(
        ...     aleph.ISBNQuery("80-251-0225-4")
        ... )
        >>> request
        SearchRequest(query=ISBNQuery(ISBN='80-251-0225-4', base='nkc'))

        >>> response = aleph.reactToAMQPMessage(request, "UUID")

        >>> response  # formated by hand for purposes of example
        SearchResult(
            records=[
                AlephRecord(
                    base='nkc',
                    library='NKC01',
                    docNumber=1492461,
                    xml='HERE IS WHOLE MARC OAI RECORD',
                    epublication=EPublication(
                        ISBN=['80-251-0225-4'],
                        nazev='Umění programování v UNIXu /',
                        podnazev='',
                        vazba='(bro\xc5\xbe.) :',
                        cena='K\xc4\x8d 590,00',
                        castDil='',
                        nazevCasti='',
                        nakladatelVydavatel='Computer Press,',
                        datumVydani='2004',
                        poradiVydani='1. vyd.',
                        zpracovatelZaznamu='BOA001',
                        format='23 cm',
                        url='',
                        mistoVydani='Brno :',
                        ISBNSouboruPublikaci=[],
                        autori=[
                            Author(
                                firstName='Eric S.',
                                lastName='Raymond',
                                title=''
                            )
                        ],
                        originaly=[
                            'Art of UNIX programming'
                        ],
                        internal_url=''
                    )
                )
            ]
        )

    Args:
        req (Request class): Any of the Request class from
                          :class:`aleph.datastructures.requests`.
        UUID (str): Unique ID of received message.

    Returns:
        Result class: Result of search in Aleph. \
                      See :mod:`aleph.datastructures.results` submodule.

    Raises:
        ValueError: If bad type of `req` structure is given.
    """
    if not _iiOfAny(req, REQUEST_TYPES):
        raise ValueError(
            "Unknown type of request: '" + str(type(req)) + "'!"
        )

    if _iiOfAny(req, CountRequest) and _iiOfAny(req.query, QUERY_TYPES):
        return req.query.getCountResult()

    elif _iiOfAny(req, SearchRequest) and _iiOfAny(req.query, QUERY_TYPES):
        return req.query.getSearchResult()

    elif _iiOfAny(req, ISBNValidationRequest):
        ISBN = req.ISBN

        if _iiOfAny(ISBN, ISBNQuery):
            ISBN = ISBN.ISBN

        return ISBNValidationResult(isbn.is_valid_isbn(ISBN))

    elif _iiOfAny(req, ExportRequest):
        export.exportEPublication(req.epublication)
        return ExportResult(req.epublication.ISBN)

    raise ValueError(
        "Unknown type of request: '" + str(type(req)) + "' or query: '" +
        str(type(req.query)) + "'!"
    )
Example #3
0
 def test_invalid_length(self):
     self.assertFalse(is_valid_isbn('123123978047005902'))
     self.assertFalse(is_valid_isbn(''))
     self.assertFalse(is_valid_isbn('978'))
Example #4
0
 def test_invalid_characters(self):
     self.assertFalse(is_valid_isbn('a471958697'))
     self.assertFalse(is_valid_isbn('047195869_'))
     self.assertFalse(is_valid_isbn('04719X8697'))
Example #5
0
 def test_valid_isbn(self):
     self.assertTrue(is_valid_isbn('0471958697'))
     self.assertTrue(is_valid_isbn('0 471 60695 2'))
     self.assertTrue(is_valid_isbn('0-470-84525-2'))
     self.assertTrue(is_valid_isbn('0-321-14653-0'))
     self.assertTrue(is_valid_isbn('0-821-14653-X'))
Example #6
0
 def test_invalid_check_digit(self):
     self.assertFalse(is_valid_isbn('9780470059020'))
     self.assertFalse(is_valid_isbn('978 0 471 48648 1'))
Example #7
0
 def test_invalid_characters(self):
     self.assertFalse(is_valid_isbn('a780470059029'))
     self.assertFalse(is_valid_isbn('978047005902_'))
     self.assertFalse(is_valid_isbn('978+0470059029'))
     self.assertFalse(is_valid_isbn('978047005902_9'))
Example #8
0
 def test_invalid_length(self):
     self.assertFalse(is_valid_isbn('978047005902'))
     self.assertFalse(is_valid_isbn(''))
     self.assertFalse(is_valid_isbn('978-0596809485-123123'))
Example #9
0
 def test_valid_isbn(self):
     self.assertTrue(is_valid_isbn('9780470059029'))
     self.assertTrue(is_valid_isbn('978 0 471 48648 0'))
     self.assertTrue(is_valid_isbn('978-0596809485'))
     self.assertTrue(is_valid_isbn('978-0-13-149505-0'))
     self.assertTrue(is_valid_isbn('978-0-262-13472-9'))