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

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

"""Tests for certbot.reporter.""" 

import mock 

import sys 

import unittest 

 

import six 

 

 

class ReporterTest(unittest.TestCase): 

"""Tests for certbot.reporter.Reporter.""" 

def setUp(self): 

from certbot import reporter 

self.reporter = reporter.Reporter(mock.MagicMock(quiet=False)) 

 

self.old_stdout = sys.stdout # type: ignore 

sys.stdout = six.StringIO() 

 

def tearDown(self): 

sys.stdout = self.old_stdout 

 

def test_multiline_message(self): 

self.reporter.add_message("Line 1\nLine 2", self.reporter.LOW_PRIORITY) 

self.reporter.print_messages() 

output = sys.stdout.getvalue() # type: ignore 

self.assertTrue("Line 1\n" in output) 

self.assertTrue("Line 2" in output) 

 

def test_tty_print_empty(self): 

sys.stdout.isatty = lambda: True # type: ignore 

self.test_no_tty_print_empty() 

 

def test_no_tty_print_empty(self): 

self.reporter.print_messages() 

self.assertEqual(sys.stdout.getvalue(), "") # type: ignore 

try: 

raise ValueError 

except ValueError: 

self.reporter.print_messages() 

self.assertEqual(sys.stdout.getvalue(), "") # type: ignore 

 

def test_tty_successful_exit(self): 

sys.stdout.isatty = lambda: True # type: ignore 

self._successful_exit_common() 

 

def test_no_tty_successful_exit(self): 

self._successful_exit_common() 

 

def test_tty_unsuccessful_exit(self): 

sys.stdout.isatty = lambda: True # type: ignore 

self._unsuccessful_exit_common() 

 

def test_no_tty_unsuccessful_exit(self): 

self._unsuccessful_exit_common() 

 

def _successful_exit_common(self): 

self._add_messages() 

self.reporter.print_messages() 

output = sys.stdout.getvalue() # type: ignore 

self.assertTrue("IMPORTANT NOTES:" in output) 

self.assertTrue("High" in output) 

self.assertTrue("Med" in output) 

self.assertTrue("Low" in output) 

 

def _unsuccessful_exit_common(self): 

self._add_messages() 

try: 

raise ValueError 

except ValueError: 

self.reporter.print_messages() 

output = sys.stdout.getvalue() # type: ignore 

self.assertTrue("IMPORTANT NOTES:" in output) 

self.assertTrue("High" in output) 

self.assertTrue("Med" not in output) 

self.assertTrue("Low" not in output) 

 

def _add_messages(self): 

self.reporter.add_message("High", self.reporter.HIGH_PRIORITY) 

self.reporter.add_message( 

"Med", self.reporter.MEDIUM_PRIORITY, on_crash=False) 

self.reporter.add_message( 

"Low", self.reporter.LOW_PRIORITY, on_crash=False) 

 

 

if __name__ == "__main__": 

unittest.main() # pragma: no cover