Skip to content

Commit

Permalink
Merge pull request #88 from golnazads/master
Browse files Browse the repository at this point in the history
fixed for links from myads with params
  • Loading branch information
golnazads committed Jan 3, 2024
2 parents 412c407 + 78a1b2b commit b0b568e
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
42 changes: 41 additions & 1 deletion resolverway/tests/unittests/test_resolver_gateway.py
Expand Up @@ -182,7 +182,6 @@ def test_adsws_call(self):
self.assertEqual(account['hashed_client_id'], "013c1b1280353b3319133b9c528fb29ba998ae3b7af9b669166a786bc6796c9d")
self.assertEqual(account['hashed_user_id'], "ec43c30b9a81ed89765a2b8a04cac38925058eeacd5b5264389b1d4a7df2b28c")


def test_verify_url(self):
"""
Expand All @@ -196,5 +195,46 @@ def test_verify_url(self):
r = self.client.get('/link_gateway/1987gady.book.....B/ABSTRACT/https://dev.adsabs.harvard.edu/abs/1987gady.book.....B/ABSTRACT')
self.assertEqual(r.status_code, 302)

def test_url_with_params(self):
"""
:return:
"""
with mock.patch.object(self.current_app.client, 'get') as get_mock:
get_mock.return_value = mock_response = mock.Mock()
mock_response.status_code = 200
mock_response.headers = {
'content-type': 'application/json',
'content-length': '149',
}
mock_response.json.return_value = {"link": "verified"}

r = self.client.get('/link_gateway/2021evn..confE...1S/PRESENTATION/https://www.youtube.com/watch?v=NP0yvK2KK7I')
self.assertEqual(r.location, 'https://www.youtube.com/watch?v=NP0yvK2KK7I&')
self.assertEqual(r.status_code, 302)

def test_url_with_params_from_ads(self):
"""
:return:
"""
with mock.patch.object(self.current_app.client, 'get') as get_mock:
get_mock.return_value = mock_response = mock.Mock()
mock_response.status_code = 200
mock_response.headers = {
'content-type': 'application/json',
'content-length': '149',
}
mock_response.json.return_value = {
"service": "https://arxiv.org/abs/2308.16228",
"action": "redirect",
"link": "https://arxiv.org/abs/2308.16228",
"link_type": "ESOURCE|EPRINT_HTML",
}

r = self.client.get('/link_gateway/2023arXiv230816228G/EPRINT_HTML?utm_source=myads&utm_medium=email&utm_campaign=type:arxiv&utm_term=10444&utm_content=rank:3')
self.assertEqual(r.location, 'https://arxiv.org/abs/2308.16228')
self.assertEqual(r.status_code, 302)

if __name__ == '__main__':
unittest.main()
2 changes: 1 addition & 1 deletion resolverway/views.py
Expand Up @@ -310,7 +310,7 @@ def resolver(bibcode, link_type, url):
params = ''
for key, value in params_dict.items():
params += '%s=%s&' % (key, value)
if params:
if url and params:
url = "%s?%s" % (url, params)

return LinkRequest(bibcode, link_type, url=url).process_request()
Expand Down

0 comments on commit b0b568e

Please sign in to comment.