From 55ee624a982fa2a6346873a7b93a7f129d522ba9 Mon Sep 17 00:00:00 2001 From: Kelly Lockhart <2926089+kelockhart@users.noreply.github.com> Date: Thu, 7 Mar 2024 18:00:19 -0500 Subject: [PATCH] Fixed myADS bug where data gets lost when notification is deactivated --- vault_service/tests/test_user.py | 23 +++++++++++++++++++++++ vault_service/views/user.py | 4 ---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/vault_service/tests/test_user.py b/vault_service/tests/test_user.py index 078cc78..3926999 100644 --- a/vault_service/tests/test_user.py +++ b/vault_service/tests/test_user.py @@ -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'}, diff --git a/vault_service/views/user.py b/vault_service/views/user.py index e1f569d..6cc04f8 100644 --- a/vault_service/views/user.py +++ b/vault_service/views/user.py @@ -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):