Skip to content

Commit

Permalink
Merge pull request #73 from kelockhart/myads-deactivate-fix
Browse files Browse the repository at this point in the history
Fixed myADS bug where data gets lost when notification is deactivated
  • Loading branch information
kelockhart committed Mar 7, 2024
2 parents 777687c + 55ee624 commit 2f49386
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
23 changes: 23 additions & 0 deletions vault_service/tests/test_user.py
Expand Up @@ -507,6 +507,29 @@ def test_template_query(self):
self.assertEqual(r.json[0]['data'], 'keyword1 OR keyword2 OR keyword3')
self.assertEqual(r.json[0]['classes'], ['astro-ph'])

# deactivate the notification and make sure everything else is kept
r = self.client.put(url_for('user.myads_notifications', myads_id=query_id),
headers={'Authorization': 'secret', 'X-Adsws-Uid': '4'},
data=json.dumps({'active': False}),
content_type='application/json')

self.assertEqual(r.json['name'], 'test query')
self.assertFalse(r.json['stateful'])
self.assertEqual(r.json['type'], 'template')
self.assertFalse(r.json['active'])
self.assertEqual(r.json['frequency'], 'daily')
self.assertEqual(r.json['template'], 'arxiv')
self.assertEqual(r.json['data'], 'keyword1 OR keyword2 OR keyword3')
self.assertEqual(r.json['classes'], ['astro-ph'])

r = self.client.put(url_for('user.myads_notifications', myads_id=query_id),
headers={'Authorization': 'secret', 'X-Adsws-Uid': '4'},
data=json.dumps({'active': True}),
content_type='application/json')

self.assertTrue(r.json['active'])
self.assertEqual(r.json['data'], 'keyword1 OR keyword2 OR keyword3')

# add a second query
r = self.client.post(url_for('user.myads_notifications'),
headers={'Authorization': 'secret', 'X-Adsws-Uid': '4'},
Expand Down
4 changes: 0 additions & 4 deletions vault_service/views/user.py
Expand Up @@ -451,10 +451,6 @@ def _edit_myads_notification(payload=None, headers=None, user_id=None, myads_id=
:param myads_id: ID of a single notification
:return: json, details of edited setup
"""
# handles both None values and empty strings
if not payload.get('data'):
payload['old_data'] = payload.get('data', None)
payload['data'] = None

# verify data/query
if payload.get('data', None):
Expand Down

0 comments on commit 2f49386

Please sign in to comment.