def test_post_with_invalid_data_returns_form(self, invalid_form, pyramid_config, pyramid_request): pyramid_request.POST = {} pyramid_config.testing_securitypolicy('jerry') controller = views.NotificationsController(pyramid_request) controller.form = invalid_form() result = controller.post() assert 'form' in result
def test_it_renders_form_if_user_has_email_address(self, factories, form_validating_to, pyramid_request): controller = views.NotificationsController(pyramid_request) controller.form = form_validating_to({}) pyramid_request.user = factories.User(username="******") result = controller.get() assert "form" in result assert result["user_has_email_address"] == pyramid_request.user.email
def test_it_does_not_render_form_if_user_has_no_email_address( self, factories, form_validating_to, pyramid_request): controller = views.NotificationsController(pyramid_request) controller.form = form_validating_to({}) pyramid_request.user = factories.User(username="******") pyramid_request.user.email = None result = controller.get() assert "form" not in result assert result["user_has_email_address"] is None
def test_post_with_valid_data_redirects(self, form_validating_to, pyramid_config, pyramid_request, subscriptions_model): pyramid_request.POST = {} pyramid_config.testing_securitypolicy('fiona') subscriptions_model.get_subscriptions_for_uri.return_value = [] controller = views.NotificationsController(pyramid_request) controller.form = form_validating_to({}) result = controller.post() assert isinstance(result, httpexceptions.HTTPFound)
def test_post_with_invalid_data_returns_form(self, factories, invalid_form, pyramid_config, pyramid_request): pyramid_request.POST = {} pyramid_request.user = factories.User(username="******") pyramid_request.user.email = None pyramid_config.testing_securitypolicy("jerry") controller = views.NotificationsController(pyramid_request) controller.form = invalid_form() result = controller.post() assert "form" not in result assert result["user_has_email_address"] is None
def test_post_with_valid_data_updates_subscriptions( self, form_validating_to, pyramid_config, pyramid_request, subscriptions_model ): pyramid_request.POST = {} pyramid_config.testing_securitypolicy("fiona") subs = [FakeSubscription("reply", True), FakeSubscription("foo", False)] subscriptions_model.get_subscriptions_for_uri.return_value = subs controller = views.NotificationsController(pyramid_request) controller.form = form_validating_to({"notifications": {"foo"}}) controller.post() assert subs[0].active is False assert subs[1].active is True
def test_get_sets_subscriptions_data_in_form(self, form_validating_to, pyramid_config, pyramid_request, subscriptions_model): pyramid_config.testing_securitypolicy("fiona") subscriptions_model.get_subscriptions_for_uri.return_value = [ FakeSubscription("reply", True), FakeSubscription("foo", False), ] controller = views.NotificationsController(pyramid_request) controller.form = form_validating_to({}) controller.get() controller.form.set_appstruct.assert_called_once_with( {"notifications": {"reply"}})