예제 #1
0
파일: views_test.py 프로젝트: jasdeep/h
def test_notifications_with_invalid_data_returns_form():
    request = DummyRequest(post={})
    controller = NotificationsController(request)
    controller.form = invalid_form()

    result = controller.notifications()

    assert 'form' in result
예제 #2
0
def test_notifications_with_invalid_data_returns_form():
    request = DummyRequest(post={})
    controller = NotificationsController(request)
    controller.form = invalid_form()

    result = controller.notifications()

    assert 'form' in result
예제 #3
0
def test_notifications_with_invalid_data_returns_form(authn_policy):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = 'jerry'
    controller = NotificationsController(request)
    controller.form = invalid_form()

    result = controller.notifications()

    assert 'form' in result
예제 #4
0
파일: views_test.py 프로젝트: jasdeep/h
def test_notifications_form_with_valid_data_redirects(authn_policy,
                                                      subscriptions_model):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = 'fiona'
    subscriptions_model.get_subscriptions_for_uri.return_value = []
    controller = NotificationsController(request)
    controller.form = form_validating_to({})

    result = controller.notifications()

    assert isinstance(result, httpexceptions.HTTPFound)
예제 #5
0
def test_notifications_form_with_valid_data_redirects(authn_policy,
                                                      subscriptions_model):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = 'fiona'
    subscriptions_model.get_subscriptions_for_uri.return_value = []
    controller = NotificationsController(request)
    controller.form = form_validating_to({})

    result = controller.notifications()

    assert isinstance(result, httpexceptions.HTTPFound)
예제 #6
0
파일: views_test.py 프로젝트: jasdeep/h
def test_notifications_form_sets_subscriptions_data_in_form(authn_policy,
                                                            subscriptions_model):
    request = DummyRequest()
    authn_policy.authenticated_userid.return_value = 'fiona'
    subscriptions_model.get_subscriptions_for_uri.return_value = [
        FakeSubscription('reply', True),
        FakeSubscription('foo', False),
    ]
    controller = NotificationsController(request)
    controller.form = form_validating_to({})

    controller.notifications_form()

    controller.form.set_appstruct.assert_called_once_with({
        'notifications': set(['reply']),
    })
예제 #7
0
def test_notifications_form_sets_subscriptions_data_in_form(authn_policy,
                                                            subscriptions_model):
    request = DummyRequest()
    authn_policy.authenticated_userid.return_value = 'fiona'
    subscriptions_model.get_subscriptions_for_uri.return_value = [
        FakeSubscription('reply', True),
        FakeSubscription('foo', False),
    ]
    controller = NotificationsController(request)
    controller.form = form_validating_to({})

    controller.notifications_form()

    controller.form.set_appstruct.assert_called_once_with({
        'notifications': set(['reply']),
    })
예제 #8
0
파일: views_test.py 프로젝트: jasdeep/h
def test_notifications_form_with_valid_data_updates_subscriptions(authn_policy,
                                                                  subscriptions_model):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = 'fiona'
    subs = [
        FakeSubscription('reply', True),
        FakeSubscription('foo', False),
    ]
    subscriptions_model.get_subscriptions_for_uri.return_value = subs
    controller = NotificationsController(request)
    controller.form = form_validating_to({
        'notifications': set(['foo'])
    })

    controller.notifications()

    assert subs[0].active == False
    assert subs[1].active == True
예제 #9
0
def test_notifications_form_with_valid_data_updates_subscriptions(authn_policy,
                                                                  subscriptions_model):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = 'fiona'
    subs = [
        FakeSubscription('reply', True),
        FakeSubscription('foo', False),
    ]
    subscriptions_model.get_subscriptions_for_uri.return_value = subs
    controller = NotificationsController(request)
    controller.form = form_validating_to({
        'notifications': set(['foo'])
    })

    controller.notifications()

    assert subs[0].active == False
    assert subs[1].active == True
예제 #10
0
def test_notifications_404s_if_not_logged_in(authn_policy):
    request = DummyRequest(post={})
    authn_policy.authenticated_userid.return_value = None

    with pytest.raises(httpexceptions.HTTPNotFound):
        NotificationsController(request).notifications()