def test_get_delivery_setting_digest(self):
        'Test that a digest setting works'
        MockGUEQ = self.set_setting('digest')

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_delivery_setting()

        self.assertEqual(1, MockGUEQ.get_groupEmailSetting.call_count)
        self.assertEqual(GroupEmailSetting.digest, r)
    def test_get_delivery_setting_webonly(self):
        'Test that a web-only setting works'
        MockGUEQ = self.set_setting('webonly')

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_delivery_setting()

        self.assertEqual(1, MockGUEQ.get_groupEmailSetting.call_count)
        self.assertEqual(GroupEmailSetting.webonly, r)
    def test_set_webonly(self):
        MockGUEQ = GroupUserEmailQuery
        MockGUEQ.__init__ = MagicMock(return_value=None)
        MockGUEQ.set_groupEmailSetting = MagicMock()

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        groupEmailUser.set_webonly()

        MockGUEQ.set_groupEmailSetting.assert_called_once_with('webonly')
    def test_get_addresses_specific(self):
        'Test that get_addresses returns the specific addresses'
        MockGUEQ = self.set_setting('asdfasdf')
        specificAddresses = ['*****@*****.**']
        MockGUEQ.get_groupUserEmail = \
            MagicMock(return_value=specificAddresses)

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_addresses()
        self.assertEqual(specificAddresses, r)
    def test_get_delivery_setting_default(self):
        'Test that the "default" delivery setting works'
        MockGUEQ = self.set_setting('asdfasdfasdf')
        MockGUEQ.get_groupUserEmail = MagicMock(return_value=[])

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_delivery_setting()

        self.assertEqual(1, MockGUEQ.get_groupEmailSetting.call_count)
        self.assertEqual(GroupEmailSetting.default, r)
    def test_get_delivery_setting_specific(self):
        'Test that the group-specific delivery setting works.'
        MockGUEQ = self.set_setting('asdfasdfasdf')
        MockGUEQ.get_groupUserEmail = \
            MagicMock(return_value=['*****@*****.**'])

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_delivery_setting()

        self.assertEqual(1, MockGUEQ.get_groupEmailSetting.call_count)
        self.assertEqual(GroupEmailSetting.specific, r)
    def test_set_default_delivery_no_specific_email(self):
        'Test set_default_delivery with the default email addresses'
        MockGUEQ = self.set_setting('asdfasdf')
        MockGUEQ.get_groupUserEmail = MagicMock(return_value=[])
        MockGUEQ.remove_groupUserEmail = MagicMock()
        MockGUEQ.clear_groupEmailSetting = MagicMock()

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        groupEmailUser.set_default_delivery()

        MockGUEQ.clear_groupEmailSetting.assert_called_once_with()
        self.assertEqual(0, MockGUEQ.remove_groupUserEmail.call_count)
    def test_get_addresses_default(self):
        'Test that get_addresses returns the default addresses'
        MockGUEQ = self.set_setting('asdfasdf')
        defaultAddresses = ['*****@*****.**']
        MockGUEQ.get_groupUserEmail = MagicMock(return_value=[])
        MockGUEQ.get_addresses = MagicMock(return_value=defaultAddresses)

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        r = groupEmailUser.get_addresses()
        self.assertEqual(defaultAddresses, r)
        MockGUEQ.get_addresses.assert_called_once_with(preferredOnly=True,
                                                       verifiedOnly=False)
    def test_set_default_delivery_specific_email(self):
        'Test set_default_delivery with the specific email addresses'
        MockGUEQ = self.set_setting('asdfasdf')
        MockGUEQ.get_groupUserEmail = \
            MagicMock(return_value=['*****@*****.**'])
        MockGUEQ.remove_groupUserEmail = MagicMock()
        MockGUEQ.clear_groupEmailSetting = MagicMock()

        groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
        groupEmailUser.set_default_delivery()

        MockGUEQ.clear_groupEmailSetting.assert_called_once_with()
        MockGUEQ.remove_groupUserEmail.assert_called_once_with('*****@*****.**')
 def test_get_addresses_webonly(self):
     'Test that get_addresses returns the default when it should'
     self.set_setting('webonly')
     groupEmailUser = GroupEmailUser(self.fauxUser, self.fauxGroup)
     r = groupEmailUser.get_addresses()
     self.assertEqual([], r)