Hide keyboard shortcuts

Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

"""Tests for certbot.notify.""" 

import socket 

import unittest 

 

import mock 

 

 

class NotifyTests(unittest.TestCase): 

"""Tests for the notifier.""" 

 

@mock.patch("certbot.notify.smtplib.LMTP") 

def test_smtp_success(self, mock_lmtp): 

from certbot.notify import notify 

lmtp_obj = mock.MagicMock() 

mock_lmtp.return_value = lmtp_obj 

self.assertTrue(notify("Goose", "auntrhody@example.com", 

"The old grey goose is dead.")) 

self.assertEqual(lmtp_obj.connect.call_count, 1) 

self.assertEqual(lmtp_obj.sendmail.call_count, 1) 

 

@mock.patch("certbot.notify.smtplib.LMTP") 

@mock.patch("certbot.notify.subprocess.Popen") 

def test_smtp_failure(self, mock_popen, mock_lmtp): 

from certbot.notify import notify 

lmtp_obj = mock.MagicMock() 

mock_lmtp.return_value = lmtp_obj 

lmtp_obj.sendmail.side_effect = socket.error(17) 

proc = mock.MagicMock() 

mock_popen.return_value = proc 

self.assertTrue(notify("Goose", "auntrhody@example.com", 

"The old grey goose is dead.")) 

self.assertEqual(lmtp_obj.sendmail.call_count, 1) 

self.assertEqual(proc.communicate.call_count, 1) 

 

@mock.patch("certbot.notify.smtplib.LMTP") 

@mock.patch("certbot.notify.subprocess.Popen") 

def test_everything_fails(self, mock_popen, mock_lmtp): 

from certbot.notify import notify 

lmtp_obj = mock.MagicMock() 

mock_lmtp.return_value = lmtp_obj 

lmtp_obj.sendmail.side_effect = socket.error(17) 

proc = mock.MagicMock() 

mock_popen.return_value = proc 

proc.communicate.side_effect = OSError("What we have here is a " 

"failure to communicate.") 

self.assertFalse(notify("Goose", "auntrhody@example.com", 

"The old grey goose is dead.")) 

self.assertEqual(lmtp_obj.sendmail.call_count, 1) 

self.assertEqual(proc.communicate.call_count, 1) 

 

if __name__ == "__main__": 

unittest.main() # pragma: no cover