Commit Graph
100 Commits
Author SHA1 Message Date
Brad WarrenandGitHub 828363b21a Fix nginx --dry-run (#4889)
* Revert "Don't save keys/csr on dry run (#4380)"

This reverts commit e034b50363.

* Don't save CSRs and keys during dry run

* Factor out _test_obtain_certificate_common

* Add test_obtain_certificate_dry_run

* Wrap key from make_key in util.Key

* Wrap result from make_csr in util.CSR
2017-06-30 08:10:55 -04:00
Brad WarrenandGitHub f4094e4d3f Finish oldest tests (#4857)
* Pin oldest version of packaged python deps

* Install security extras in oldest tests

* Revert "bump requests requirement to >=2.10 (#4248)"

This reverts commit 402ad8b353.

* Use create=True when patching open on module
2017-06-23 09:40:59 -07:00
Brad WarrenandPeter Eckersley 03f6c6d0e5 Bump min integration test coverage to 64 (#4868) 2017-06-21 21:08:37 -07:00
Brad WarrenandGitHub 3cb92d33eb report and enforce coverage on integration tests (#4854) 2017-06-21 14:10:16 -07:00
Brad WarrenandPeter Eckersley 1e6ea09dbd Remove py26 oldest tests (#4856)
* Remove py26 oldest tests.

The only systems where we support Python 2.6 use certbot-auto so the oldest
supported versions of our dependencies are never used when using supported
installation methods. Let's remove this unnecessary and slow test.

* Make tox.ini happy

* Remove py26-oldest from Travis
2017-06-21 13:50:48 -07:00
Brad WarrenandPeter Eckersley 93f094a86e Test additional subcommands in integration tests (#4855)
* Test additional subcommands

* Test rollback

* quote original variable

* Specifically set installer to work around #4858.
2017-06-21 13:49:15 -07:00
Brad WarrenandPeter Eckersley bb8e504a02 Add warning about changing the UA (#4843) 2017-06-16 15:01:13 -07:00
Brad WarrenandGitHub efe5b4c82f Pin zope.interface in oldest tests (#4842)
* pin zope.interface in oldest tests

* pin zope.component in oldest tests
2017-06-15 15:33:42 -07:00
Brad WarrenandGitHub 22ee81bdfd fix sphinx build failures (#4831) 2017-06-15 14:57:06 -07:00
Brad WarrenandGitHub 9610320ee7 remove #certbot@OFTC from using.rst (#4812) 2017-06-09 11:57:31 -07:00
Brad WarrenandGitHub d570bf5f2d Update CHANGELOG.md for 0.15.0 (#4803)
* Update CHANGELOG.md for 0.15.0

* mention #4575 in CHANGELOG.md
2017-06-08 15:25:22 -07:00
Brad WarrenandGitHub 650611bd1f Fix oldest tests (#4782)
* Add pip_install_editable.sh

* add install_and_test.sh

* simplify tox.ini and fix oldest tests

* Put paths & packages on their own line in tox.ini
2017-06-08 12:22:46 -07:00
Brad WarrenandGitHub 895a5254be Merge pull request #4802 from certbot/candidate-0.15.0
Release 0.15.0
2017-06-08 11:30:42 -07:00
Brad WarrenandGitHub e0f3c05c02 Fix test_apache2.sh test farm test. (#4786)
tools/venv.sh cannot be used as the tests run on systems with Python 2.6 and
tools/venv.sh installs code that is not compatible with Python 2.6.
2017-06-06 15:48:00 -07:00
Brad WarrenandGitHub 89e63eaf84 Use certificate in NS1 plugin flag's help. (#4783) 2017-06-05 18:21:47 -07:00
Brad WarrenandGitHub 962879c35c Remove dependency on git from pip_install.sh. (#4770)
* Remove dependency on git from pip_install.sh.

Using git allowed this file to continue to work even if it was moved to another
directory. This slight increase in robustness wasn't worth it though as it
broke our development Dockerfile (see #4703), the certbot website's Dockerfile
(see certbot/website#226), and our test farm tests (see
certbot/tests/letstest/scripts/test_apache2.sh for an example that calls
tools/venv.sh without installing git). Rather than continuing to find and patch
these things, let's just allow this script to fail if it's moved rather than
propagating the git dependency all over the place.

* Add readlink.py.

This is the equivalent of `readlink -f` on many Linux systems. This is useful
as there are often differences in readlink on different platforms.

* Use readlink.py in pip_install.sh.

This allows us to work around differences in readlink on macOS.
2017-06-05 17:51:45 -07:00
Brad WarrenandGitHub 0e4f55982a Remove unused readlink environment variable. (#4781)
The program readlink used to be used in integration tests so an environment
variable was used to handle differences in the executable on different systems.
This command is no longer used though so the variable can be removed.
2017-06-05 15:20:04 -07:00
Brad WarrenandGitHub d25069d89b Remove reference to .new in Nginx's SSL options. (#4769) 2017-06-01 15:26:54 -07:00
Brad WarrenandGitHub 4f00c3ea75 Merge pull request #4768 from certbot/actually-file-update-apache2
Add mechanism for updating Apache's SSL options
2017-06-01 15:25:53 -07:00
Brad WarrenandGitHub ee70799c62 Get full test coverage on certbot.plugins.common. (#4765)
Addresses final review comments on #4720.
2017-06-01 10:55:42 -07:00
Brad WarrenandGitHub 738732a0db Improve bad preferred challenge error message. (#4761)
Using ArgumentTypeError causes Certbot to report an unexpected error occurred
while using ArgumentError causes argparse to print more usage information and
call sys.exit().
2017-06-01 10:42:34 -07:00
Brad WarrenandGitHub 791fea43ec Add regression/system test for #4719 (#4739)
* Add regression/system test for #4719.

* Test for regressions with --help and invalid args.

* Handle expected failure properly.
2017-06-01 09:57:27 -07:00
Brad WarrenandGitHub 7fde26a7b4 Merge branch 'master' into issue_4519 2017-05-26 15:56:26 -07:00
Brad WarrenandGitHub 4a0c336484 modification-check.sh now fails if a command fails (#4746) 2017-05-26 14:41:59 -07:00
Brad WarrenandGitHub ed87b86bca Update CHANGELOG.md in response to 0.14.2 release (#4744) 2017-05-26 10:21:57 -07:00
Brad WarrenandGitHub 346659c47f Release 0.14.2 (#4742)
* Release 0.14.2

(cherry picked from commit d9a2612d21)

* Bump version to 0.15.0
2017-05-26 10:21:21 -07:00
Brad WarrenandGitHub 93310fe67c Fixes #4719 (#4737)
* Automatically delete temp log file when not used.

This allows close() calls in logging.shutdown() to cause the file to be
deleted when no logging output has been written to the file.

* Make certbot.log.MemoryHandler.flush() a noop.

This causes MemoryHandler.flush() calls in logging.shutdown to be a noop,
allowing us to control when the handler is actually flushed. This prevents log
records from being sent to a temporary file handler for things like
`certbot --version`.

* Keep reference to certbot.log.MemoryHandler.target

In Python 2.7+, the logging module only keeps weak references to created
logging handlers. Because of this, the MemoryHandler's target will not be
properly flushed and closed when logging.shutdown() is called on program exit
unless we keep a reference to it in the MemoryHandler.

* Fixes #4719.

This completes the changes necessary to fix #4719. Now temporary log files are
not created if sys.exit() is called before logging is fully set up. These files
are still created if Certbot crashes for any other reason.

* Document pre_arg_parse_except_hook args.
2017-05-25 12:16:05 -07:00
Brad WarrenandGitHub c2b24702b7 Fix defaults on older systems (#4691)
* Creates SupportedChallengesAction

This fixes #3987 as the call to set_by_default can be removed entirely.
Additionally, logger.warning can be used rather than writing to stderr directly
because #3184 has been resolved and we're guaranteed to having logging setup.

* Move validator to SupportedChallengesAction

supported_challenges_validator was moved to SupportedChallengesAction so
argparse.ArgumentError can be easily used to provide nice error output. Tests
in standalone_test.py were also updated so the module still has 100% test
coverage.

* Better document ArgumentError usage
2017-05-19 16:26:15 -07:00
Brad WarrenandGitHub 1ceefa794e pin Sphinx<=1.5.6 (#4687) 2017-05-19 11:15:35 -07:00
Brad WarrenandGitHub 04759095c2 Fix example links (#4678)
* fix example links

* use single backticks not double
2017-05-18 08:15:00 -07:00
Brad WarrenandGitHub 462c0aba62 Modify special action types only once (#4656) 2017-05-17 14:25:50 -07:00
Brad WarrenandGitHub e4f65074d1 Merge pull request #4642 from certbot/new-pkg-release-prep
Make it easier to add new packages to the release script
2017-05-16 15:42:23 -07:00
Brad WarrenandGitHub 05c31a47cb Make 0.14.1 release changes in master (#4675)
* Release 0.14.1

(cherry picked from commit 78e3bd6e8c)

* Bump version to 0.15.0
2017-05-16 14:34:01 -07:00
Brad WarrenandGitHub 8c29cb0810 Force nginx tests to run during CI (#4558)
* force nginx tests to run during CI

* offer default value
2017-05-16 12:19:07 -07:00
Brad WarrenandGitHub 06c7143b21 Merge pull request #4652 from certbot/configargparse0120
Fix configargparse 0.12.0
2017-05-15 15:37:43 -07:00
Brad WarrenandGitHub 6723b15f78 Merge pull request #4665 from certbot/span-plan2
Augeas span workarounds
2017-05-15 13:50:21 -07:00
Brad WarrenandGitHub f74845f437 Merge pull request #4577 from zjs/topic/zjs/digitalocean-package
DigitalOcean DNS Authenticator
2017-05-11 17:44:43 -07:00
Brad WarrenandGitHub be7e99a461 Pin dependency versions when using tools/venv.sh (#4629)
* Revert "Pin python-augeas version to avoid error with 1.0.0 (#4422)"

This reverts commit 1c51ae2588.

* make dependency-requirements

* separate certbot and dependency requirements

* fix build.py

* update hashin comment

* simplify release pinning

* separate letsencrypt dependency

* pin hashes in venv

* error out when bad things happen

* use pinned dependencies in tox

* Revert "pin hashes in venv"

This reverts commit 1cd38a9e50.

* use pip_install.sh in venv_common

* quote pip install args

* bump mock version
2017-05-11 10:06:05 -07:00
Brad WarrenandGitHub e37d5ee92c Merge pull request #4567 from zjs/topic/zjs/cloudflare-package
Cloudflare DNS Authenticator
2017-05-10 15:47:35 -07:00
Brad WarrenandGitHub d8fbd4f31d Add 0.14.0 release notes (#4618) 2017-05-05 10:10:28 -07:00
Brad WarrenandGitHub ef5894bc9f Merge pull request #4619 from certbot/candidate-0.14.0
Release 0.14.0
2017-05-05 10:10:06 -07:00
Brad WarrenandGitHub 0db668f67b remove unnecessary closes causing logging problems (#4616) 2017-05-04 16:35:37 -07:00
Brad WarrenandGitHub 4d0cf8000a make a copy of keys in all python versions (#4614)
* make a copy of keys in all python versions

* documentation++
2017-05-03 18:42:47 -07:00
Brad WarrenandGitHub 13c88f1c02 Properly handle EOF in input (#4612)
* properly handle eof

* cleanup InputWithTimeoutTest

* add test_eof

* add comment about mimicking getpass
2017-05-03 14:44:15 -07:00
Brad WarrenandGitHub 83064941bc Merge pull request #4607 from certbot/joohoi_multiple_vhosts2
Multiple vhosts 2
2017-05-02 17:55:38 -07:00
Brad WarrenandGitHub 79d5c890c3 Add a timeout to prompts (#4601)
* Add input_with_timeout

* use input_with_timeout
2017-05-01 14:55:31 -07:00
Brad WarrenandPeter Eckersley 5ca8f7c5b9 Add lockfile (#4449)
* add lock_file

* cleanup lock file

* Add LockFile tests

* add lock_dir

* add lock_dir_until_exit

* add set_up_core_dir and move lock_dir_until_exit

* Move lock_and_call to certbot.test.util

* Add lock to Apache

* Add lock to the Nginx plugin

* Improve permissions error message

* sort plugins

* add test_prepare_order

* provide more actionable permissions error

* Document and catch use of OSError

* don't lock a directory twice

* add conditional dependency on ordereddict

* Add lock_test

* expand sorted plugins comment

* Add lock_test to lint

* make make_lineage more conventional and flexible

* enhance lock_test.py

* add lock_test to tox

* Readd success message

* make py26 happy

* add test_acquire_without_deletion
2017-05-01 14:49:12 -07:00
Brad WarrenandGitHub 8fa12bef8e Tell the world we're Python 3 compatible (#4568)
* Mention python 3 support in setup.py

* Build universal (py2 and py3 compatible) wheels

* Mention Python 3.3+ support in docs

* we work on python 3.6 too
2017-04-28 16:06:45 -07:00
Brad WarrenandGitHub 89af460792 Reuse dynamic install_requires. (#4554)
* Revert "Make argparse dependency unconditional. (#2249)"

  This reverts commit 8f10103496.

* Update comment about environment markers
2017-04-28 15:03:50 -07:00
Brad WarrenandGitHub 372d201111 use say now that if QUIET statement was moved (#4530) 2017-04-19 14:11:18 -07:00
Brad WarrenandGitHub 36891033dd Set HOME if it's not defined in certbot-auto (#4503)
* set HOME if it's not defined

* use ~root rather than /root
2017-04-17 14:39:08 -07:00
Brad WarrenandGitHub bd8c31021a Logging setup before argument parsing (#4446)
Second part of #4443. Built on #4444. Fixes #3148.

This fixes an old problem with code logging messages before logging has been set up. How this works is explained in the docstring of certbot.log.pre_arg_setup.

* add memory handler

* Add exit_with_log_path

* add new_except_hook

* pre_arg_parse_setup++ and remove old except_hook

* Rewrite post_arg_setup

* test restricted permissions

* move changes to main

* Use .name of NamedTemporaryFile

* use better assertions

* set exc_info in except_hook

* Make post_arg_setup more robust

* final cleanup

* Add TempHandler

* undo main_test changes

* improve documentation

* use decorators instead of with for mock.patch

* add inline comment about logging.shutdown
2017-04-13 13:42:01 -07:00
Brad WarrenandGitHub 2e8a5ef477 Call certbot client cb_client rather than acme_client (#4357)
In some sense, certbot.client.Client is an ACME client, but it's the not the client in the ACME library and this leads to confusion. Let's make what this is clear.

* call certbot client cb_client rather than acme_client

* update tests
2017-04-06 16:05:54 -07:00
Brad WarrenandGitHub e194e0dd5f Refactoring for better logging (#4444)
* Move colored_logging.py to log.py

* Add atexit.register code to util

* Add tests for atexit_register

* Copy except_hook to log

* Add pre_arg_setup

* move setup_log_file_handler to log.py

* Add post_arg_setup

* move changes to main

* Undo changes to MainTest

* s/pre_arg_setup/pre_arg_parse_setup

* s/post_arg_setup/post_arg_parse_setup
2017-03-30 16:17:57 -07:00
Brad WarrenandGitHub a542fcd019 Revert "Add a global lock file to Certbot (#4369)" (#4445)
This reverts commit 32122cfa21.
2017-03-30 15:47:31 -07:00
Brad WarrenandGitHub bf45cea7cd Ensure a SHA2 hash algorithm is used when signing releases (#4384)
* use gpg2

* explictly use sha256
2017-03-20 18:00:50 -07:00
Brad WarrenandGitHub b7d282309d Save hyphenated plugin params for renewal (#4281)
* fix plugin namespace check

* Add test to prevent regressions
2017-03-20 17:57:09 -07:00
Brad WarrenandPeter Eckersley 32122cfa21 Add a global lock file to Certbot (#4369)
* add fasteners as a dependency

* add LOCK_FILE constant

* Add lock file to Certbot

* Move code to _run_subcommand

* move lock file path into CLI_CONSTANTS

* add --lock-path flag

* move locking code to separate function

* Add TestAcquireFileLock

* assert we log

* test lock contention

* add fasteners to certbot-auto

* Use a different lock file for each test in MainTest
2017-03-20 15:48:39 -07:00
Brad WarrenandGitHub 6f979a4808 upgrade pip and setuptools before installing packages (#4378) 2017-03-18 13:40:01 -07:00
Brad WarrenandGitHub c439057efa install python3-dev for python3 tests in docker (#4381) 2017-03-18 13:25:02 -07:00
Brad WarrenandPeter Eckersley edcfc49303 Use setattr in NamespaceConfig (#4362)
* set setattr in NamespaceConfig

* remove unnecessary uses of .namespace

* add simple test to ensure it works
2017-03-17 13:02:41 -07:00
Brad WarrenandGitHub 7b34e73752 Merge pull request #4295 from certbot/dockerfile++
Rewrite our Dockerfile
2017-03-13 20:25:45 -07:00
Brad WarrenandGitHub 91f4b2b571 Improve macOS contributor instructions (#4327)
* remove instructions about removed Vagrantfile

* rewrite docker instructions

* say where docker-compose can be run

* give better intro for macOS devs

* prompt people for permission to install OS packages

* reword awkward sentence

* Change WORKDIR to /opt/certbot/src

This change is OK because all paths used in Dockerfile-dev are absolute paths.

* remove 'cd src' instructions for Dockerfile-dev

* Improve docker-compose testing instructions
2017-03-10 17:27:09 -08:00
Brad WarrenandGitHub 662c323b55 Build wheels correctly for Python 2.6 (#4313)
* stop conditionally pinning mock version in acme

* stop conditionally pinning mock version in certbot

* stop conditionally pinning mock version in apache

* stop conditionally pinning mock version in nginx

* stop conditionally pinning mock version in letshelp

* stop conditionally pinning mock version in compatibility-test
2017-03-10 10:58:03 -08:00
Brad WarrenandJacob Hoffman-Andrews 82736e21d4 Improve path_surgery warning (#4293)
Stops output like:

Failed to find certbot.log in PATH: ...
renew-hook command certbot.log exists, but is not executable.
2017-03-06 17:32:49 -08:00
Brad WarrenandJacob Hoffman-Andrews 4a2582dda4 Remove broken known issues link (#4294) 2017-03-06 17:31:28 -08:00
Brad WarrenandGitHub 5e6a6f51d3 Fix test_leauto_upgrades.sh (#4278)
* fix-test-leauto-upgrades

* redirect stderr

* redirect stderr part 2
2017-03-02 10:31:37 -08:00
Brad WarrenandGitHub 11ec1eb911 Revert "Remove Link rel=next for authzs and new-certs." (#4277) 2017-03-02 10:31:15 -08:00
Brad WarrenandGitHub 0d8a4b4ebd Make mod-check more flexible (#4268)
* fixes #4166

* Run mod-check from anywhere

* pass TRAVIS_BRANCH through in tox
2017-02-28 15:17:07 -08:00
Brad WarrenandGitHub 402ad8b353 bump requests requirement to >=2.10 (#4248) 2017-02-27 17:17:08 -08:00
Brad WarrenandGitHub 80055ec770 Cleanup issue template (#4256) 2017-02-27 15:15:19 -08:00
Brad WarrenandGitHub dd8253b3d6 fixes #4083 (#4148) 2017-02-01 18:14:47 -08:00
Brad WarrenandGitHub b5d4e0bf6a fix bug when certbot is ran without any arguments (#4151) 2017-02-01 18:02:21 -08:00
Brad WarrenandGitHub 0070489843 Merge pull request #4147 from certbot/candidate-0.11.0
Update autos and versions to 0.11.0
2017-02-01 17:42:20 -08:00
Brad WarrenandGitHub 20be8b327d Provide a way to opt-in to EFF e-mail (#4082)
* Add eff email flags

* add eff_sign_up

* add requests dep to certbot

* make pylint happy

* Add EFF subscribe uri

* add POST to EFF and write tests

* log EFF e-mail submission

* Add eff module and tests

* cleanup client tests

* offer subscription when changing e-mail

* cleanup client.py and tests

* expand e-mail prompt
2017-01-31 17:08:21 -08:00
Brad WarrenandPeter Eckersley 7f3c732bbf Cleanup test farm tests and add test_sdists (#4089)
* add get_certbot_version.sh

* Use get_certbot_version.sh in build.py

* make test_leauto_upgrades.sh more robust

* auto upgrades break tests

* OCSP experimental is not needed anymore

* Add test_sdists.sh

* Use LE_AUTO_VERSION, not repo version

* install OS deps earlier

* use readlink not realpath

* undo changes to build.py

* Factor out version code from build.py

* Use version.py in test_sdists

* Remove get_certbot_version

* workaround setuptools breakage
2017-01-30 19:37:23 -08:00
Brad WarrenandGitHub be5bcfe463 Remove optional dependencies (#4088)
* Stop using already_listening in standalone

* remove already_listening

* remove psutil entirely

* fix #595

* Add basic perform test

* make pep8 happy

* Add test_perform_eacces

* add _setup_perform_error

* Add test_perform_unexpected_socket_error

* add test_perform_eaddrinuse_no_retry

* add test_perform_eaddrinuse_retry

* cleanup tests

* stop using dnspython

* don't install dns extras in tox

* remove dns extras from setup.py

* Add simple_verify back to DNS response

* remove dnspython from oldest tests
2017-01-30 16:55:54 -08:00
Brad WarrenandGitHub 240438eec7 Incorporate feedback from 4113 (#4115) 2017-01-30 09:44:55 -08:00
Brad WarrenandGitHub caa7e4e3f0 fix tools/venv.sh (#4126) 2017-01-27 14:06:40 -08:00
Brad WarrenandGitHub fe03c5a14c fix integration tests (#4111) 2017-01-26 14:08:22 -08:00
Brad WarrenandGitHub 4e297b0248 Release 0.10.2 (#4120)
* Release 0.10.2

(cherry picked from commit 535b04be23)

* Bump version to 0.11.0

(cherry picked from commit 01f84df0641a98bb57b4b7be7980c3c1afe375d5)
2017-01-26 12:03:12 -08:00
Brad WarrenandGitHub 4d860b37b0 Preserve preferred-challenges on renewal (#4112)
* use challenge type strings, not objectS

* Factor out parse_preferred_challenges

* restore pref_challs

* save pref_challs

* Make CheckCertCount more flexible

* improve integration tests

* Make pref_challs more flexible
2017-01-25 18:40:22 -08:00
Brad WarrenandGitHub 2f50dfd7be Merge pull request #4113 from certbot/auto-retry
Automatically retry after getting badNonce error
2017-01-25 17:33:21 -08:00
Brad WarrenandPeter Eckersley 578815a20a uncomment assertion (#4072) 2017-01-24 14:39:27 -08:00
Brad WarrenandPeter Eckersley 44f2d4aa20 Fix modification-check.sh (#4091)
* Run build.py

* Restore letsencrypt-auto after running build

* Remove temp_dir before exiting

* add missing $
2017-01-24 14:37:41 -08:00
Brad WarrenandPeter Eckersley 6a55de45ba Fix letsencrypt auto source (#4093)
* Some shells don't like ==

* run build.py
2017-01-23 17:55:59 -08:00
Brad WarrenandPeter Eckersley bb669528b3 Remove old references to pep8 in our code (#4073) 2017-01-19 11:21:25 -08:00
Brad WarrenandGitHub ea951150a4 Enable Py36 Tests (#3972)
* add py36 to tox

* Add Python 3.6 tests to Travis

* Provide real path to python stdlib during tests

* set logs_dir in config_test

* set *_dirs in DetermineAccountTest

* Fix TLSSNI01Test

* Fix RenewalTest

* fix test_ancient_webroot_renewal_conf
2017-01-18 10:41:11 -08:00
Brad WarrenandGitHub 16ed5bdd47 encode to bytes as necessary in Validator.certificate (#4026) 2017-01-17 12:13:10 -08:00
Brad WarrenandGitHub 7f3109f185 Candidate 0.10.1 to master (#4057)
* Release 0.10.1

(cherry picked from commit 0ead110658)

* Bump version to 0.11.0

(cherry picked from commit 5052c64dc9d790b8bd5ef3cf19b9ed3727cfc21f)
2017-01-13 17:15:50 -08:00
Brad WarrenandGitHub aaa732d8f3 Fix problems with different test ordering (#4043)
* fixes #4030

* Properly restore set_by_cli after using it

* mock out post_hook so it isn't stored

* fixes #4044
2017-01-13 12:16:08 -08:00
Brad WarrenandGitHub 364a6d8a2d Release 0.10.0 (#4022)
* Release 0.10.0

* Bump version to 0.11.0
2017-01-11 12:01:33 -08:00
Brad WarrenandGitHub 9c9004aff1 Stop IDisplay AssertionErrors (#4010)
Fixes #3996.

I'm pretty confident this PR solves the problem. I've audited all calls to IDisplay methods and the assertions done in certbot.display.util are now done in all our unit tests.

With that said, it wouldn't hurt to have someone else double check I didn't miss anything. The easiest way to do this is to grep for IDisplay in our code and ensure all calls to IDisplay methods are valid. This means every method call other than notification (because a notification call is always OK) either provides a value for default or force_interactive. This is defined in interfaces.py.

I've also been considering removing the assertion that's been causing us trouble here from our release. The only argument I have for not doing so is it may hinder 3rd party plugin development. When they use IDisplay, they have the same problem as we do with prompting users without a TTY. Not keeping this assertion in makes it more likely they won't notice the issue and Certbot will crash on an unsuspecting user.

With that said, none of our known 3rd party plugins use IDisplay at all.

* Provide force_interactive in _get_certname

* Use force_interactive when asking for webroot

* Factor IDisplay assertion into it's own function

* Add util.patch_get_utility()

* Allow custom path to patch_get_utiity

* Change GetEmailTest to use patch_get_utility

* Use new_callable to create new objects

* Modify tests to use patch_get_utility

* Improve FreezableMock documentation

* Add user facing error to TTY magic

* Comment out assert_valid_call

* Add test_input_assertion_fail2()
2017-01-10 16:25:33 -08:00
Brad WarrenandGitHub 1125b4924d Remove quotes so tilde is expanded (#3978) 2017-01-05 20:27:39 -05:00
Brad WarrenandGitHub dc16013abe Correctly report when we skip hooks during renewal (#3977)
* Remove incorrect hook message

* Add generalized msg about skipping hooks

* Properly report when hooks were skipped

* Also print message about renew hook

* Change quotes to help OCD
2017-01-05 19:47:10 -05:00
Brad WarrenandGitHub 13ed5c06ea Merge pull request #3956 from certbot/ocsp
Further OCSP improvements
2017-01-05 16:05:19 -05:00
Brad WarrenandPeter Eckersley 12edbb53db Fixes #3954 and adds a test to prevent regressions (#3957)
* fixes #3954 and adds test to prevent regressions

* assure pylint I know what I'm doing

* Test FileDisplay methods take force_interactive
2016-12-23 10:49:51 -08:00
Brad WarrenandGitHub 39f5551305 Merge the manual and script plugins (#3890)
* Start of combined manual/script plugin

* Return str from hooks.execute, not bytes

* finish manual/script rewrite

* delete old manual and script plugins

* manually specify we want chall.token

* use consistent quotes

* specify chall for uri

* s/script/hook

* fix spacing on instructions

* remove unneeded response argument

* make achall more helpful

* simplify perform

* remove old test files

* add start of manual_tests

* fix ParseTest.test_help

* stop using manual_test_mode in cli tests

* Revert "make achall more helpful"

This reverts commit 54b01cea30.

* use bad response/validation methods on achalls

* simplify perform and cleanup environment

* finish manual tests

* Add HTTP manual hook integration test

* add manual http scripts

* Add manual DNS script integration test

* remove references to the script plugin

* they're hooks, not scripts

* add --manual-public-ip-logging-ok to integration tests

* use --pref-chall for dns integration

* does dns work?

* validate hooks

* test hook validation

* Revert "does dns work?"

This reverts commit 1224cc2961.

* busy wait in manual-http-auth

* remove DNS script test for now

* Fix challenge prefix and add trailing .

* Add comment about universal_newlines

* Fix typo from 0464ba2c4

* fix nits and typos

* Generalize HookCOmmandNotFound error

* Add verify_exe_exists

* Don't duplicate code in hooks.py

* Revert changes to hooks.py

* Use consistent hook error messages
2016-12-22 08:24:08 -08:00
Brad WarrenandPeter Eckersley 00e143d369 Serialize coverage tests (#3919)
* Serialize coverage tests

* add py27_install env

* Separate cover from integration tests

* Add docker to py27 integration tests
2016-12-20 16:24:33 -08:00
Brad WarrenandGitHub 28ce10fef5 Don't add ServerAlias directives when the domain is already covered by a wildcard (#3917)
* correctly match * and ? in ServerAlias directives

* update Apache wildcard test

* Consolidate wildcard matching and remove bad test

* Test Apache vhost selection with wildcards

* Added few more tests to proof vhost selection
2016-12-20 15:53:52 -08:00