class CommaSeparatedEmailFieldTests(TestCase): def setUp(self): self.field = CommaSeparatedEmailField(blank=True) def test_validate(self): """ Validate should run the email validator on all non-empty emails in the list. """ with patch('news.fields.validate_email') as validate_email: self.field.validate(' [email protected] ,[email protected] ', None) validate_email.assert_has_calls([ call('*****@*****.**'), call('*****@*****.**'), ]) validate_email.reset_mock() self.field.validate('*****@*****.**', None) validate_email.assert_has_calls([ call('*****@*****.**'), ]) validate_email.reset_mock() self.field.validate('', None) self.assertFalse(validate_email.called) def test_pre_save(self): """pre_save should remove unnecessary whitespace and commas.""" instance = Mock() self.field.attname = 'blah' # Basic instance.blah = '[email protected],[email protected]' self.assertEqual(self.field.pre_save(instance, False), '[email protected],[email protected]') # Excess whitespace instance.blah = ' [email protected] ,[email protected] ' self.assertEqual(self.field.pre_save(instance, False), '[email protected],[email protected]') # Extra commas instance.blah = '[email protected] ,,,, [email protected] ' self.assertEqual(self.field.pre_save(instance, False), '[email protected],[email protected]')
def setUp(self): self.field = CommaSeparatedEmailField(blank=True)