~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to MoinMoin/events/_tests/test_events.py

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mfrom: (0.9.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080622211713-fpo2zrq3s5dfecxg
Tags: 1.7.0-3
Simplify /etc/moin/wikilist format: "USER URL" (drop unneeded middle
CONFIG_DIR that was wrongly advertised as DATA_DIR).  Make
moin-mass-migrate handle both formats and warn about deprecation of
the old one.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: iso-8859-1 -*-
 
2
"""
 
3
    MoinMoin - tests for MoinMoin.events module
 
4
 
 
5
    @copyright: 2007 by Karol Nowak <grywacz@gmail.com>
 
6
    @license: GNU GPL, see COPYING for details.
 
7
"""
 
8
 
 
9
import py
 
10
 
 
11
import MoinMoin.events as events
 
12
import MoinMoin.events.notification as notification
 
13
import MoinMoin.events.jabbernotify as jabbernotify
 
14
from MoinMoin.Page import Page
 
15
from MoinMoin.user import User
 
16
 
 
17
def test_get_handlers(request):
 
18
    """Test if there are any event handlers. There should be some internal ones"""
 
19
 
 
20
    assert events.get_handlers(request.cfg)
 
21
 
 
22
def test_send_event(request):
 
23
    """Test if event handlers are called and if proper messages are returned"""
 
24
 
 
25
    py.test.skip('broken test - global state is changed somehow that test_GetVal looks broken')
 
26
    return_string = u"test_send_event"
 
27
 
 
28
    def event_handler(event):
 
29
        return notification.Failure("Just a test")
 
30
 
 
31
    request.cfg.event_handlers = [event_handler]
 
32
    event = events.Event(request)
 
33
 
 
34
    print "A proper event handler must be called and an 1-element list of results returned"
 
35
    results = events.send_event(event)
 
36
    assert issubclass(results[0].__class__, events.EventResult)
 
37
 
 
38
def test_subscribable_events(request):
 
39
    """Test if there are any subscribable events. There should be some."""
 
40
 
 
41
    print "There should be at least a few subscribable events!"
 
42
    assert events.get_subscribable_events()
 
43
 
 
44
def test_page_change_message(request):
 
45
    page = Page(request, "FrontPage")
 
46
 
 
47
    print "Provided with a dumb change type argument, this should raise an exception!"
 
48
    py.test.raises(notification.UnknownChangeType, notification.page_change_message,
 
49
                   "StupidType", request, page, "en", revisions=page.getRevList())
 
50
 
 
51
def test_user_created_event(request):
 
52
    py.test.skip("Test is wrong, because it assumes send_notification will be called - but if there is no superuser subscribed to UserCreatedEvent, then no notification needs to be sent.")
 
53
    class server_dummy:
 
54
        def __init__(self):
 
55
            self.sent = False
 
56
 
 
57
        def send_notification(self, *args):
 
58
            self.sent = True
 
59
 
 
60
    event = events.UserCreatedEvent(request, User(request))
 
61
    request.cfg.notification_server = server_dummy()
 
62
    request.cfg.secret = "dummy"
 
63
 
 
64
    jabbernotify.handle_user_created(event)
 
65
    assert request.cfg.notification_server.sent is True
 
66
 
 
67
def test_filter_subscriber_list(request):
 
68
    user = User(request)
 
69
    event = events.Event(request)
 
70
 
 
71
    print "User is subscribed to this event on jabber."
 
72
    print "This means, that he should stay on the list."
 
73
    user.jid = "user@example.com"
 
74
    user.jabber_subscribed_events = [events.Event.__name__]
 
75
    subscribers = {"en": [user]}
 
76
    notification.filter_subscriber_list(event, subscribers, True)
 
77
    assert subscribers["en"]
 
78
 
 
79
    print "User is not subscribed to this event on jabber."
 
80
    print "The list should be empty."
 
81
    user.jid = "user@example.com"
 
82
    user.jabber_subscribed_events = []
 
83
    subscribers = {"en": [user]}
 
84
    notification.filter_subscriber_list(event, subscribers, True)
 
85
    assert not subscribers["en"]
 
86
 
 
87
    print "User is subscribed to this event on email."
 
88
    print "This means, that he should stay on the list."
 
89
    user.email = "user@example.com"
 
90
    user.email_subscribed_events = [events.Event.__name__]
 
91
    subscribers = {"en": [user]}
 
92
    notification.filter_subscriber_list(event, subscribers, False)
 
93
    assert subscribers["en"]
 
94
 
 
95
    print "User is not subscribed to this event on email."
 
96
    print "The list should be empty."
 
97
    user.email = "user@example.com"
 
98
    user.email_subscribed_events = []
 
99
    subscribers = {"en": [user]}
 
100
    notification.filter_subscriber_list(event, subscribers, False)
 
101
    assert not subscribers["en"]
 
102
 
 
103
coverage_modules = ["MoinMoin.events"]