1
# Copyright (C) 2009, 2010 Canonical Ltd
1
# Copyright (C) 2009, 2010, 2011, 2016 Canonical Ltd
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
59
59
def test_be_quiet(self):
60
60
self.factory.be_quiet(True)
61
self.assertEquals(True, self.factory.is_quiet())
61
self.assertEqual(True, self.factory.is_quiet())
62
62
self.factory.be_quiet(False)
63
self.assertEquals(False, self.factory.is_quiet())
63
self.assertEqual(False, self.factory.is_quiet())
65
def test_confirm_action(self):
66
# confirm_action should be answered by every ui factory; even
67
# noninteractive ones should have a reasonable default
68
self._load_responses([True])
69
result = self.factory.confirm_action(u'Break a lock?',
70
'bzr.lock.break.confirm',
72
# will be true either because we read it from the input or because
74
self.assertEqual(result, True)
65
76
def test_note(self):
66
77
self.factory.note("a note to the user")
90
101
def test_transport_activity(self):
91
102
# It doesn't matter what the implementation does, we just want to make
92
103
# sure the interface is there
93
t = transport.get_transport('memory:///')
104
t = transport.get_transport_from_url('memory:///')
94
105
self.factory.report_transport_activity(t, 1000, 'write')
95
106
self.factory.report_transport_activity(t, 2000, 'read')
96
107
self.factory.report_transport_activity(t, 4000, None)
102
113
def test_no_transport_activity(self):
103
114
# No activity to report
104
t = transport.get_transport('memory:///')
115
t = transport.get_transport_from_url('memory:///')
105
116
self.factory.log_transport_activity(display=True)
106
117
self._check_log_transport_activity_display_no_bytes()
119
130
def _check_note(self, note_text):
120
self.assertEquals("%s\n" % note_text,
131
self.assertEqual("%s\n" % note_text,
121
132
self.stdout.getvalue())
123
134
def _check_show_error(self, msg):
124
self.assertEquals("bzr: error: %s\n" % msg,
135
self.assertEqual("bzr: error: %s\n" % msg,
125
136
self.stderr.getvalue())
126
self.assertEquals("", self.stdout.getvalue())
137
self.assertEqual("", self.stdout.getvalue())
128
139
def _check_show_message(self, msg):
129
self.assertEquals("%s\n" % msg,
140
self.assertEqual("%s\n" % msg,
130
141
self.stdout.getvalue())
131
self.assertEquals("", self.stderr.getvalue())
142
self.assertEqual("", self.stderr.getvalue())
133
144
def _check_show_warning(self, msg):
134
self.assertEquals("bzr: warning: %s\n" % msg,
145
self.assertEqual("bzr: warning: %s\n" % msg,
135
146
self.stderr.getvalue())
136
self.assertEquals("", self.stdout.getvalue())
147
self.assertEqual("", self.stdout.getvalue())
138
149
def _check_log_transport_activity_noarg(self):
139
150
self.assertEqual('', self.stdout.getvalue())
150
161
# Without a TTY, we shouldn't display anything
151
162
self.assertEqual('', self.stderr.getvalue())
164
def _load_responses(self, responses):
165
self.factory.stdin.seek(0)
166
self.factory.stdin.writelines([(r and "y\n" or "n\n") for r in responses])
167
self.factory.stdin.seek(0)
154
170
class TestTTYTextUIFactory(TestTextUIFactory):
174
190
# Remove 'TERM' == 'dumb' which causes us to *not* treat output as a
175
191
# real terminal, even though isatty returns True
176
self._captureVar('TERM', None)
192
self.overrideEnv('TERM', None)
177
193
self.stderr = TTYStringIO()
178
194
self.stdout = TTYStringIO()
179
195
self.factory = ui.text.TextUIFactory(self.stdin, self.stdout,
222
238
def _check_log_transport_activity_display_no_bytes(self):
241
def _load_responses(self, responses):
226
245
class TestCannedInputUIFactory(tests.TestCase, UIFactoryTestMixin):
227
246
# discards output, reads input from variables