'Helper to watch/unwatch a question. Fails if called twice with
the same turn_on value.'

def _toggle_watch_question(self, event_type, user, turn_on=True):

    q = QuestionFactory()
    self.client.login(username=user.username, password='testpass')
    event_cls = (QuestionReplyEvent if (event_type == 'reply') else QuestionSolvedEvent)
    if turn_on:
        assert (not event_cls.is_notifying(user, q)), ('%s    should    not    be    notifying.' % event_cls.__name__)
    else:
        assert event_cls.is_notifying(user, q), ('%s    should    be    notifying.' % event_cls.__name__)
    url = ('questions.watch' if turn_on else 'questions.unwatch')
    data = ({'event_type': event_type} if turn_on else {})
    post(self.client, url, data, args=[q.id])
    if turn_on:
        assert event_cls.is_notifying(user, q), ('%s    should    be    notifying.' % event_cls.__name__)
    else:
        assert (not event_cls.is_notifying(user, q)), ('%s    should    not    be    notifying.' % event_cls.__name__)
    return q
