mirror of
https://github.com/certbot/certbot.git
synced 2026-06-04 14:26:10 -04:00
cli: allow --dry-run to be combined with --server (#7436)
The value of --server will now be respected, except when it is the default value, in which case it will be changed to the staging server, preserving Certbot's existing behavior.
This commit is contained in:
parent
717afebcff
commit
118cb3c9b1
3 changed files with 32 additions and 13 deletions
|
|
@ -11,6 +11,8 @@ Certbot adheres to [Semantic Versioning](https://semver.org/).
|
|||
### Changed
|
||||
|
||||
* Removed `--fast` flag from the test farm tests
|
||||
* `--server` may now be combined with `--dry-run`. Certbot will, as before, use the
|
||||
staging server instead of the live server when `--dry-run` is used.
|
||||
|
||||
### Fixed
|
||||
|
||||
|
|
|
|||
|
|
@ -649,13 +649,20 @@ class HelpfulArgumentParser(object):
|
|||
def set_test_server(self, parsed_args):
|
||||
"""We have --staging/--dry-run; perform sanity check and set config.server"""
|
||||
|
||||
if parsed_args.server not in (flag_default("server"), constants.STAGING_URI):
|
||||
conflicts = ["--staging"] if parsed_args.staging else []
|
||||
conflicts += ["--dry-run"] if parsed_args.dry_run else []
|
||||
raise errors.Error("--server value conflicts with {0}".format(
|
||||
" and ".join(conflicts)))
|
||||
# Flag combinations should produce these results:
|
||||
# | --staging | --dry-run |
|
||||
# ------------------------------------------------------------
|
||||
# | --server acme-v02 | Use staging | Use staging |
|
||||
# | --server acme-staging-v02 | Use staging | Use staging |
|
||||
# | --server <other> | Conflict error | Use <other> |
|
||||
|
||||
parsed_args.server = constants.STAGING_URI
|
||||
default_servers = (flag_default("server"), constants.STAGING_URI)
|
||||
|
||||
if parsed_args.staging and parsed_args.server not in default_servers:
|
||||
raise errors.Error("--server value conflicts with --staging")
|
||||
|
||||
if parsed_args.server in default_servers:
|
||||
parsed_args.server = constants.STAGING_URI
|
||||
|
||||
if parsed_args.dry_run:
|
||||
if self.verb not in ["certonly", "renew"]:
|
||||
|
|
|
|||
|
|
@ -333,16 +333,26 @@ class ParseTest(unittest.TestCase): # pylint: disable=too-many-public-methods
|
|||
|
||||
self._assert_dry_run_flag_worked(self.parse(short_args + ['auth']), True)
|
||||
self._assert_dry_run_flag_worked(self.parse(short_args + ['renew']), True)
|
||||
self._assert_dry_run_flag_worked(self.parse(short_args + ['certonly']), True)
|
||||
|
||||
short_args += ['certonly']
|
||||
self._assert_dry_run_flag_worked(self.parse(short_args), True)
|
||||
|
||||
short_args += '--server example.com'.split()
|
||||
conflicts = ['--dry-run']
|
||||
self._check_server_conflict_message(short_args, '--dry-run')
|
||||
# `--dry-run --server example.com` should emit example.com
|
||||
self.assertEqual(self.parse(short_args + ['--server', 'example.com']).server,
|
||||
'example.com')
|
||||
|
||||
short_args += ['--staging']
|
||||
conflicts += ['--staging']
|
||||
self._check_server_conflict_message(short_args, conflicts)
|
||||
# `--dry-run --server STAGING_URI` should emit STAGING_URI
|
||||
self.assertEqual(self.parse(short_args + ['--server', constants.STAGING_URI]).server,
|
||||
constants.STAGING_URI)
|
||||
|
||||
# `--dry-run --server LIVE` should emit STAGING_URI
|
||||
self.assertEqual(self.parse(short_args + ['--server', cli.flag_default("server")]).server,
|
||||
constants.STAGING_URI)
|
||||
|
||||
# `--dry-run --server example.com --staging` should emit an error
|
||||
conflicts = ['--staging']
|
||||
self._check_server_conflict_message(short_args + ['--server', 'example.com', '--staging'],
|
||||
conflicts)
|
||||
|
||||
def test_option_was_set(self):
|
||||
key_size_option = 'rsa_key_size'
|
||||
|
|
|
|||
Loading…
Reference in a new issue