def test_get_users_by_group_by_collections_only_one_user_match(self): # with: # create librarian group and those members group_name = "Librarian" librarian_group = modelfactories.GroupFactory(name=group_name) librarian1 = auth.UserF(is_active=True) librarian2 = auth.UserF(is_active=True) librarian1.groups.add(librarian_group) librarian1.save() librarian2.groups.add(librarian_group) librarian2.save() # create col1. user: librarian1 belongs to it col1 = modelfactories.CollectionFactory.create() col1.add_user(librarian1) # create col2. without users. col2 = modelfactories.CollectionFactory.create() # when: users = get_users_by_group_by_collections(group_name, [col1, col2,]) # then: self.assertEqual(1, len(users)) self.assertIn(librarian1, users) self.assertNotIn(librarian2, users)
def test_get_users_by_group_by_collections_only_one_user_match(self): # with: # create librarian group and those members group_name = "Librarian" librarian_group = modelfactories.GroupFactory(name=group_name) librarian1 = auth.UserF(is_active=True) librarian2 = auth.UserF(is_active=True) librarian1.groups.add(librarian_group) librarian1.save() librarian2.groups.add(librarian_group) librarian2.save() # create col1. user: librarian1 belongs to it col1 = modelfactories.CollectionFactory.create() col1.add_user(librarian1) # create col2. without users. col2 = modelfactories.CollectionFactory.create() # when: users = get_users_by_group_by_collections(group_name, [ col1, col2, ]) # then: self.assertEqual(1, len(users)) self.assertIn(librarian1, users) self.assertNotIn(librarian2, users)
def set_bcc_recipients(self, member): """ recipients must belong to the same collection as member """ collections_of_board_member = member.board.issue.journal.collections.all() if collections_of_board_member: librarians = get_users_by_group_by_collections('Librarian', collections_of_board_member) else: logger.error("[BoardMembersMessage.set_bcc_recipients] Can't define the collection of member (pk: %s), to filter bcc_recipients" % member.pk) return if librarians: filtered_librarians = [librarian for librarian in librarians if user_receive_emails(librarian)] self.bcc_recipients = map(lambda u: u.email, filtered_librarians) else: logger.error("[BoardMembersMessage.set_bcc_recipients] Can't prepare a message, Can't retrieve a list of Librarian Users.")
def test_get_users_by_group_by_collections_NO_collections(self): # with: # create librarian group and those members group_name = "Librarian" librarian_group = modelfactories.GroupFactory(name=group_name) librarian1 = auth.UserF(is_active=True) librarian2 = auth.UserF(is_active=True) librarian1.groups.add(librarian_group) librarian1.save() librarian2.groups.add(librarian_group) librarian2.save() # collection list is an empty list # when: users = get_users_by_group_by_collections(group_name, []) # then: self.assertEqual(0, len(users)) self.assertNotIn(librarian1, users) self.assertNotIn(librarian2, users)
def set_bcc_recipients(self, member): """ recipients must belong to the same collection as member """ collections_of_board_member = member.board.issue.journal.collections.all( ) if collections_of_board_member: librarians = get_users_by_group_by_collections( 'Librarian', collections_of_board_member) else: logger.error( "[BoardMembersMessage.set_bcc_recipients] Can't define the collection of member (pk: %s), to filter bcc_recipients" % member.pk) return if librarians: filtered_librarians = [ librarian for librarian in librarians if user_receive_emails(librarian) ] self.bcc_recipients = map(lambda u: u.email, filtered_librarians) else: logger.error( "[BoardMembersMessage.set_bcc_recipients] Can't prepare a message, Can't retrieve a list of Librarian Users." )