Skip to content

Commit 98afee8

Browse files
committed
refactor(tests/api): update tests to expect no notification emails on dataset approval and submission
- Modified test assertions in test_api.py to check that no notification emails are sent after dataset approval or submission. - Removed checks for email content, recipients, and related assertions from affected tests. Closes #447
1 parent 1a72148 commit 98afee8

File tree

2 files changed

+3
-91
lines changed

2 files changed

+3
-91
lines changed

archive_api/tests/test_api.py

Lines changed: 3 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -177,44 +177,7 @@ def test_client_post(self):
177177
self.assertEqual(status.HTTP_201_CREATED, response.status_code)
178178

179179
# Was the notification email sent?
180-
self.assertEqual(len(mail.outbox), 1)
181-
email = mail.outbox[0]
182-
183-
self.assertTrue(email.subject.startswith("[ngt-archive-test] Dataset Draft (NGT0004)"))
184-
self.assertTrue(email.body.find("""The dataset NGT0004:FooBarBaz has been saved as a draft in the NGEE-Tropics Archive, and can be viewed at http://testserver.
185-
186-
You can also login with your account credentials, select "Edit Drafts" and then click the "Edit" button for NGT0004:FooBarBaz.
187-
""") > 0)
188-
self.assertEqual(email.to, ['Merry Yuser <[email protected]>'])
189-
self.assertEqual(email.reply_to, ['NGEE Tropics Archive Test <ngeet-team@testserver>'] )
190-
191-
value = json.loads(response.content.decode('utf-8'))
192-
self.assertEqual(value['access_level'], '0')
193-
self.assertEqual(value['sites'], [])
194-
self.assertEqual(value['managed_by'], 'auser')
195-
self.assertEqual(value['end_date'], None)
196-
self.assertEqual(value['doe_funding_contract_numbers'], 'DE-AC02-05CH11231')
197-
self.assertEqual(value['funding_organizations'], None)
198-
self.assertEqual(value['description'], 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?')
199-
self.assertEqual(value['additional_access_information'], None)
200-
self.assertEqual(value['name'], 'FooBarBaz')
201-
self.assertEqual(value['modified_by'], 'auser')
202-
self.assertEqual(value['ngee_tropics_resources'], None)
203-
self.assertEqual(value['status'], str(DataSet.STATUS_DRAFT))
204-
self.assertEqual(value['doi'], None)
205-
self.assertEqual(value['plots'], [])
206-
self.assertEqual(value['contact'], None)
207-
self.assertEqual(value['reference'], None)
208-
self.assertEqual(value['variables'], [])
209-
self.assertEqual(value['additional_reference_information'], None)
210-
self.assertEqual(value['start_date'], None)
211-
self.assertEqual(value['acknowledgement'], None)
212-
self.assertEqual(value['status_comment'], None)
213-
self.assertEqual(value['submission_date'], None)
214-
self.assertEqual(value['qaqc_status'], None)
215-
self.assertEqual(value['authors'], ["http://testserver/api/v1/people/2/"])
216-
self.assertEqual(value['url'], 'http://testserver/api/v1/datasets/5/')
217-
self.assertEqual(value['qaqc_method_description'], None)
180+
self.assertEqual(len(mail.outbox), 0)
218181

219182
# The submit action should fail
220183
response = self.client.post('/api/v1/datasets/5/submit/')
@@ -491,30 +454,7 @@ def test_admin_approve_workflow(self):
491454
self.assertEqual({'detail': 'DataSet has been approved.', 'success': True}, value)
492455

493456
# Was the notification email sent?
494-
self.assertEqual(len(mail.outbox), 1)
495-
email = mail.outbox[0]
496-
497-
self.assertTrue(email.subject.startswith("[ngt-archive-test] Dataset Approved (NGT0001)"))
498-
self.assertTrue(email.body.find("""The dataset NGT0001:Data Set 2 created on 10/28/2016 has been approved
499-
for release and is now published. You are receiving this email because you either submitted
500-
this dataset or are listed as a contact.
501-
502-
This confirmation message is being sent to the dataset manager who requested publication and,
503-
if applicable, also to the listed dataset contact. There is no further action required at this time.
504-
505-
*** PLEASE NOTE that this dataset will also be synchronized to the ESS-DIVE data repository for
506-
long-term preservation. You might receive messages from ESS-DIVE related to your dataset, but
507-
there is no action required based on those requests. This synchronization is managed by the
508-
NGEE-Tropics data team, who will reach out to you if more information is needed. ***
509-
""") > 0)
510-
self.assertEqual(email.to, ['Merry Yuser <[email protected]>'])
511-
self.assertEqual(email.reply_to, ['NGEE Tropics Archive Test <ngeet-team@testserver>'])
512-
import copy
513-
cc_emails = ['NGEE Tropics Archive Test <ngeet-team@testserver>']
514-
cc_emails.append('Cisco Ramon <[email protected]>')
515-
print(email.cc)
516-
print(cc_emails)
517-
self.assertEqual(email.cc, cc_emails)
457+
self.assertEqual(len(mail.outbox), 0)
518458

519459
# Validate that a publication date was set
520460
response = self.client.get("/api/v1/datasets/2/")
@@ -653,31 +593,11 @@ def test_upload(self):
653593

654594
#########################################################################
655595
# NGT User may not SUBMIT a dataset in DRAFT mode if they owne it
656-
outbox_len = len(mail.outbox)
657596
response = self.client.get("/api/v1/datasets/1/submit/") # In draft mode, owned by auser
658597
value = json.loads(response.content.decode('utf-8'))
659598
self.assertEqual(status.HTTP_200_OK, response.status_code)
660599
self.assertEqual({'detail': 'DataSet has been submitted.', 'success': True}, value)
661-
self.assertEqual(outbox_len + 1, len(mail.outbox)) # notification emails sent
662-
email = mail.outbox[0]
663-
self.assertTrue(email.subject.startswith("[ngt-archive-test] Dataset Submitted (NGT0000)"))
664-
self.assertTrue(email.body.find("""The dataset NGT0000:Data Set 1 created on 10/28/2016 has been
665-
submitted to the NGEE-Tropics Archive.
666-
667-
We will start the review and publication processes for the dataset. As soon as the dataset has been approved,
668-
or in case we have any clarifying questions, you will be notified by email.
669-
""") > 0)
670-
self.assertEqual(email.to, ['Merry Yuser <[email protected]>'])
671-
672-
response = self.client.get("/api/v1/datasets/1/")
673-
self.assertContains(response, '"version":"1.0"')
674-
675-
response = self.client.get('/api/v1/datasets/1/archive/')
676-
self.assertContains(response, '')
677-
self.assertTrue("Content-length" in response)
678-
self.assertEqual(response["Content-length"], '17609')
679-
self.assertTrue("Content-Disposition" in response)
680-
self.assertTrue("attachment; filename=valid_upload_" in response['Content-Disposition'])
600+
self.assertEqual(0 , len(mail.outbox)) # notification emails sent
681601

682602
import os
683603
shutil.rmtree(os.path.join(settings.ARCHIVE_API['DATASET_ARCHIVE_ROOT'], "0000"))

archive_api/viewsets.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
from archive_api.serializers import DataSetSerializer, MeasurementVariableSerializer, \
3131
SiteSerializer, PersonSerializer, \
3232
PlotSerializer
33-
from archive_api.signals import dataset_status_change
3433

3534
# import the logging library
3635
import logging
@@ -100,10 +99,6 @@ def perform_create(self, serializer):
10099
if self.request.user.is_authenticated and serializer.is_valid():
101100
instance = serializer.save(managed_by=self.request.user, modified_by=self.request.user)
102101

103-
# Send signal for the status change
104-
dataset_status_change.send(sender=self.__class__, request=self.request,
105-
user=self.request.user,
106-
instance=instance, original_status=None)
107102

108103
def perform_update(self, serializer):
109104
"""
@@ -284,9 +279,6 @@ def change_status(self, request, status):
284279
dataset.refresh_from_db()
285280

286281
dataset.refresh_from_db()
287-
# Send the signal for the status change
288-
dataset_status_change.send(sender=self.__class__, request=request, user=request.user,
289-
instance=dataset, original_status=original_status)
290282

291283
def get_queryset(self, ):
292284
"""

0 commit comments

Comments
 (0)