mirror of
https://github.com/certbot/certbot.git
synced 2026-01-26 07:41:33 +03:00
Implement an Authenticator which can fulfill a dns-01 challenge using the
DigitalOcean API. Applicable only for domains using DigitalOcean for DNS.
Testing Done:
* `tox -e py27`
* `tox -e lint`
* Manual testing:
* Used `certbot certonly --dns-digitalocean -d`, specifying a
credentials file as a command line argument. Verified that a
certificate was successfully obtained without user interaction.
* Used `certbot certonly --dns-digitalocean -d`, without specifying a
credentials file as a command line argument. Verified that the user
was prompted and that a certificate was successfully obtained.
* Used `certbot certonly -d`. Verified that the user was prompted for
a credentials file after selecting digitalocean interactively and
that a certificate was successfully obtained.
* Used `certbot renew --force-renewal`. Verified that certificates
were renewed without user interaction.
* Negative testing:
* Path to non-existent credentials file.
* Credentials file with unsafe permissions (644).
* Credentials file missing token.
* Credentials file with blank token.
* Credentials file with incorrect token.
* Domain name not registered to DigitalOcean account.
52 lines
1.5 KiB
Bash
Executable File
52 lines
1.5 KiB
Bash
Executable File
#!/bin/sh -xe
|
|
|
|
# USAGE: ./tox.cover.sh [package]
|
|
#
|
|
# This script is used by tox.ini (and thus Travis CI) in order to
|
|
# generate separate stats for each package. It should be removed once
|
|
# those packages are moved to separate repo.
|
|
#
|
|
# -e makes sure we fail fast and don't submit coveralls submit
|
|
|
|
if [ "xxx$1" = "xxx" ]; then
|
|
pkgs="certbot acme certbot_apache certbot_dns_cloudflare certbot_dns_digitalocean certbot_nginx letshelp_certbot"
|
|
else
|
|
pkgs="$@"
|
|
fi
|
|
|
|
cover () {
|
|
if [ "$1" = "certbot" ]; then
|
|
min=98
|
|
elif [ "$1" = "acme" ]; then
|
|
min=100
|
|
elif [ "$1" = "certbot_apache" ]; then
|
|
min=100
|
|
elif [ "$1" = "certbot_dns_cloudflare" ]; then
|
|
min=98
|
|
elif [ "$1" = "certbot_dns_digitalocean" ]; then
|
|
min=98
|
|
elif [ "$1" = "certbot_nginx" ]; then
|
|
min=97
|
|
elif [ "$1" = "letshelp_certbot" ]; then
|
|
min=100
|
|
else
|
|
echo "Unrecognized package: $1"
|
|
exit 1
|
|
fi
|
|
|
|
# "-c /dev/null" makes sure setup.cfg is not loaded (multiple
|
|
# --with-cover add up, --cover-erase must not be set for coveralls
|
|
# to get all the data); --with-cover scopes coverage to only
|
|
# specific package, positional argument scopes tests only to
|
|
# specific package directory; --cover-tests makes sure every tests
|
|
# is run (c.f. #403)
|
|
nosetests -c /dev/null --with-cover --cover-tests --cover-package \
|
|
"$1" --cover-min-percentage="$min" "$1"
|
|
}
|
|
|
|
rm -f .coverage # --cover-erase is off, make sure stats are correct
|
|
for pkg in $pkgs
|
|
do
|
|
cover $pkg
|
|
done
|