mirror of
https://github.com/certbot/certbot.git
synced 2026-01-21 19:01:07 +03:00
49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""Tests for letsencrypt.cli."""
|
|
import itertools
|
|
import unittest
|
|
|
|
import mock
|
|
|
|
|
|
class CLITest(unittest.TestCase):
|
|
"""Tests for different commands."""
|
|
|
|
@classmethod
|
|
def _call(cls, args):
|
|
from letsencrypt import cli
|
|
args = ['--text'] + args
|
|
with mock.patch('letsencrypt.cli.sys.stdout') as stdout:
|
|
with mock.patch('letsencrypt.cli.sys.stderr') as stderr:
|
|
with mock.patch('letsencrypt.cli.client') as client:
|
|
ret = cli.main(args)
|
|
return ret, stdout, stderr, client
|
|
|
|
def test_no_flags(self):
|
|
self.assertRaises(SystemExit, self._call, [])
|
|
|
|
def test_help(self):
|
|
self.assertRaises(SystemExit, self._call, ['--help'])
|
|
|
|
def test_rollback(self):
|
|
_, _, _, client = self._call(['rollback'])
|
|
client.rollback.assert_called_once()
|
|
|
|
_, _, _, client = self._call(['rollback', '--checkpoints', '123'])
|
|
client.rollback.assert_called_once_with(
|
|
mock.ANY, 123, mock.ANY, mock.ANY)
|
|
|
|
def test_config_changes(self):
|
|
_, _, _, client = self._call(['config_changes'])
|
|
client.view_config_changes.assert_called_once()
|
|
|
|
def test_plugins(self):
|
|
flags = ['--init', '--prepare', '--authenticators', '--installers']
|
|
for args in itertools.chain(
|
|
*(itertools.combinations(flags, r)
|
|
for r in xrange(len(flags)))):
|
|
self._call(['plugins',] + list(args))
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main() # pragma: no cover
|