Ejemplo n.º 1
0
    def test_raises_not_found_if_token_invalue(self, pyramid_request, token_serializer):
        from pyramid.exceptions import HTTPNotFound
        pyramid_request.matchdict = {'token': 'wibble'}
        token_serializer.loads.side_effect = ValueError('token invalid')

        with pytest.raises(HTTPNotFound):
            views.unsubscribe(pyramid_request)
Ejemplo n.º 2
0
    def test_raises_not_found_if_token_invalue(self, token_serializer):
        from pyramid.exceptions import HTTPNotFound
        request = DummyRequest(matchdict={'token': 'wibble'}, db=db.Session)
        token_serializer.loads.side_effect = ValueError('token invalid')

        with pytest.raises(HTTPNotFound):
            views.unsubscribe(request)
Ejemplo n.º 3
0
    def test_successfully_unsubscribes_user(self, subscriptions, token_serializer):
        sub1, _, _ = subscriptions
        request = DummyRequest(matchdict={'token': 'wibble'}, db=db.Session)
        token_serializer.loads.return_value = {'type': 'reply', 'uri': 'acct:[email protected]'}

        views.unsubscribe(request)

        assert not sub1.active
Ejemplo n.º 4
0
    def test_successfully_unsubscribes_user(self, pyramid_request, subscriptions, token_serializer):
        sub1, _, _ = subscriptions
        pyramid_request.matchdict = {'token': 'wibble'}
        token_serializer.loads.return_value = {'type': 'reply', 'uri': 'acct:[email protected]'}

        views.unsubscribe(pyramid_request)

        assert not sub1.active
Ejemplo n.º 5
0
    def test_ignores_other_subscriptions(self, pyramid_request, subscriptions, token_serializer):
        _, sub2, sub3 = subscriptions
        pyramid_request.matchdict = {'token': 'wibble'}
        token_serializer.loads.return_value = {'type': 'reply', 'uri': 'acct:[email protected]'}

        views.unsubscribe(pyramid_request)

        assert sub2.active
        assert sub3.active
Ejemplo n.º 6
0
    def test_ignores_other_subscriptions(self, subscriptions, token_serializer):
        _, sub2, sub3 = subscriptions
        request = DummyRequest(matchdict={'token': 'wibble'}, db=db.Session)
        token_serializer.loads.return_value = {'type': 'reply', 'uri': 'acct:[email protected]'}

        views.unsubscribe(request)

        assert sub2.active
        assert sub3.active
Ejemplo n.º 7
0
def test_invalid_token(config):
    """It raises an error if an invalid token is provided """
    configure(config)
    request = DummyRequest()
    request.matchdict['token'] = 'foobar'

    from h.notification.views import unsubscribe
    with raises(ValueError) as excinfo:
        unsubscribe(request)

    assert str(excinfo.value) == 'Invalid signature'
Ejemplo n.º 8
0
def test_invalid_token(config):
    """It raises an error if an invalid token is provided """
    configure(config)
    request = DummyRequest()
    request.matchdict['token'] = 'foobar'

    from h.notification.views import unsubscribe
    with raises(ValueError) as excinfo:
        unsubscribe(request)

    assert str(excinfo.value) == 'Invalid signature'
Ejemplo n.º 9
0
    def test_successfully_unsubscribes_user(self, pyramid_request,
                                            subscriptions, token_serializer):
        sub1, _, _ = subscriptions
        pyramid_request.matchdict = {'token': 'wibble'}
        token_serializer.loads.return_value = {
            'type': 'reply',
            'uri': 'acct:[email protected]'
        }

        views.unsubscribe(pyramid_request)

        assert not sub1.active
Ejemplo n.º 10
0
    def test_ignores_other_subscriptions(self, pyramid_request, subscriptions,
                                         token_serializer):
        _, sub2, sub3 = subscriptions
        pyramid_request.matchdict = {'token': 'wibble'}
        token_serializer.loads.return_value = {
            'type': 'reply',
            'uri': 'acct:[email protected]'
        }

        views.unsubscribe(pyramid_request)

        assert sub2.active
        assert sub3.active
Ejemplo n.º 11
0
def test_idempotent_unsubscribe(config):
    """ if called a second time it should not update the model """
    configure(config)
    with patch('h.notification.models.Subscriptions'
               '.get_templates_for_uri_and_type') as mock_subs:
        mock_db = Mock(add=Mock())
        mock_subscription = Mock(active=False)

        mock_subs.return_value = [mock_subscription]

        request = _unsubscribe_request()
        request.db = mock_db

        from h.notification.views import unsubscribe
        unsubscribe(request)

        assert mock_subscription.active is False
        assert not mock_db.add.called
Ejemplo n.º 12
0
def test_successful_unsubscribe(config):
    """ ensure unsubscribe unsets the active flag on the subscription """
    configure(config)
    with patch('h.notification.models.Subscriptions'
               '.get_templates_for_uri_and_type') as mock_subs:
        mock_db = Mock(add=Mock())
        mock_subscription = Mock(active=True)

        mock_subs.return_value = [mock_subscription]

        request = _unsubscribe_request()
        request.db = mock_db

        from h.notification.views import unsubscribe
        unsubscribe(request)

        assert mock_subscription.active is False
        mock_db.add.assert_called_with(mock_subscription)
Ejemplo n.º 13
0
def test_idempotent_unsubscribe(config):
    """ if called a second time it should not update the model """
    configure(config)
    with patch('h.notification.models.Subscriptions'
               '.get_templates_for_uri_and_type') as mock_subs:
        mock_db = Mock(add=Mock())
        mock_subscription = Mock(active=False)

        mock_subs.return_value = [mock_subscription]

        request = _unsubscribe_request()
        request.db = mock_db

        from h.notification.views import unsubscribe
        unsubscribe(request)

        assert mock_subscription.active is False
        assert not mock_db.add.called
Ejemplo n.º 14
0
def test_successful_unsubscribe(config):
    """ ensure unsubscribe unsets the active flag on the subscription """
    configure(config)
    with patch('h.notification.models.Subscriptions'
               '.get_templates_for_uri_and_type') as mock_subs:
        mock_db = Mock(add=Mock())
        mock_subscription = Mock(active=True)

        mock_subs.return_value = [mock_subscription]

        request = _unsubscribe_request()
        request.db = mock_db

        from h.notification.views import unsubscribe
        unsubscribe(request)

        assert mock_subscription.active is False
        mock_db.add.assert_called_with(mock_subscription)
Ejemplo n.º 15
0
    def test_deserializes_token(self, token_serializer):
        request = DummyRequest(matchdict={'token': 'wibble'}, db=db.Session)

        views.unsubscribe(request)

        token_serializer.loads.assert_called_once_with('wibble')
Ejemplo n.º 16
0
    def test_deserializes_token(self, pyramid_request, token_serializer):
        pyramid_request.matchdict = {'token': 'wibble'}

        views.unsubscribe(pyramid_request)

        token_serializer.loads.assert_called_once_with('wibble')
Ejemplo n.º 17
0
    def test_deserializes_token(self, pyramid_request, token_serializer):
        pyramid_request.matchdict = {'token': 'wibble'}

        views.unsubscribe(pyramid_request)

        token_serializer.loads.assert_called_once_with('wibble')