blob: e61ea547e0d72a21f4c3bac4a9f429a6d74d9f49 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
=====
Rules
=====
Rules are applied to each message as part of a rule chain. Individual rules
simply return a boolean specifying whether the rule matches or not. Chain
links determine what happens when a rule matches.
All rules
=========
Rules are maintained in the configuration object as a dictionary mapping rule
names to rule objects.
>>> from zope.interface.verify import verifyObject
>>> from mailman.interfaces.rules import IRule
>>> for rule_name in sorted(config.rules):
... rule = config.rules[rule_name]
... print rule_name, verifyObject(IRule, rule)
administrivia True
any True
approved True
emergency True
implicit-dest True
loop True
max-recipients True
max-size True
moderation True
news-moderation True
no-subject True
non-member True
suspicious-header True
truth True
You can get a rule by name.
>>> rule = config.rules['emergency']
>>> verifyObject(IRule, rule)
True
Rule checks
===========
Individual rules can be checked to see if they match, by running the rule's
`check()` method. This returns a boolean indicating whether the rule was
matched or not.
>>> mlist = create_list('_xtest@example.com')
>>> msg = message_from_string("""\
... From: aperson@example.com
...
... An important message.
... """)
For example, the emergency rule just checks to see if the emergency flag is
set on the mailing list, and the message has not been pre-approved by the list
administrator.
>>> print rule.name
emergency
>>> mlist.emergency = False
>>> rule.check(mlist, msg, {})
False
>>> mlist.emergency = True
>>> rule.check(mlist, msg, {})
True
>>> rule.check(mlist, msg, dict(moderator_approved=True))
False
|