|
32 | 32 | from ietf.meeting.models import Session
|
33 | 33 | from ietf.nomcom.models import Volunteer, NomCom
|
34 | 34 | from ietf.nomcom.factories import NomComFactory, nomcom_kwargs_for_year
|
35 |
| -from ietf.person.factories import PersonFactory, random_faker |
36 |
| -from ietf.person.models import User |
| 35 | +from ietf.person.factories import PersonFactory, random_faker, EmailFactory |
| 36 | +from ietf.person.models import Email, User |
37 | 37 | from ietf.person.models import PersonalApiKey
|
38 | 38 | from ietf.stats.models import MeetingRegistration
|
39 | 39 | from ietf.utils.mail import outbox, get_payload_text
|
@@ -853,6 +853,28 @@ def test_group_aliases(self, mock):
|
853 | 853 | 405,
|
854 | 854 | )
|
855 | 855 |
|
| 856 | + @override_settings(APP_API_TOKENS={"ietf.api.views.active_email_list": ["valid-token"]}) |
| 857 | + def test_active_email_list(self): |
| 858 | + EmailFactory(active=True) # make sure there's at least one active email... |
| 859 | + EmailFactory(active=False) # ... and at least one non-active emai |
| 860 | + url = urlreverse("ietf.api.views.active_email_list") |
| 861 | + r = self.client.post(url, headers={}) |
| 862 | + self.assertEqual(r.status_code, 403) |
| 863 | + r = self.client.get(url, headers={}) |
| 864 | + self.assertEqual(r.status_code, 403) |
| 865 | + r = self.client.get(url, headers={"X-Api-Key": "not-the-valid-token"}) |
| 866 | + self.assertEqual(r.status_code, 403) |
| 867 | + r = self.client.post(url, headers={"X-Api-Key": "not-the-valid-token"}) |
| 868 | + self.assertEqual(r.status_code, 403) |
| 869 | + r = self.client.post(url, headers={"X-Api-Key": "valid-token"}) |
| 870 | + self.assertEqual(r.status_code, 405) |
| 871 | + r = self.client.get(url, headers={"X-Api-Key": "valid-token"}) |
| 872 | + self.assertEqual(r.status_code, 200) |
| 873 | + self.assertEqual(r.headers["Content-Type"], "application/json") |
| 874 | + result = json.loads(r.content) |
| 875 | + self.assertCountEqual(result.keys(), ["addresses"]) |
| 876 | + self.assertCountEqual(result["addresses"], Email.objects.filter(active=True).values_list("address", flat=True)) |
| 877 | + |
856 | 878 |
|
857 | 879 | class DirectAuthApiTests(TestCase):
|
858 | 880 |
|
|
0 commit comments