Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/certbot/certbot.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/certbot-boulder-integration.sh2
-rwxr-xr-xtests/integration/_common.sh1
-rwxr-xr-xtests/letstest/scripts/test_apache2.sh2
-rwxr-xr-xtests/letstest/scripts/test_tox.sh2
-rw-r--r--tests/lock_test.py9
-rwxr-xr-xtests/modification-check.py124
-rwxr-xr-xtests/modification-check.sh59
7 files changed, 136 insertions, 63 deletions
diff --git a/tests/certbot-boulder-integration.sh b/tests/certbot-boulder-integration.sh
index e250e591b..73e668e28 100755
--- a/tests/certbot-boulder-integration.sh
+++ b/tests/certbot-boulder-integration.sh
@@ -394,7 +394,7 @@ openssl x509 -in "${root}/csr/cert-p384.pem" -text | grep 'ASN1 OID: secp384r1'
# OCSP Must Staple
common auth --must-staple --domains "must-staple.le.wtf"
-openssl x509 -in "${root}/conf/live/must-staple.le.wtf/cert.pem" -text | grep '1.3.6.1.5.5.7.1.24'
+openssl x509 -in "${root}/conf/live/must-staple.le.wtf/cert.pem" -text | grep -E 'status_request|1\.3\.6\.1\.5\.5\.7\.1\.24'
# revoke by account key
common revoke --cert-path "$root/conf/live/le.wtf/cert.pem" --delete-after-revoke
diff --git a/tests/integration/_common.sh b/tests/integration/_common.sh
index a8d35ed89..1e444fa26 100755
--- a/tests/integration/_common.sh
+++ b/tests/integration/_common.sh
@@ -25,6 +25,7 @@ certbot_test_no_force_renew () {
omit_patterns="*/*.egg-info/*,*/dns_common*,*/setup.py,*/test_*,*/tests/*"
omit_patterns="$omit_patterns,*_test.py,*_test_*,certbot-apache/*"
omit_patterns="$omit_patterns,certbot-compatibility-test/*,certbot-dns*/"
+ omit_patterns="$omit_patterns,certbot-nginx/certbot_nginx/parser_obj.py"
coverage run \
--append \
--source $sources \
diff --git a/tests/letstest/scripts/test_apache2.sh b/tests/letstest/scripts/test_apache2.sh
index 6b5d63c80..4036e6efa 100755
--- a/tests/letstest/scripts/test_apache2.sh
+++ b/tests/letstest/scripts/test_apache2.sh
@@ -45,7 +45,7 @@ if [ $? -ne 0 ] ; then
exit 1
fi
-tools/_venv_common.sh -e acme[dev] -e .[dev,docs] -e certbot-apache
+python tools/_venv_common.py -e acme[dev] -e .[dev,docs] -e certbot-apache
sudo venv/bin/certbot -v --debug --text --agree-dev-preview --agree-tos \
--renew-by-default --redirect --register-unsafely-without-email \
--domain $PUBLIC_HOSTNAME --server $BOULDER_URL
diff --git a/tests/letstest/scripts/test_tox.sh b/tests/letstest/scripts/test_tox.sh
index 84e4bcd22..bb9126673 100755
--- a/tests/letstest/scripts/test_tox.sh
+++ b/tests/letstest/scripts/test_tox.sh
@@ -14,5 +14,5 @@ VENV_BIN=${VENV_PATH}/bin
"$LEA_PATH/letsencrypt-auto" --os-packages-only
cd letsencrypt
-./tools/venv.sh
+python tools/venv.py
venv/bin/tox -e py27
diff --git a/tests/lock_test.py b/tests/lock_test.py
index b01cc5d58..0266cf029 100644
--- a/tests/lock_test.py
+++ b/tests/lock_test.py
@@ -1,4 +1,6 @@
"""Tests to ensure the lock order is preserved."""
+from __future__ import print_function
+
import atexit
import functools
import logging
@@ -235,4 +237,9 @@ def log_output(level, out, err):
if __name__ == "__main__":
- main()
+ if os.name != 'nt':
+ main()
+ else:
+ print(
+ 'Warning: lock_test cannot be executed on Windows, '
+ 'as it relies on a Nginx distribution for Linux.')
diff --git a/tests/modification-check.py b/tests/modification-check.py
new file mode 100755
index 000000000..e00994b04
--- /dev/null
+++ b/tests/modification-check.py
@@ -0,0 +1,124 @@
+#!/usr/bin/env python
+
+from __future__ import print_function
+
+import os
+import subprocess
+import sys
+import tempfile
+import shutil
+try:
+ from urllib.request import urlretrieve
+except ImportError:
+ from urllib import urlretrieve
+
+def find_repo_path():
+ return os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+
+# We do not use filecmp.cmp to take advantage of universal newlines
+# handling in open() for Python 3.x and be insensitive to CRLF/LF when run on Windows.
+# As a consequence, this function will not work correctly if executed by Python 2.x on Windows.
+# But it will work correctly on Linux for any version, because every file tested will be LF.
+def compare_files(path_1, path_2):
+ l1 = l2 = True
+ with open(path_1, 'r') as f1, open(path_2, 'r') as f2:
+ line = 1
+ while l1 and l2:
+ line += 1
+ l1 = f1.readline()
+ l2 = f2.readline()
+ if l1 != l2:
+ print('---')
+ print((
+ 'While comparing {0} (1) and {1} (2), a difference was found at line {2}:'
+ .format(os.path.basename(path_1), os.path.basename(path_2), line)))
+ print('(1): {0}'.format(repr(l1)))
+ print('(2): {0}'.format(repr(l2)))
+ print('---')
+ return False
+
+ return True
+
+def validate_scripts_content(repo_path, temp_cwd):
+ errors = False
+
+ if not compare_files(
+ os.path.join(repo_path, 'certbot-auto'),
+ os.path.join(repo_path, 'letsencrypt-auto')):
+ print('Root certbot-auto and letsencrypt-auto differ.')
+ errors = True
+ else:
+ shutil.copyfile(
+ os.path.join(repo_path, 'certbot-auto'),
+ os.path.join(temp_cwd, 'local-auto'))
+ shutil.copy(os.path.normpath(os.path.join(
+ repo_path,
+ 'letsencrypt-auto-source/pieces/fetch.py')), temp_cwd)
+
+ # Compare file against current version in the target branch
+ branch = os.environ.get('TRAVIS_BRANCH', 'master')
+ url = (
+ 'https://raw.githubusercontent.com/certbot/certbot/{0}/certbot-auto'
+ .format(branch))
+ urlretrieve(url, os.path.join(temp_cwd, 'certbot-auto'))
+
+ if compare_files(
+ os.path.join(temp_cwd, 'certbot-auto'),
+ os.path.join(temp_cwd, 'local-auto')):
+ print('Root *-auto were unchanged')
+ else:
+ # Compare file against the latest released version
+ latest_version = subprocess.check_output(
+ [sys.executable, 'fetch.py', '--latest-version'], cwd=temp_cwd)
+ subprocess.call(
+ [sys.executable, 'fetch.py', '--le-auto-script',
+ 'v{0}'.format(latest_version.decode().strip())], cwd=temp_cwd)
+ if compare_files(
+ os.path.join(temp_cwd, 'letsencrypt-auto'),
+ os.path.join(temp_cwd, 'local-auto')):
+ print('Root *-auto were updated to the latest version.')
+ else:
+ print('Root *-auto have unexpected changes.')
+ errors = True
+
+ return errors
+
+def main():
+ repo_path = find_repo_path()
+ temp_cwd = tempfile.mkdtemp()
+ errors = False
+
+ try:
+ errors = validate_scripts_content(repo_path, temp_cwd)
+
+ shutil.copyfile(
+ os.path.normpath(os.path.join(repo_path, 'letsencrypt-auto-source/letsencrypt-auto')),
+ os.path.join(temp_cwd, 'original-lea')
+ )
+ subprocess.call([sys.executable, os.path.normpath(os.path.join(
+ repo_path, 'letsencrypt-auto-source/build.py'))])
+ shutil.copyfile(
+ os.path.normpath(os.path.join(repo_path, 'letsencrypt-auto-source/letsencrypt-auto')),
+ os.path.join(temp_cwd, 'build-lea')
+ )
+ shutil.copyfile(
+ os.path.join(temp_cwd, 'original-lea'),
+ os.path.normpath(os.path.join(repo_path, 'letsencrypt-auto-source/letsencrypt-auto'))
+ )
+
+ if not compare_files(
+ os.path.join(temp_cwd, 'original-lea'),
+ os.path.join(temp_cwd, 'build-lea')):
+ print('Script letsencrypt-auto-source/letsencrypt-auto '
+ 'doesn\'t match output of build.py.')
+ errors = True
+ else:
+ print('Script letsencrypt-auto-source/letsencrypt-auto matches output of build.py.')
+ finally:
+ shutil.rmtree(temp_cwd)
+
+ return errors
+
+if __name__ == '__main__':
+ if main():
+ sys.exit(1)
diff --git a/tests/modification-check.sh b/tests/modification-check.sh
deleted file mode 100755
index 0145b0228..000000000
--- a/tests/modification-check.sh
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/bin/bash -e
-
-temp_dir=`mktemp -d`
-trap "rm -rf $temp_dir" EXIT
-
-# cd to repo root
-cd $(dirname $(dirname $(readlink -f $0)))
-FLAG=false
-
-if ! cmp -s certbot-auto letsencrypt-auto; then
- echo "Root certbot-auto and letsencrypt-auto differ."
- FLAG=true
-else
- cp certbot-auto "$temp_dir/local-auto"
- cp letsencrypt-auto-source/pieces/fetch.py "$temp_dir/fetch.py"
- cd $temp_dir
-
- # Compare file against current version in the target branch
- BRANCH=${TRAVIS_BRANCH:-master}
- URL="https://raw.githubusercontent.com/certbot/certbot/$BRANCH/certbot-auto"
- curl -sS $URL > certbot-auto
- if cmp -s certbot-auto local-auto; then
- echo "Root *-auto were unchanged."
- else
- # Compare file against the latest released version
- python fetch.py --le-auto-script "v$(python fetch.py --latest-version)"
- if cmp -s letsencrypt-auto local-auto; then
- echo "Root *-auto were updated to the latest version."
- else
- echo "Root *-auto have unexpected changes."
- FLAG=true
- fi
- fi
- cd ~-
-fi
-
-# Compare letsencrypt-auto-source/letsencrypt-auto with output of build.py
-
-cp letsencrypt-auto-source/letsencrypt-auto ${temp_dir}/original-lea
-python letsencrypt-auto-source/build.py
-cp letsencrypt-auto-source/letsencrypt-auto ${temp_dir}/build-lea
-cp ${temp_dir}/original-lea letsencrypt-auto-source/letsencrypt-auto
-
-cd $temp_dir
-
-if ! cmp -s original-lea build-lea; then
- echo "letsencrypt-auto-source/letsencrypt-auto doesn't match output of \
-build.py."
- FLAG=true
-else
- echo "letsencrypt-auto-source/letsencrypt-auto matches output of \
-build.py."
-fi
-
-rm -rf $temp_dir
-
-if $FLAG ; then
- exit 1
-fi