diff --git a/src/postorius/tests/mailman_api_tests/test_subscriptions.py b/src/postorius/tests/mailman_api_tests/test_subscriptions.py index ea87ba6..71738be 100644 --- a/src/postorius/tests/mailman_api_tests/test_subscriptions.py +++ b/src/postorius/tests/mailman_api_tests/test_subscriptions.py @@ -126,9 +126,8 @@ args=('moderate_subs.example.com', ))) self.assertHasSuccessMessage(response) - def test_subscribe_mod_then_open(self): - # The list is moderated when the subscription is requested, then the - # list is switched to open. + def test_subscribe_already_pending(self): + # The user tries to subscribe twice on a moderated list. self.client.login(username='testuser', password='pwd') response = self.client.post( reverse('list_subscribe', args=('moderate_subs.example.com', )), @@ -136,26 +135,14 @@ self.assertEqual(len(self.mod_list.members), 0) self.assertEqual(len(self.mod_list.requests), 1) self.assertHasSuccessMessage(response) - # Switch the list to 'open' - self.mod_list.settings['subscription_policy'] = 'open' - self.mod_list.settings.save() - self.assertEqual(self.mod_list.settings['subscription_policy'], 'open') - # Subscribe the user (they are now allowed to self-subscribe) - self.mod_list.subscribe('test@example.com') - # Login as the owner to accept the subscription - User.objects.create_user('testowner', 'owner@example.com', 'pwd') - self.mod_list.add_owner('owner@example.com') - self.client.logout() - self.client.login(username='testowner', password='pwd') - accept_url = reverse('handle_subscription_request', args=[ - 'moderate_subs.example.com', - self.mod_list.requests[0]['token'], 'accept']) - response = self.client.get(accept_url) - self.assertRedirects(response, - reverse('list_subscription_requests', - args=['moderate_subs.example.com'])) - message = self.assertHasSuccessMessage(response) - self.assertIn('Already subscribed', message) + # Try to subscribe a second time. + response = self.client.post( + reverse('list_subscribe', args=('moderate_subs.example.com', )), + {'email': 'test@example.com'}) + self.assertEqual(len(self.mod_list.members), 0) + self.assertEqual(len(self.mod_list.requests), 1) + message = self.assertHasErrorMessage(response) + self.assertIn('Subscription request already pending', message) def test_subscribe_with_name(self): owner = User.objects.create_user(