Пример #1
0
    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
Пример #4
0
    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
Пример #6
0
    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"}})