class PermalinkHelperTest(TestCase): """ Checks helper functions. """ def setUp(self): self.helper = Permalink() self.qdct = QueryDict("", mutable=True) def test_make_permalink__resource_not_found(self): """ Checks permalink creation. """ qstring = "sid=FirstSearch%3AWorldCat&genre=journal&issn=0017-811X&eissn=2161-976X&title=Harvard+law+review.&date=1887&id=doi%3A&pid=<accession+number>1751808<%2Faccession+number><fssessid>0<%2Ffssessid>&url_ver=Z39.88-2004&rfr_id=info%3Asid%2Ffirstsearch.oclc.org%3AWorldCat&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&req_dat=<sessionid>0<%2Fsessionid>&rfe_dat=<accessionnumber>1751808<%2Faccessionnumber>&rft_id=info%3Aoclcnum%2F1751808&rft_id=urn%3AISSN%3A0017-811X&rft.jtitle=Harvard+law+review.&rft.issn=0017-811X&rft.eissn=2161-976X&rft.aucorp=Harvard+Law+Review+Publishing+Association.%3BHarvard+Law+Review+Association.&rft.place=Cambridge++Mass.&rft.pub=Harvard+Law+Review+Pub.+Association&rft.genre=journal&checksum=059306b04e1938ee38f852a498bea79e&title=Brown%20University&linktype=openurl&detail=RBN" qdct = {"rfr_id": "info:sid/firstsearch.oclc.org:WorldCat"} self.qdct.update(qdct) data_dct = self.helper.make_permalink( referrer=qdct.get("rfr_id", ""), qstring=qstring, scheme="https", host="the_host", path="/easyaccess/find/" ) self.assertEqual("https://the_host/easyaccess/find/permalink/B/", data_dct["permalink"]) self.assertEqual("info:sid/firstsearch.oclc.org:WorldCat", data_dct["referrer"]) self.assertEqual(qstring, data_dct["querystring"]) self.assertEqual(1, data_dct["resource_id"]) self.assertEqual("B", data_dct["permastring"]) self.assertEqual(1, baseconv.base62.to_decimal("B")) def test_make_permalink__resource_found(self): """ Checks permalink creation. """ rsc = Resource() rsc.query = "foo" rsc.referrer = "bar" rsc.save() good_qstring = "sid=FirstSearch%3AWorldCat&genre=journal&issn=0017-811X&eissn=2161-976X&title=Harvard+law+review.&date=1887&id=doi%3A&pid=<accession+number>1751808<%2Faccession+number><fssessid>0<%2Ffssessid>&url_ver=Z39.88-2004&rfr_id=info%3Asid%2Ffirstsearch.oclc.org%3AWorldCat&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&req_dat=<sessionid>0<%2Fsessionid>&rfe_dat=<accessionnumber>1751808<%2Faccessionnumber>&rft_id=info%3Aoclcnum%2F1751808&rft_id=urn%3AISSN%3A0017-811X&rft.jtitle=Harvard+law+review.&rft.issn=0017-811X&rft.eissn=2161-976X&rft.aucorp=Harvard+Law+Review+Publishing+Association.%3BHarvard+Law+Review+Association.&rft.place=Cambridge++Mass.&rft.pub=Harvard+Law+Review+Pub.+Association&rft.genre=journal&checksum=059306b04e1938ee38f852a498bea79e&title=Brown%20University&linktype=openurl&detail=RBN" good_referrer = "info:sid/firstsearch.oclc.org:WorldCat" rsc2 = Resource() rsc2.id = 12345678 rsc2.query = good_qstring rsc2.referrer = good_referrer rsc2.save() data_dct = self.helper.make_permalink( referrer=good_referrer, qstring=good_qstring, scheme="https", host="the_host", path="/easyaccess/find/" ) self.assertEqual("https://the_host/easyaccess/find/permalink/pnfq/", data_dct["permalink"]) self.assertEqual("info:sid/firstsearch.oclc.org:WorldCat", data_dct["referrer"]) self.assertEqual(good_qstring, data_dct["querystring"]) self.assertEqual(12345678, data_dct["resource_id"]) self.assertEqual("pnfq", data_dct["permastring"]) self.assertEqual(12345678, baseconv.base62.to_decimal("pnfq"))
def setUp(self): self.helper = Permalink() self.qdct = QueryDict("", mutable=True)