Projet

Général

Profil

0003-roles-ignore-roles-inactive-members-email-42428.patch

Benjamin Dauvergne, 07 juillet 2020 16:36

Télécharger (1,99 ko)

Voir les différences:

Subject: [PATCH 3/5] roles: ignore roles inactive members email (#42428)

 tests/test_role.py | 25 +++++++++++++++++++++++++
 wcs/roles.py       |  2 +-
 2 files changed, 26 insertions(+), 1 deletion(-)
tests/test_role.py
7 7
from wcs.qommon.storage import StorableObject
8 8
from wcs.roles import Role, get_user_roles
9 9

  
10
from quixote import get_publisher
11

  
10 12

  
11 13
def setup_module(module):
12 14
    pub = create_temporary_pub()
......
52 54
    Role(name='é1').store()
53 55
    Role(name='a1').store()
54 56
    assert [x[1] for x in get_user_roles()] == ['a1', 'é1', 'f1']
57

  
58

  
59
def test_get_emails():
60
    User = get_publisher().user_class
61
    User.wipe()
62
    Role.wipe()
63

  
64
    role = Role(name='role')
65
    role.emails_to_members = True
66
    role.store()
67

  
68
    users = []
69
    for i in range(2):
70
        user = User(name='John Doe %s' % i)
71
        user.email = 'john.doe.%s@example.com' % i
72
        user.add_roles([role.id])
73
        user.store()
74
        users.append(user)
75

  
76
    assert len(set(role.get_emails())) == 2
77
    users[-1].is_active = False
78
    users[-1].store()
79
    assert len(set(role.get_emails())) == 1
wcs/roles.py
72 72
        if not self.emails_to_members:
73 73
            return emails
74 74
        users_with_roles = get_publisher().user_class.get_users_with_role(self.id)
75
        emails.extend([x.email for x in users_with_roles if x.email])
75
        emails.extend([x.email for x in users_with_roles if x.email and x.is_active])
76 76
        return emails
77 77

  
78 78
    def is_internal(self):
79
-