summaryrefslogtreecommitdiff
path: root/tests/test_canary.py
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2023-01-21 08:45:21 -0800
committerJesse Morgan <jesse@jesterpm.net>2023-01-21 09:53:07 -0800
commit8ca299a9245d85bcdc9d487e9155a3b83ac8be13 (patch)
treed126a53a83e0c6f4f79657f02f8ac0d1de54b6d0 /tests/test_canary.py
parenteb2463efc093103a6ded46212f4b27ba1b0e8ae2 (diff)
Remove tabs
Diffstat (limited to 'tests/test_canary.py')
-rw-r--r--tests/test_canary.py164
1 files changed, 82 insertions, 82 deletions
diff --git a/tests/test_canary.py b/tests/test_canary.py
index d23f3fe..c0ba262 100644
--- a/tests/test_canary.py
+++ b/tests/test_canary.py
@@ -17,87 +17,87 @@ SERVER = "mail.example.com"
PASSWORD = "secret"
class TestCanary(unittest.TestCase):
- def setUp(self):
- self.db = mock.Mock(canarydb.CanaryDB)
- self.smtp = mock.Mock(smtplib.SMTP_SSL)
- self.canary = canary.Canary(self.db, self.smtp, FROM_ADDRESS)
- canary.emailutils.get_imap = mock.Mock()
- canary.emailutils.get_message = mock.Mock()
- canary.emailutils.get_mail_uids = mock.Mock()
- canary.emailutils.delete_message = mock.Mock()
- canary.emailutils.close = mock.Mock()
-
- def tearDown(self):
- pass
-
- def testChirp(self):
- # Setup Mock
- self.db.get_recipients_for_list.return_value = [USER_ADDRESS1, USER_ADDRESS2]
-
- # Test chirp
- self.canary.chirp(LIST_ADDRESS)
-
- # Assert DB updated
- self.db.get_recipients_for_list.assert_called_with(LIST_ADDRESS)
- self.db.ping.assert_has_calls( \
- [mock.call(LIST_ADDRESS, USER_ADDRESS1, mock.ANY, mock.ANY), \
- mock.call(LIST_ADDRESS, USER_ADDRESS2, mock.ANY, mock.ANY)])
- args = self.db.ping.call_args
- expectedSubject = "Canary Email " + args[0][3]
-
- # Assert emails were sent
- self.assertEqual(1, self.smtp.sendmail.call_count)
- args = self.smtp.sendmail.call_args[0]
- self.assertEqual(FROM_ADDRESS, args[0])
- self.assertEqual(LIST_ADDRESS, args[1])
- msg = email.message_from_string(args[2])
- self.assertEqual(FROM_ADDRESS, msg['From'])
- self.assertEqual(LIST_ADDRESS, msg['To'])
- self.assertEqual(expectedSubject, msg['Subject'])
-
- def testCheck(self):
- # Setup mocks
- expectedUUID = "1234-5678-9012-3456"
- self.db.get_accounts.return_value = [ \
- (LIST_ADDRESS, USER_ADDRESS1, SERVER, PASSWORD), \
- (LIST_ADDRESS, USER_ADDRESS2, SERVER, PASSWORD)]
- canary.emailutils.get_mail_uids.return_value = [1]
- canary.emailutils.get_message.return_value = {'Subject': "Canary Email " + expectedUUID}
-
- # Test check
- self.canary.check(LIST_ADDRESS)
-
- # Assert DB calls
- self.db.get_accounts.assert_called_with(LIST_ADDRESS)
- self.db.pong.assert_has_calls([ \
- mock.call(USER_ADDRESS1, mock.ANY, expectedUUID), \
- mock.call(USER_ADDRESS2, mock.ANY, expectedUUID)])
-
- # Assert mail calls
- canary.emailutils.get_imap.assert_has_calls([ \
- mock.call(SERVER, USER_ADDRESS1, PASSWORD), \
- mock.call(SERVER, USER_ADDRESS2, PASSWORD)])
- canary.emailutils.get_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
- canary.emailutils.delete_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
- canary.emailutils.close.assert_called_with(canary.emailutils.get_imap.return_value)
-
- def testDontDeleteOtherMail(self):
- # Setup mocks
- self.db.get_accounts.return_value = [(LIST_ADDRESS, USER_ADDRESS1, SERVER, PASSWORD)]
- canary.emailutils.get_mail_uids.return_value = [1]
- canary.emailutils.get_message.return_value = {'Subject': "Buy Our New Widget"}
-
- # Test check
- self.canary.check(LIST_ADDRESS)
-
- # Assert DB calls
- self.db.get_accounts.assert_called_with(LIST_ADDRESS)
- self.db.pong.assert_not_called()
-
- # Assert mail calls
- canary.emailutils.get_imap.assert_called_with(SERVER, USER_ADDRESS1, PASSWORD)
- canary.emailutils.get_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
- canary.emailutils.delete_message.assert_not_called()
- canary.emailutils.close.assert_called_with(canary.emailutils.get_imap.return_value)
+ def setUp(self):
+ self.db = mock.Mock(canarydb.CanaryDB)
+ self.smtp = mock.Mock(smtplib.SMTP_SSL)
+ self.canary = canary.Canary(self.db, self.smtp, FROM_ADDRESS)
+ canary.emailutils.get_imap = mock.Mock()
+ canary.emailutils.get_message = mock.Mock()
+ canary.emailutils.get_mail_uids = mock.Mock()
+ canary.emailutils.delete_message = mock.Mock()
+ canary.emailutils.close = mock.Mock()
+
+ def tearDown(self):
+ pass
+
+ def testChirp(self):
+ # Setup Mock
+ self.db.get_recipients_for_list.return_value = [USER_ADDRESS1, USER_ADDRESS2]
+
+ # Test chirp
+ self.canary.chirp(LIST_ADDRESS)
+
+ # Assert DB updated
+ self.db.get_recipients_for_list.assert_called_with(LIST_ADDRESS)
+ self.db.ping.assert_has_calls( \
+ [mock.call(LIST_ADDRESS, USER_ADDRESS1, mock.ANY, mock.ANY), \
+ mock.call(LIST_ADDRESS, USER_ADDRESS2, mock.ANY, mock.ANY)])
+ args = self.db.ping.call_args
+ expectedSubject = "Canary Email " + args[0][3]
+
+ # Assert emails were sent
+ self.assertEqual(1, self.smtp.sendmail.call_count)
+ args = self.smtp.sendmail.call_args[0]
+ self.assertEqual(FROM_ADDRESS, args[0])
+ self.assertEqual(LIST_ADDRESS, args[1])
+ msg = email.message_from_string(args[2])
+ self.assertEqual(FROM_ADDRESS, msg['From'])
+ self.assertEqual(LIST_ADDRESS, msg['To'])
+ self.assertEqual(expectedSubject, msg['Subject'])
+
+ def testCheck(self):
+ # Setup mocks
+ expectedUUID = "1234-5678-9012-3456"
+ self.db.get_accounts.return_value = [ \
+ (LIST_ADDRESS, USER_ADDRESS1, SERVER, PASSWORD), \
+ (LIST_ADDRESS, USER_ADDRESS2, SERVER, PASSWORD)]
+ canary.emailutils.get_mail_uids.return_value = [1]
+ canary.emailutils.get_message.return_value = {'Subject': "Canary Email " + expectedUUID}
+
+ # Test check
+ self.canary.check(LIST_ADDRESS)
+
+ # Assert DB calls
+ self.db.get_accounts.assert_called_with(LIST_ADDRESS)
+ self.db.pong.assert_has_calls([ \
+ mock.call(USER_ADDRESS1, mock.ANY, expectedUUID), \
+ mock.call(USER_ADDRESS2, mock.ANY, expectedUUID)])
+
+ # Assert mail calls
+ canary.emailutils.get_imap.assert_has_calls([ \
+ mock.call(SERVER, USER_ADDRESS1, PASSWORD), \
+ mock.call(SERVER, USER_ADDRESS2, PASSWORD)])
+ canary.emailutils.get_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
+ canary.emailutils.delete_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
+ canary.emailutils.close.assert_called_with(canary.emailutils.get_imap.return_value)
+
+ def testDontDeleteOtherMail(self):
+ # Setup mocks
+ self.db.get_accounts.return_value = [(LIST_ADDRESS, USER_ADDRESS1, SERVER, PASSWORD)]
+ canary.emailutils.get_mail_uids.return_value = [1]
+ canary.emailutils.get_message.return_value = {'Subject': "Buy Our New Widget"}
+
+ # Test check
+ self.canary.check(LIST_ADDRESS)
+
+ # Assert DB calls
+ self.db.get_accounts.assert_called_with(LIST_ADDRESS)
+ self.db.pong.assert_not_called()
+
+ # Assert mail calls
+ canary.emailutils.get_imap.assert_called_with(SERVER, USER_ADDRESS1, PASSWORD)
+ canary.emailutils.get_message.assert_called_with(canary.emailutils.get_imap.return_value, 1)
+ canary.emailutils.delete_message.assert_not_called()
+ canary.emailutils.close.assert_called_with(canary.emailutils.get_imap.return_value)