paula.testing: test for finding txt files + minor bugfix
[paula/paual.testing.git] / paula.pasplugins / src / paula / pasplugins / tests / fake_subscribers.py
blobaec534bd9bdf39ab4495d7956498f0d192d09155
1 # Copyright (c) 2008 by Florian Friesdorf
3 # GNU Affero General Public License (AGPL)
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation; either version 3 of the
8 # License, or (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU Affero General Public License for more details.
15 # You should have received a copy of the GNU Affero General Public
16 # License along with this program. If not, see
17 # <http://www.gnu.org/licenses/>.
18 """
19 """
20 __author__ = "Florian Friesdorf <flo@chaoflow.net>"
21 __docformat__ = "plaintext"
23 from zope.app.authentication.interfaces import IPrincipalCreated
24 from zope.component import adapter, queryUtility
25 from zope.interface import Attribute, Interface, alsoProvides
26 from zope.security.interfaces import IGroupAwarePrincipal
28 from paula.pasplugins.tests.fake_pau_ap import FAKE_LOGIN
29 from paula.pau_addons.interfaces import IPropertyInterface
32 class IA(Interface):
33 email = Attribute(u'email')
34 realname = Attribute(u'realname')
36 class IB(Interface):
37 foo = Attribute(u'foo')
39 alsoProvides(IA, IPropertyInterface)
40 alsoProvides(IB, IPropertyInterface)
42 @adapter(IPrincipalCreated)
43 def setPropertiesForPrincipal(event):
44 """Put properties onto the principal
46 The properties are directly stored as attributes.
47 """
48 principal = event.principal
50 if principal.id == FAKE_LOGIN:
51 principal.email = u'foo@bar.com'
52 principal.realname = u'fake user'
53 principal.foo = u'foo value'
54 alsoProvides(principal, IA)
55 alsoProvides(principal, IB)
58 @adapter(IPrincipalCreated)
59 def setGroupsForPrincipal(event):
60 """Put groups onto the principal
61 """
62 principal = event.principal
63 if not IGroupAwarePrincipal.providedBy(principal):
64 return None
66 if principal.id == FAKE_LOGIN:
67 principal.groups.extend(['fakegroup1', 'fakegroup2'])