~ubuntu-core-dev/update-notifier/ubuntu

« back to all changes in this revision

Viewing changes to tests/test_motd.py

  • Committer: Balint Reczey
  • Date: 2020-06-11 18:46:02 UTC
  • Revision ID: balint.reczey@canonical.com-20200611184602-2rv1zan3xu723x2u
Moved to git at https://git.launchpad.net/update-notifier

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python3
2
 
# -*- Mode: Python; indent-tabs-mode: nil; tab-width: 4; coding: utf-8 -*-
3
 
 
4
 
import apt_check
5
 
import io
6
 
import unittest
7
 
import textwrap
8
 
 
9
 
 
10
 
def get_message(*args, **kwds):
11
 
    with io.StringIO() as stream:
12
 
        apt_check.write_human_readable_summary(stream, *args, **kwds)
13
 
        return stream.getvalue()
14
 
 
15
 
 
16
 
class TestMotd(unittest.TestCase):
17
 
    """ Validate /etc/motd text """
18
 
 
19
 
    def test_esm_disabled_upto_date_esm_avail(self):
20
 
        self.assertEqual(
21
 
            get_message(upgrades=0, security_updates=0,
22
 
                        esm_updates=0, have_esm=False,
23
 
                        disabled_esm_updates=23),
24
 
            textwrap.dedent(
25
 
                """
26
 
                UA Infrastructure Extended Security Maintenance (ESM) is not enabled.
27
 
 
28
 
                0 updates can be installed immediately.
29
 
                0 of these updates are security updates.
30
 
 
31
 
                Enable UA Infrastructure ESM to receive 23 additional security updates.
32
 
                See https://ubuntu.com/esm or run: sudo ua status
33
 
                """).lstrip())
34
 
 
35
 
    def test_esm_disabled_security_esm_avail(self):
36
 
        self.assertEqual(
37
 
            get_message(upgrades=15, security_updates=7,
38
 
                        esm_updates=0, have_esm=False,
39
 
                        disabled_esm_updates=23),
40
 
            textwrap.dedent(
41
 
                """
42
 
                UA Infrastructure Extended Security Maintenance (ESM) is not enabled.
43
 
 
44
 
                15 updates can be installed immediately.
45
 
                7 of these updates are security updates.
46
 
                To see these additional updates run: apt list --upgradable
47
 
 
48
 
                Enable UA Infrastructure ESM to receive 23 additional security updates.
49
 
                See https://ubuntu.com/esm or run: sudo ua status
50
 
                """).lstrip())
51
 
 
52
 
    def test_esm_disabled_security_no_esm_avail(self):
53
 
        self.assertEqual(
54
 
            get_message(upgrades=15, security_updates=7,
55
 
                        esm_updates=0, have_esm=False,
56
 
                        disabled_esm_updates=0),
57
 
            textwrap.dedent(
58
 
                """
59
 
                UA Infrastructure Extended Security Maintenance (ESM) is not enabled.
60
 
 
61
 
                15 updates can be installed immediately.
62
 
                7 of these updates are security updates.
63
 
                To see these additional updates run: apt list --upgradable
64
 
 
65
 
                Enable UA Infrastructure ESM to receive additional future security updates.
66
 
                See https://ubuntu.com/esm or run: sudo ua status
67
 
                """).lstrip())
68
 
 
69
 
    def test_esm_disabled_nosecurity(self):
70
 
        self.assertEqual(
71
 
            get_message(upgrades=15, security_updates=0,
72
 
                        esm_updates=0, have_esm=False,
73
 
                        disabled_esm_updates=0),
74
 
            textwrap.dedent(
75
 
                """
76
 
                UA Infrastructure Extended Security Maintenance (ESM) is not enabled.
77
 
 
78
 
                15 updates can be installed immediately.
79
 
                0 of these updates are security updates.
80
 
                To see these additional updates run: apt list --upgradable
81
 
 
82
 
                Enable UA Infrastructure ESM to receive additional future security updates.
83
 
                See https://ubuntu.com/esm or run: sudo ua status
84
 
                """).lstrip())
85
 
 
86
 
    def test_esm_disabled_noupdates(self):
87
 
        self.assertEqual(
88
 
            get_message(upgrades=0, security_updates=0,
89
 
                        esm_updates=0, have_esm=False,
90
 
                        disabled_esm_updates=0),
91
 
            textwrap.dedent(
92
 
                """
93
 
                UA Infrastructure Extended Security Maintenance (ESM) is not enabled.
94
 
 
95
 
                0 updates can be installed immediately.
96
 
                0 of these updates are security updates.
97
 
 
98
 
                Enable UA Infrastructure ESM to receive additional future security updates.
99
 
                See https://ubuntu.com/esm or run: sudo ua status
100
 
                """).lstrip())
101
 
 
102
 
    def test_esm_enabled_nosecurity(self):
103
 
        self.assertEqual(
104
 
            get_message(upgrades=35, security_updates=0,
105
 
                        esm_updates=13, have_esm=True,
106
 
                        disabled_esm_updates=0),
107
 
            textwrap.dedent(
108
 
                """
109
 
                UA Infrastructure Extended Security Maintenance (ESM) is enabled.
110
 
 
111
 
                35 updates can be installed immediately.
112
 
                13 of these updates are provided through UA Infrastructure ESM.
113
 
                0 of these updates are security updates.
114
 
                To see these additional updates run: apt list --upgradable
115
 
                """).lstrip())
116
 
 
117
 
    def test_esm_enabled_somesecurity(self):
118
 
        self.assertEqual(
119
 
            get_message(upgrades=47, security_updates=7,
120
 
                        esm_updates=13, have_esm=True,
121
 
                        disabled_esm_updates=0),
122
 
            textwrap.dedent(
123
 
                """
124
 
                UA Infrastructure Extended Security Maintenance (ESM) is enabled.
125
 
 
126
 
                47 updates can be installed immediately.
127
 
                13 of these updates are provided through UA Infrastructure ESM.
128
 
                7 of these updates are security updates.
129
 
                To see these additional updates run: apt list --upgradable
130
 
                """).lstrip())
131
 
 
132
 
    def test_esm_enabled_noupdates(self):
133
 
        self.assertEqual(
134
 
            get_message(upgrades=0, security_updates=0,
135
 
                        esm_updates=0, have_esm=True,
136
 
                        disabled_esm_updates=0),
137
 
            textwrap.dedent(
138
 
                """
139
 
                UA Infrastructure Extended Security Maintenance (ESM) is enabled.
140
 
 
141
 
                0 updates can be installed immediately.
142
 
                0 of these updates are security updates.
143
 
                """).lstrip())
144
 
 
145
 
 
146
 
if __name__ == "__main__":
147
 
    import logging
148
 
    logging.basicConfig(level=logging.DEBUG)
149
 
    unittest.main()