diff --git a/acme/tests/challenges_test.py b/acme/tests/challenges_test.py index 1a855788c..000451f78 100644 --- a/acme/tests/challenges_test.py +++ b/acme/tests/challenges_test.py @@ -1,4 +1,5 @@ """Tests for acme.challenges.""" +import sys import unittest from unittest import mock import urllib.parse as urllib_parse @@ -6,6 +7,7 @@ import urllib.parse as urllib_parse import josepy as jose from josepy.jwk import JWKEC import OpenSSL +import pytest import requests from acme import errors @@ -505,4 +507,4 @@ class JWSPayloadRFC8555Compliant(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/client_test.py b/acme/tests/client_test.py index 06f527e84..ee969683e 100644 --- a/acme/tests/client_test.py +++ b/acme/tests/client_test.py @@ -4,11 +4,13 @@ import copy import datetime import http.client as http_client import json +import sys from typing import Dict import unittest from unittest import mock import josepy as jose +import pytest import requests from acme import challenges @@ -792,4 +794,4 @@ class ClientNetworkWithMockedResponseTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/crypto_util_test.py b/acme/tests/crypto_util_test.py index 81f8fcdce..008430ac4 100644 --- a/acme/tests/crypto_util_test.py +++ b/acme/tests/crypto_util_test.py @@ -3,6 +3,7 @@ import ipaddress import itertools import socket import socketserver +import sys import threading import time from typing import List @@ -10,6 +11,7 @@ import unittest import josepy as jose import OpenSSL +import pytest from acme import errors import test_util @@ -351,4 +353,4 @@ class DumpPyopensslChainTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/errors_test.py b/acme/tests/errors_test.py index f325b284e..0e9f10fe1 100644 --- a/acme/tests/errors_test.py +++ b/acme/tests/errors_test.py @@ -1,7 +1,10 @@ """Tests for acme.errors.""" +import sys import unittest from unittest import mock +import pytest + class BadNonceTest(unittest.TestCase): """Tests for acme.errors.BadNonce.""" @@ -49,4 +52,4 @@ class PollErrorTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/fields_test.py b/acme/tests/fields_test.py index 68e5c9a7f..f07759397 100644 --- a/acme/tests/fields_test.py +++ b/acme/tests/fields_test.py @@ -1,9 +1,11 @@ """Tests for acme.fields.""" import datetime +import sys import unittest import warnings import josepy as jose +import pytest import pytz @@ -56,4 +58,4 @@ class RFC3339FieldTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/jose_test.py b/acme/tests/jose_test.py index 1564e0d38..b0b7194fe 100644 --- a/acme/tests/jose_test.py +++ b/acme/tests/jose_test.py @@ -1,7 +1,10 @@ """Tests for acme.jose shim.""" import importlib +import sys import unittest +import pytest + class JoseTest(unittest.TestCase): """Tests for acme.jose shim.""" @@ -51,4 +54,4 @@ class JoseTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/jws_test.py b/acme/tests/jws_test.py index 0787fb340..96e0e7d4d 100644 --- a/acme/tests/jws_test.py +++ b/acme/tests/jws_test.py @@ -1,7 +1,9 @@ """Tests for acme.jws.""" +import sys import unittest import josepy as jose +import pytest import test_util @@ -63,4 +65,4 @@ class JWSTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/messages_test.py b/acme/tests/messages_test.py index 7c1664ba4..22a22e228 100644 --- a/acme/tests/messages_test.py +++ b/acme/tests/messages_test.py @@ -1,11 +1,13 @@ """Tests for acme.messages.""" import contextlib +import sys from typing import Dict import unittest from unittest import mock import warnings import josepy as jose +import pytest from acme import challenges import test_util @@ -520,4 +522,4 @@ class JWSPayloadRFC8555Compliant(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/standalone_test.py b/acme/tests/standalone_test.py index db4e39b5a..f9bc0c58c 100644 --- a/acme/tests/standalone_test.py +++ b/acme/tests/standalone_test.py @@ -2,12 +2,14 @@ import http.client as http_client import socket import socketserver +import sys import threading from typing import Set import unittest from unittest import mock import josepy as jose +import pytest import requests from acme import challenges @@ -267,4 +269,4 @@ class HTTP01DualNetworkedServersTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/acme/tests/util_test.py b/acme/tests/util_test.py index 00aa8b02d..372694b67 100644 --- a/acme/tests/util_test.py +++ b/acme/tests/util_test.py @@ -1,6 +1,9 @@ """Tests for acme.util.""" +import sys import unittest +import pytest + class MapKeysTest(unittest.TestCase): """Tests for acme.util.map_keys.""" @@ -13,4 +16,4 @@ class MapKeysTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/setup.py b/certbot-apache/setup.py index 3eb927042..ab545be03 100644 --- a/certbot-apache/setup.py +++ b/certbot-apache/setup.py @@ -17,6 +17,10 @@ dev_extras = [ 'apacheconfig>=0.3.2', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-apache', version=version, @@ -52,6 +56,7 @@ setup( install_requires=install_requires, extras_require={ 'dev': dev_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-apache/tests/autohsts_test.py b/certbot-apache/tests/autohsts_test.py index 70ed2ca1a..b2e071695 100644 --- a/certbot-apache/tests/autohsts_test.py +++ b/certbot-apache/tests/autohsts_test.py @@ -1,9 +1,12 @@ # pylint: disable=too-many-lines """Test for certbot_apache._internal.configurator AutoHSTS functionality""" import re +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot_apache._internal import constants import util @@ -180,4 +183,4 @@ class AutoHSTSTest(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/centos_test.py b/certbot-apache/tests/centos_test.py index 71cc6df00..5aba89388 100644 --- a/certbot-apache/tests/centos_test.py +++ b/certbot-apache/tests/centos_test.py @@ -1,7 +1,10 @@ """Test for certbot_apache._internal.configurator for Centos overrides""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import filesystem from certbot.compat import os @@ -238,4 +241,4 @@ class MultipleVhostsTestCentOS(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/complex_parsing_test.py b/certbot-apache/tests/complex_parsing_test.py index 973af302a..c26a65b64 100644 --- a/certbot-apache/tests/complex_parsing_test.py +++ b/certbot-apache/tests/complex_parsing_test.py @@ -1,7 +1,10 @@ """Tests for certbot_apache._internal.parser.""" import shutil +import sys import unittest +import pytest + from certbot import errors from certbot.compat import os import util @@ -124,4 +127,4 @@ class ComplexParserTest(util.ParserTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/configurator_reverter_test.py b/certbot-apache/tests/configurator_reverter_test.py index fe0dfb39d..b0ddacfed 100644 --- a/certbot-apache/tests/configurator_reverter_test.py +++ b/certbot-apache/tests/configurator_reverter_test.py @@ -1,8 +1,11 @@ """Test for certbot_apache._internal.configurator implementations of reverter""" import shutil +import sys import unittest from unittest import mock +import pytest + from certbot import errors import util @@ -73,4 +76,4 @@ class ConfiguratorReverterTest(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/configurator_test.py b/certbot-apache/tests/configurator_test.py index f1f9a5e0d..e9ac734f9 100644 --- a/certbot-apache/tests/configurator_test.py +++ b/certbot-apache/tests/configurator_test.py @@ -3,10 +3,13 @@ import copy import shutil import socket +import sys import tempfile import unittest from unittest import mock +import pytest + from acme import challenges from certbot import achallenges from certbot import crypto_util @@ -1773,4 +1776,4 @@ class InstallSslOptionsConfTest(util.ApacheTest): self.assertEqual(self.config._open_module_file("/nonsense/"), "testing 12 3") if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/debian_test.py b/certbot-apache/tests/debian_test.py index facc65107..775b542a2 100644 --- a/certbot-apache/tests/debian_test.py +++ b/certbot-apache/tests/debian_test.py @@ -1,8 +1,11 @@ """Test for certbot_apache._internal.configurator for Debian overrides""" import shutil +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os from certbot.tests import util as certbot_util @@ -211,4 +214,4 @@ class MultipleVhostsTestDebian(util.ApacheTest): errors.MisconfigurationError, self.config.enable_mod, "ssl") if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/display_ops_test.py b/certbot-apache/tests/display_ops_test.py index 26927ffad..d730f7c78 100644 --- a/certbot-apache/tests/display_ops_test.py +++ b/certbot-apache/tests/display_ops_test.py @@ -1,7 +1,10 @@ """Test certbot_apache._internal.display_ops.""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.display import util as display_util from certbot.tests import util as certbot_util @@ -100,4 +103,4 @@ class SelectVhostTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/entrypoint_test.py b/certbot-apache/tests/entrypoint_test.py index 0b9644f09..c6dbd53b2 100644 --- a/certbot-apache/tests/entrypoint_test.py +++ b/certbot-apache/tests/entrypoint_test.py @@ -1,7 +1,10 @@ """Test for certbot_apache._internal.entrypoint for override class resolution""" +import sys import unittest from unittest import mock +import pytest + from certbot_apache._internal import configurator from certbot_apache._internal import entrypoint @@ -43,4 +46,4 @@ class EntryPointTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/fedora_test.py b/certbot-apache/tests/fedora_test.py index 4ff704aaf..faf6e8ccc 100644 --- a/certbot-apache/tests/fedora_test.py +++ b/certbot-apache/tests/fedora_test.py @@ -1,7 +1,10 @@ """Test for certbot_apache._internal.configurator for Fedora 29+ overrides""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import filesystem from certbot.compat import os @@ -190,4 +193,4 @@ class MultipleVhostsTestFedora(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/gentoo_test.py b/certbot-apache/tests/gentoo_test.py index 4df46e70f..201cccb85 100644 --- a/certbot-apache/tests/gentoo_test.py +++ b/certbot-apache/tests/gentoo_test.py @@ -1,7 +1,10 @@ """Test for certbot_apache._internal.configurator for Gentoo overrides""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import filesystem from certbot.compat import os @@ -133,4 +136,4 @@ class MultipleVhostsTestGentoo(util.ApacheTest): self.assertEqual(mock_run_script.call_count, 3) if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/http_01_test.py b/certbot-apache/tests/http_01_test.py index 6ece4c6be..5fbf52bf5 100644 --- a/certbot-apache/tests/http_01_test.py +++ b/certbot-apache/tests/http_01_test.py @@ -1,9 +1,12 @@ """Test for certbot_apache._internal.http_01.""" import errno +import sys from typing import List import unittest from unittest import mock +import pytest + from acme import challenges from certbot import achallenges from certbot import errors @@ -220,4 +223,4 @@ class ApacheHttp01Test(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/obj_test.py b/certbot-apache/tests/obj_test.py index 411ec21e9..a2053dc43 100644 --- a/certbot-apache/tests/obj_test.py +++ b/certbot-apache/tests/obj_test.py @@ -1,6 +1,9 @@ """Tests for certbot_apache._internal.obj.""" +import sys import unittest +import pytest + class VirtualHostTest(unittest.TestCase): """Test the VirtualHost class.""" @@ -137,4 +140,4 @@ class AddrTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/parser_test.py b/certbot-apache/tests/parser_test.py index 77b2f34ec..a5950804c 100644 --- a/certbot-apache/tests/parser_test.py +++ b/certbot-apache/tests/parser_test.py @@ -1,8 +1,11 @@ """Tests for certbot_apache._internal.parser.""" import shutil +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os import util @@ -400,4 +403,4 @@ class ParserInitTest(util.ApacheTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/parsernode_configurator_test.py b/certbot-apache/tests/parsernode_configurator_test.py index 6c153acc4..ea704c3a9 100644 --- a/certbot-apache/tests/parsernode_configurator_test.py +++ b/certbot-apache/tests/parsernode_configurator_test.py @@ -1,7 +1,10 @@ """Tests for ApacheConfigurator for AugeasParserNode classes""" +import sys import unittest from unittest import mock +import pytest + import util try: @@ -40,4 +43,4 @@ class ConfiguratorParserNodeTest(util.ApacheTest): # pylint: disable=too-many-p if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/parsernode_test.py b/certbot-apache/tests/parsernode_test.py index 4ea5f8415..35eb53414 100644 --- a/certbot-apache/tests/parsernode_test.py +++ b/certbot-apache/tests/parsernode_test.py @@ -1,7 +1,10 @@ """ Tests for ParserNode interface """ +import sys import unittest +import pytest + from certbot_apache._internal import interfaces from certbot_apache._internal import parsernode_util as util @@ -125,4 +128,4 @@ class ParserNodeTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-apache/tests/parsernode_util_test.py b/certbot-apache/tests/parsernode_util_test.py index 715388da5..fd2e35ab5 100644 --- a/certbot-apache/tests/parsernode_util_test.py +++ b/certbot-apache/tests/parsernode_util_test.py @@ -1,6 +1,9 @@ """ Tests for ParserNode utils """ +import sys import unittest +import pytest + from certbot_apache._internal import parsernode_util as util @@ -112,4 +115,4 @@ class ParserNodeUtilTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-cloudflare/setup.py b/certbot-dns-cloudflare/setup.py index 2891423c0..3ac78a942 100644 --- a/certbot-dns-cloudflare/setup.py +++ b/certbot-dns-cloudflare/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-cloudflare', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-cloudflare/tests/dns_cloudflare_test.py b/certbot-dns-cloudflare/tests/dns_cloudflare_test.py index cd73adc8f..40f3ca2c0 100644 --- a/certbot-dns-cloudflare/tests/dns_cloudflare_test.py +++ b/certbot-dns-cloudflare/tests/dns_cloudflare_test.py @@ -1,9 +1,11 @@ """Tests for certbot_dns_cloudflare._internal.dns_cloudflare.""" +import sys import unittest from unittest import mock import CloudFlare +import pytest from certbot import errors from certbot.compat import os @@ -245,4 +247,4 @@ class CloudflareClientTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-digitalocean/setup.py b/certbot-dns-digitalocean/setup.py index de8a3e98f..ca1b1612e 100644 --- a/certbot-dns-digitalocean/setup.py +++ b/certbot-dns-digitalocean/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-digitalocean', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-digitalocean/tests/dns_digitalocean_test.py b/certbot-dns-digitalocean/tests/dns_digitalocean_test.py index 8fdee38f3..a70768e98 100644 --- a/certbot-dns-digitalocean/tests/dns_digitalocean_test.py +++ b/certbot-dns-digitalocean/tests/dns_digitalocean_test.py @@ -1,9 +1,11 @@ """Tests for certbot_dns_digitalocean._internal.dns_digitalocean.""" +import sys import unittest from unittest import mock import digitalocean +import pytest from certbot import errors from certbot.compat import os @@ -172,4 +174,4 @@ class DigitalOceanClientTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-dnsimple/setup.py b/certbot-dns-dnsimple/setup.py index 1395fd1ef..5760b6381 100644 --- a/certbot-dns-dnsimple/setup.py +++ b/certbot-dns-dnsimple/setup.py @@ -32,6 +32,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-dnsimple', version=version, @@ -67,6 +71,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-dnsimple/tests/dns_dnsimple_test.py b/certbot-dns-dnsimple/tests/dns_dnsimple_test.py index 0e28f43b2..31a91be0f 100644 --- a/certbot-dns-dnsimple/tests/dns_dnsimple_test.py +++ b/certbot-dns-dnsimple/tests/dns_dnsimple_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_dnsimple._internal.dns_dnsimple.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -48,4 +50,4 @@ class DNSimpleLexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseL if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-dnsmadeeasy/setup.py b/certbot-dns-dnsmadeeasy/setup.py index a12950fa1..103b8c3e9 100644 --- a/certbot-dns-dnsmadeeasy/setup.py +++ b/certbot-dns-dnsmadeeasy/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-dnsmadeeasy', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-dnsmadeeasy/tests/dns_dnsmadeeasy_test.py b/certbot-dns-dnsmadeeasy/tests/dns_dnsmadeeasy_test.py index 46f5895a8..2295e83cf 100644 --- a/certbot-dns-dnsmadeeasy/tests/dns_dnsmadeeasy_test.py +++ b/certbot-dns-dnsmadeeasy/tests/dns_dnsmadeeasy_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_dnsmadeeasy._internal.dns_dnsmadeeasy.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -53,4 +55,4 @@ class DNSMadeEasyLexiconClientTest(unittest.TestCase, if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-gehirn/setup.py b/certbot-dns-gehirn/setup.py index 88f282fcf..77cd937b3 100644 --- a/certbot-dns-gehirn/setup.py +++ b/certbot-dns-gehirn/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-gehirn', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-gehirn/tests/dns_gehirn_test.py b/certbot-dns-gehirn/tests/dns_gehirn_test.py index b982e3e1b..b15e36cab 100644 --- a/certbot-dns-gehirn/tests/dns_gehirn_test.py +++ b/certbot-dns-gehirn/tests/dns_gehirn_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_gehirn._internal.dns_gehirn.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -52,4 +54,4 @@ class GehirnLexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLex if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-google/setup.py b/certbot-dns-google/setup.py index 632a690f1..eb4152456 100644 --- a/certbot-dns-google/setup.py +++ b/certbot-dns-google/setup.py @@ -33,6 +33,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-google', version=version, @@ -68,6 +72,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-google/tests/dns_google_test.py b/certbot-dns-google/tests/dns_google_test.py index 1d27a39a8..58614d1ac 100644 --- a/certbot-dns-google/tests/dns_google_test.py +++ b/certbot-dns-google/tests/dns_google_test.py @@ -1,5 +1,6 @@ """Tests for certbot_dns_google._internal.dns_google.""" +import sys import unittest from unittest import mock @@ -7,6 +8,7 @@ from googleapiclient import discovery from googleapiclient.errors import Error from googleapiclient.http import HttpMock from httplib2 import ServerNotFoundError +import pytest from certbot import errors from certbot.compat import os @@ -410,4 +412,4 @@ class DummyResponse: if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-linode/setup.py b/certbot-dns-linode/setup.py index 36bee97e8..3ff9ad5a0 100644 --- a/certbot-dns-linode/setup.py +++ b/certbot-dns-linode/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-linode', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-linode/tests/dns_linode_test.py b/certbot-dns-linode/tests/dns_linode_test.py index c227ef4b5..be5a7b50b 100644 --- a/certbot-dns-linode/tests/dns_linode_test.py +++ b/certbot-dns-linode/tests/dns_linode_test.py @@ -1,8 +1,11 @@ """Tests for certbot_dns_linode._internal.dns_linode.""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os from certbot.plugins import dns_test_common @@ -144,4 +147,4 @@ class Linode4LexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLe if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-luadns/setup.py b/certbot-dns-luadns/setup.py index c6b889548..729e9950c 100644 --- a/certbot-dns-luadns/setup.py +++ b/certbot-dns-luadns/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-luadns', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-luadns/tests/dns_luadns_test.py b/certbot-dns-luadns/tests/dns_luadns_test.py index 3c1ac6841..2cade9f9a 100644 --- a/certbot-dns-luadns/tests/dns_luadns_test.py +++ b/certbot-dns-luadns/tests/dns_luadns_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_luadns._internal.dns_luadns.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -49,4 +51,4 @@ class LuaDNSLexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLex if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-nsone/setup.py b/certbot-dns-nsone/setup.py index cad383c2b..039cbb180 100644 --- a/certbot-dns-nsone/setup.py +++ b/certbot-dns-nsone/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-nsone', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-nsone/tests/dns_nsone_test.py b/certbot-dns-nsone/tests/dns_nsone_test.py index 13ea09b3d..f4da5b4cc 100644 --- a/certbot-dns-nsone/tests/dns_nsone_test.py +++ b/certbot-dns-nsone/tests/dns_nsone_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_nsone._internal.dns_nsone.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -49,4 +51,4 @@ class NS1LexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLexico if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-ovh/setup.py b/certbot-dns-ovh/setup.py index a8a83018b..8748f6293 100644 --- a/certbot-dns-ovh/setup.py +++ b/certbot-dns-ovh/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-ovh', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-ovh/tests/dns_ovh_test.py b/certbot-dns-ovh/tests/dns_ovh_test.py index 7eb767b70..a83ec8470 100644 --- a/certbot-dns-ovh/tests/dns_ovh_test.py +++ b/certbot-dns-ovh/tests/dns_ovh_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_ovh._internal.dns_ovh.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -59,4 +61,4 @@ class OVHLexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLexico if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-rfc2136/setup.py b/certbot-dns-rfc2136/setup.py index c3fdeb864..476c8a4ab 100644 --- a/certbot-dns-rfc2136/setup.py +++ b/certbot-dns-rfc2136/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-rfc2136', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-rfc2136/tests/dns_rfc2136_test.py b/certbot-dns-rfc2136/tests/dns_rfc2136_test.py index 1f91d3cb6..19943d680 100644 --- a/certbot-dns-rfc2136/tests/dns_rfc2136_test.py +++ b/certbot-dns-rfc2136/tests/dns_rfc2136_test.py @@ -1,11 +1,13 @@ """Tests for certbot_dns_rfc2136._internal.dns_rfc2136.""" +import sys import unittest from unittest import mock import dns.flags import dns.rcode import dns.tsig +import pytest from certbot import errors from certbot.compat import os @@ -234,4 +236,4 @@ class RFC2136ClientTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-route53/setup.py b/certbot-dns-route53/setup.py index 651413516..596146d05 100644 --- a/certbot-dns-route53/setup.py +++ b/certbot-dns-route53/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-route53', version=version, @@ -65,6 +69,7 @@ setup( keywords=['certbot', 'route53', 'aws'], extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-route53/tests/dns_route53_test.py b/certbot-dns-route53/tests/dns_route53_test.py index bdc70e048..3aa8f2b01 100644 --- a/certbot-dns-route53/tests/dns_route53_test.py +++ b/certbot-dns-route53/tests/dns_route53_test.py @@ -1,10 +1,12 @@ """Tests for certbot_dns_route53._internal.dns_route53.Authenticator""" +import sys import unittest from unittest import mock from botocore.exceptions import ClientError from botocore.exceptions import NoCredentialsError +import pytest from certbot import errors from certbot.compat import os @@ -257,4 +259,4 @@ class ClientTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-dns-sakuracloud/setup.py b/certbot-dns-sakuracloud/setup.py index 235ab8d10..464380ccc 100644 --- a/certbot-dns-sakuracloud/setup.py +++ b/certbot-dns-sakuracloud/setup.py @@ -30,6 +30,10 @@ docs_extras = [ 'sphinx_rtd_theme', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-dns-sakuracloud', version=version, @@ -65,6 +69,7 @@ setup( install_requires=install_requires, extras_require={ 'docs': docs_extras, + 'test': test_extras, }, entry_points={ 'certbot.plugins': [ diff --git a/certbot-dns-sakuracloud/tests/dns_sakuracloud_test.py b/certbot-dns-sakuracloud/tests/dns_sakuracloud_test.py index a1abf7b78..2e8fccb55 100644 --- a/certbot-dns-sakuracloud/tests/dns_sakuracloud_test.py +++ b/certbot-dns-sakuracloud/tests/dns_sakuracloud_test.py @@ -1,8 +1,10 @@ """Tests for certbot_dns_sakuracloud._internal.dns_sakuracloud.""" +import sys import unittest from unittest import mock +import pytest from requests.exceptions import HTTPError from certbot.compat import os @@ -53,4 +55,4 @@ class SakuraCloudLexiconClientTest(unittest.TestCase, if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/setup.py b/certbot-nginx/setup.py index 77dc3d257..a2beec1d6 100644 --- a/certbot-nginx/setup.py +++ b/certbot-nginx/setup.py @@ -14,6 +14,10 @@ install_requires = [ 'setuptools>=41.6.0', ] +test_extras = [ + 'pytest', +] + setup( name='certbot-nginx', version=version, @@ -47,6 +51,9 @@ setup( packages=find_packages(), include_package_data=True, install_requires=install_requires, + extras_require={ + 'test': test_extras, + }, entry_points={ 'certbot.plugins': [ 'nginx = certbot_nginx._internal.configurator:NginxConfigurator', diff --git a/certbot-nginx/tests/configurator_test.py b/certbot-nginx/tests/configurator_test.py index 12dc61a38..50e02f5c3 100644 --- a/certbot-nginx/tests/configurator_test.py +++ b/certbot-nginx/tests/configurator_test.py @@ -1,8 +1,10 @@ """Test for certbot_nginx._internal.configurator.""" +import sys import unittest from unittest import mock import OpenSSL +import pytest from acme import challenges from acme import messages @@ -1133,4 +1135,4 @@ class DetermineDefaultServerRootTest(certbot_test_util.ConfigTestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/display_ops_test.py b/certbot-nginx/tests/display_ops_test.py index 19f51e7e8..7c3e878bc 100644 --- a/certbot-nginx/tests/display_ops_test.py +++ b/certbot-nginx/tests/display_ops_test.py @@ -1,6 +1,9 @@ """Test certbot_nginx._internal.display_ops.""" +import sys import unittest +import pytest + from certbot.display import util as display_util from certbot.tests import util as certbot_util from certbot_nginx._internal import parser @@ -40,4 +43,4 @@ class SelectVhostMultiTest(util.NginxTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/http_01_test.py b/certbot-nginx/tests/http_01_test.py index 05be06202..2a03255a4 100644 --- a/certbot-nginx/tests/http_01_test.py +++ b/certbot-nginx/tests/http_01_test.py @@ -1,8 +1,10 @@ """Tests for certbot_nginx._internal.http_01""" +import sys import unittest from unittest import mock import josepy as jose +import pytest from acme import challenges from certbot import achallenges @@ -228,4 +230,4 @@ class HttpPerformTest(util.NginxTest): self.assertEqual(addrs, [http_addr]) if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/nginxparser_test.py b/certbot-nginx/tests/nginxparser_test.py index 3713f16e4..7f9847db8 100644 --- a/certbot-nginx/tests/nginxparser_test.py +++ b/certbot-nginx/tests/nginxparser_test.py @@ -1,10 +1,12 @@ """Test for certbot_nginx._internal.nginxparser.""" import copy import operator +import sys import tempfile import unittest from pyparsing import ParseException +import pytest from certbot_nginx._internal.nginxparser import dump from certbot_nginx._internal.nginxparser import dumps @@ -508,4 +510,4 @@ class TestUnspacedList(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/obj_test.py b/certbot-nginx/tests/obj_test.py index 67ca40f1b..ef8255ee9 100644 --- a/certbot-nginx/tests/obj_test.py +++ b/certbot-nginx/tests/obj_test.py @@ -1,7 +1,10 @@ """Test the helper objects in certbot_nginx._internal.obj.""" import itertools +import sys import unittest +import pytest + class AddrTest(unittest.TestCase): """Test the Addr class.""" @@ -226,4 +229,4 @@ class VirtualHostTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/parser_obj_test.py b/certbot-nginx/tests/parser_obj_test.py index c2243f5be..e0a8114a9 100644 --- a/certbot-nginx/tests/parser_obj_test.py +++ b/certbot-nginx/tests/parser_obj_test.py @@ -1,8 +1,11 @@ """ Tests for functions and classes in parser_obj.py """ +import sys import unittest from unittest import mock +import pytest + from certbot_nginx._internal.parser_obj import COMMENT_BLOCK from certbot_nginx._internal.parser_obj import parse_raw @@ -256,4 +259,4 @@ class StatementsTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot-nginx/tests/parser_test.py b/certbot-nginx/tests/parser_test.py index 4aaa00ea0..e9280c787 100644 --- a/certbot-nginx/tests/parser_test.py +++ b/certbot-nginx/tests/parser_test.py @@ -2,10 +2,13 @@ import glob import re import shutil +import sys from typing import List import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os from certbot_nginx._internal import nginxparser @@ -544,4 +547,4 @@ class NginxParserTest(util.NginxTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/CHANGELOG.md b/certbot/CHANGELOG.md index ab1bcc963..a3b8b23f5 100644 --- a/certbot/CHANGELOG.md +++ b/certbot/CHANGELOG.md @@ -15,6 +15,7 @@ Certbot adheres to [Semantic Versioning](https://semver.org/). * Certbot will now only keep the current and 5 previous certificates in the `/etc/letsencrypt/archive` directory for each certificate lineage. Any prior certificates will be automatically deleted upon renewal. This number may be further lowered in future releases. * As always, users should only reference the certificate files within `/etc/letsencrypt/live` and never use `/etc/letsencrypt/archive` directly. See [Where are my certificates?](https://eff-certbot.readthedocs.io/en/stable/using.html#where-are-my-certificates) in the Certbot User Guide. * `certbot.configuration.NamespaceConfig.key_dir` and `.csr_dir` are now deprecated. +* All Certbot components now require `pytest` to run tests. ### Fixed diff --git a/certbot/tests/account_test.py b/certbot/tests/account_test.py index d60da44c1..f076b2096 100644 --- a/certbot/tests/account_test.py +++ b/certbot/tests/account_test.py @@ -1,10 +1,12 @@ """Tests for certbot._internal.account.""" import datetime import json +import sys import unittest from unittest import mock import josepy as jose +import pytest import pytz from acme import messages @@ -330,4 +332,4 @@ class AccountFileStorageTest(test_util.ConfigTestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/auth_handler_test.py b/certbot/tests/auth_handler_test.py index 0af351c80..f4415e5ce 100644 --- a/certbot/tests/auth_handler_test.py +++ b/certbot/tests/auth_handler_test.py @@ -1,10 +1,12 @@ """Tests for certbot._internal.auth_handler.""" import datetime import logging +import sys import unittest from unittest import mock from josepy import b64encode +import pytest from acme import challenges from acme import client as acme_client @@ -592,4 +594,4 @@ def gen_dom_authzr(domain, challs): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/cert_manager_test.py b/certbot/tests/cert_manager_test.py index 08f733bbe..659a6fc47 100644 --- a/certbot/tests/cert_manager_test.py +++ b/certbot/tests/cert_manager_test.py @@ -3,11 +3,13 @@ # pylint: disable=protected-access import re import shutil +import sys import tempfile import unittest from unittest import mock import configobj +import pytest from certbot import configuration from certbot import errors @@ -710,4 +712,4 @@ class GetCertnameTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/cli_test.py b/certbot/tests/cli_test.py index 0b2108b73..53eb2a5bc 100644 --- a/certbot/tests/cli_test.py +++ b/certbot/tests/cli_test.py @@ -3,10 +3,13 @@ import argparse import copy from importlib import reload as reload_module import io +import sys import tempfile import unittest from unittest import mock +import pytest + from acme import challenges from certbot import errors from certbot._internal import cli @@ -521,4 +524,4 @@ def _call_set_by_cli(var, args, verb): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/client_test.py b/certbot/tests/client_test.py index 7b29d26ca..405858e97 100644 --- a/certbot/tests/client_test.py +++ b/certbot/tests/client_test.py @@ -3,12 +3,14 @@ import contextlib import datetime import platform import shutil +import sys import tempfile import unittest from unittest import mock from unittest.mock import MagicMock from josepy import interfaces +import pytest from certbot import errors from certbot import util @@ -979,4 +981,4 @@ class RollbackTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/compat/filesystem_test.py b/certbot/tests/compat/filesystem_test.py index fd4cb9cde..a634e34ad 100644 --- a/certbot/tests/compat/filesystem_test.py +++ b/certbot/tests/compat/filesystem_test.py @@ -1,9 +1,12 @@ """Tests for certbot.compat.filesystem""" import contextlib import errno +import sys import unittest from unittest import mock +import pytest + from certbot import util from certbot._internal import lock from certbot.compat import filesystem @@ -679,4 +682,4 @@ def _create_probe(tempdir, name='probe'): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/compat/misc_test.py b/certbot/tests/compat/misc_test.py index 5cb8167b6..5668e0718 100644 --- a/certbot/tests/compat/misc_test.py +++ b/certbot/tests/compat/misc_test.py @@ -1,7 +1,10 @@ """Tests for certbot.compat.misc""" +import sys import unittest from unittest import mock +import pytest + from certbot.compat import os @@ -43,4 +46,4 @@ class ExecuteStatusTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/compat/os_test.py b/certbot/tests/compat/os_test.py index 2fe23f700..844492678 100644 --- a/certbot/tests/compat/os_test.py +++ b/certbot/tests/compat/os_test.py @@ -1,6 +1,9 @@ """Unit test for os module.""" +import sys import unittest +import pytest + from certbot.compat import os @@ -17,4 +20,4 @@ class OsTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/configuration_test.py b/certbot/tests/configuration_test.py index 22060a688..1d860ea0d 100644 --- a/certbot/tests/configuration_test.py +++ b/certbot/tests/configuration_test.py @@ -1,8 +1,11 @@ """Tests for certbot.configuration.""" +import sys import unittest from unittest import mock import warnings +import pytest + from certbot import errors from certbot._internal import constants from certbot.compat import misc @@ -163,4 +166,4 @@ class NamespaceConfigTest(test_util.ConfigTestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/crypto_util_test.py b/certbot/tests/crypto_util_test.py index 46dc86436..141588d81 100644 --- a/certbot/tests/crypto_util_test.py +++ b/certbot/tests/crypto_util_test.py @@ -1,9 +1,11 @@ """Tests for certbot.crypto_util.""" import logging +import sys import unittest from unittest import mock import OpenSSL +import pytest from certbot import errors from certbot import util @@ -525,4 +527,4 @@ class FindChainWithIssuerTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/display/completer_test.py b/certbot/tests/display/completer_test.py index 73722151a..e4f2d758e 100644 --- a/certbot/tests/display/completer_test.py +++ b/certbot/tests/display/completer_test.py @@ -1,19 +1,22 @@ """Test certbot._internal.display.completer.""" +from importlib import reload as reload_module +import string +import sys from typing import List +import unittest +from unittest import mock + +import pytest + +from certbot.compat import filesystem +from certbot.compat import os +import certbot.tests.util as test_util try: import readline # pylint: disable=import-error except ImportError: import certbot._internal.display.dummy_readline as readline # type: ignore -from importlib import reload as reload_module -import string -import sys -import unittest -from unittest import mock -from certbot.compat import filesystem -from certbot.compat import os -import certbot.tests.util as test_util class CompleterTest(test_util.TempDirTestCase): @@ -104,4 +107,4 @@ def enable_tab_completion(unused_command): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/display/internal_util_test.py b/certbot/tests/display/internal_util_test.py index b29396c41..61ee8d281 100644 --- a/certbot/tests/display/internal_util_test.py +++ b/certbot/tests/display/internal_util_test.py @@ -1,10 +1,13 @@ """Test :mod:`certbot._internal.display.util`.""" import io import socket +import sys import tempfile import unittest from unittest import mock +import pytest + from acme import messages as acme_messages from certbot import errors @@ -146,4 +149,4 @@ class DescribeACMEErrorTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/display/obj_test.py b/certbot/tests/display/obj_test.py index 4da2c3b3b..d180d8059 100644 --- a/certbot/tests/display/obj_test.py +++ b/certbot/tests/display/obj_test.py @@ -1,7 +1,10 @@ """Test :mod:`certbot._internal.display.obj`.""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot._internal.display import obj as display_obj from certbot.display import util as display_util @@ -330,4 +333,4 @@ class NoninteractiveDisplayTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/display/ops_test.py b/certbot/tests/display/ops_test.py index 69c7440be..ded89b245 100644 --- a/certbot/tests/display/ops_test.py +++ b/certbot/tests/display/ops_test.py @@ -5,6 +5,7 @@ import unittest from unittest import mock import josepy as jose +import pytest from acme import messages from certbot import errors @@ -517,4 +518,4 @@ class ReportExecutedCommand(unittest.TestCase): self.assertEqual(mock_notify.call_count, 0) if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/display/util_test.py b/certbot/tests/display/util_test.py index 7eb45653c..4ae2d7c00 100644 --- a/certbot/tests/display/util_test.py +++ b/certbot/tests/display/util_test.py @@ -1,10 +1,13 @@ """Test :mod:`certbot.display.util`.""" import io import socket +import sys import tempfile import unittest from unittest import mock +import pytest + from certbot import errors import certbot.tests.util as test_util @@ -95,4 +98,4 @@ class DirectorySelectTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/eff_test.py b/certbot/tests/eff_test.py index a87ca2204..3a13e2ff1 100644 --- a/certbot/tests/eff_test.py +++ b/certbot/tests/eff_test.py @@ -1,9 +1,11 @@ """Tests for certbot._internal.eff.""" import datetime +import sys import unittest from unittest import mock import josepy +import pytest import pytz import requests @@ -179,4 +181,4 @@ class SubscribeTest(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/error_handler_test.py b/certbot/tests/error_handler_test.py index d6d506956..799350f8c 100644 --- a/certbot/tests/error_handler_test.py +++ b/certbot/tests/error_handler_test.py @@ -8,6 +8,8 @@ from typing import Union import unittest from unittest import mock +import pytest + from certbot.compat import os @@ -150,4 +152,4 @@ class ExitHandlerTest(ErrorHandlerTest): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/errors_test.py b/certbot/tests/errors_test.py index d05f2b43e..b9decfd68 100644 --- a/certbot/tests/errors_test.py +++ b/certbot/tests/errors_test.py @@ -1,7 +1,10 @@ """Tests for certbot.errors.""" +import sys import unittest from unittest import mock +import pytest + from acme import messages from certbot import achallenges from certbot.tests import acme_util @@ -52,4 +55,4 @@ class StandaloneBindErrorTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/helpful_test.py b/certbot/tests/helpful_test.py index 2965f582a..6a60362d0 100644 --- a/certbot/tests/helpful_test.py +++ b/certbot/tests/helpful_test.py @@ -1,7 +1,10 @@ """Tests for certbot.helpful_parser""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot._internal import constants from certbot._internal.cli import _DomainsAction @@ -202,4 +205,4 @@ class TestAddDeprecatedArgument(unittest.TestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/hook_test.py b/certbot/tests/hook_test.py index 8cd8e6631..4260a0b30 100644 --- a/certbot/tests/hook_test.py +++ b/certbot/tests/hook_test.py @@ -1,7 +1,10 @@ """Tests for certbot._internal.hooks.""" +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot import util from certbot.compat import filesystem @@ -459,4 +462,4 @@ def create_hook(file_path): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/lock_test.py b/certbot/tests/lock_test.py index 1e7525782..fd36bb225 100644 --- a/certbot/tests/lock_test.py +++ b/certbot/tests/lock_test.py @@ -1,9 +1,12 @@ """Tests for certbot._internal.lock.""" import functools import multiprocessing +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os from certbot.tests import util as test_util @@ -138,4 +141,4 @@ class LockFileTest(test_util.TempDirTestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/log_test.py b/certbot/tests/log_test.py index bee33261c..4aaa9bcbd 100644 --- a/certbot/tests/log_test.py +++ b/certbot/tests/log_test.py @@ -8,6 +8,8 @@ from typing import Optional import unittest from unittest import mock +import pytest + from acme import messages from certbot import errors from certbot import util @@ -433,4 +435,4 @@ class ExitWithAdviceTest(test_util.TempDirTestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/main_test.py b/certbot/tests/main_test.py index 0b24ff30d..e8230d87e 100644 --- a/certbot/tests/main_test.py +++ b/certbot/tests/main_test.py @@ -16,6 +16,7 @@ from unittest import mock import configobj import josepy as jose +import pytest import pytz from acme.messages import Error as acme_error @@ -2469,4 +2470,4 @@ class ShowAccountTest(test_util.ConfigTestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/ocsp_test.py b/certbot/tests/ocsp_test.py index ebb98c343..4f7a39956 100644 --- a/certbot/tests/ocsp_test.py +++ b/certbot/tests/ocsp_test.py @@ -3,6 +3,7 @@ import contextlib from datetime import datetime from datetime import timedelta +import sys import unittest from unittest import mock @@ -12,6 +13,7 @@ from cryptography.exceptions import UnsupportedAlgorithm from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes from cryptography.x509 import ocsp as ocsp_lib +import pytest import pytz from certbot import errors @@ -386,4 +388,4 @@ revoked if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/common_test.py b/certbot/tests/plugins/common_test.py index 215faaea3..00f9f1c26 100644 --- a/certbot/tests/plugins/common_test.py +++ b/certbot/tests/plugins/common_test.py @@ -1,10 +1,12 @@ """Tests for certbot.plugins.common.""" import functools import shutil +import sys import unittest from unittest import mock import josepy as jose +import pytest from acme import challenges from certbot import achallenges @@ -366,4 +368,4 @@ class InstallVersionControlledFileTest(test_util.TempDirTestCase): self.assertIs(mock_logger.warning.called, False) if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/disco_test.py b/certbot/tests/plugins/disco_test.py index dfd9d0c7b..a3b69ff0c 100644 --- a/certbot/tests/plugins/disco_test.py +++ b/certbot/tests/plugins/disco_test.py @@ -1,11 +1,13 @@ """Tests for certbot._internal.plugins.disco.""" import functools import string +import sys from typing import List import unittest from unittest import mock import pkg_resources +import pytest from certbot import errors from certbot import interfaces @@ -271,4 +273,4 @@ class PluginsRegistryTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/dns_common_lexicon_test.py b/certbot/tests/plugins/dns_common_lexicon_test.py index 4634c2057..53bcb1a0d 100644 --- a/certbot/tests/plugins/dns_common_lexicon_test.py +++ b/certbot/tests/plugins/dns_common_lexicon_test.py @@ -1,8 +1,11 @@ """Tests for certbot.plugins.dns_common_lexicon.""" +import sys import unittest from unittest import mock +import pytest + from certbot.plugins import dns_common_lexicon from certbot.plugins import dns_test_common_lexicon @@ -23,4 +26,4 @@ class LexiconClientTest(unittest.TestCase, dns_test_common_lexicon.BaseLexiconCl if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/dns_common_test.py b/certbot/tests/plugins/dns_common_test.py index 97bc5dea6..19a359541 100644 --- a/certbot/tests/plugins/dns_common_test.py +++ b/certbot/tests/plugins/dns_common_test.py @@ -2,9 +2,12 @@ import collections import logging +import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot import util from certbot.compat import os @@ -233,4 +236,4 @@ class DomainNameGuessTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/enhancements_test.py b/certbot/tests/plugins/enhancements_test.py index 903d3e095..917b74db8 100644 --- a/certbot/tests/plugins/enhancements_test.py +++ b/certbot/tests/plugins/enhancements_test.py @@ -1,7 +1,10 @@ """Tests for new style enhancements""" +import sys import unittest from unittest import mock +import pytest + from certbot._internal.plugins import null from certbot.plugins import enhancements import certbot.tests.util as test_util @@ -59,4 +62,4 @@ class EnhancementTest(test_util.ConfigTestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/manual_test.py b/certbot/tests/plugins/manual_test.py index a5dc69c32..19064bc00 100644 --- a/certbot/tests/plugins/manual_test.py +++ b/certbot/tests/plugins/manual_test.py @@ -4,6 +4,8 @@ import textwrap import unittest from unittest import mock +import pytest + from acme import challenges from certbot import errors from certbot.compat import filesystem @@ -159,4 +161,4 @@ class AuthenticatorTest(test_util.TempDirTestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/null_test.py b/certbot/tests/plugins/null_test.py index ce3440e5b..64a5b0709 100644 --- a/certbot/tests/plugins/null_test.py +++ b/certbot/tests/plugins/null_test.py @@ -1,7 +1,10 @@ """Tests for certbot._internal.plugins.null.""" +import sys import unittest from unittest import mock +import pytest + class InstallerTest(unittest.TestCase): """Tests for certbot._internal.plugins.null.Installer.""" @@ -17,4 +20,4 @@ class InstallerTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/selection_test.py b/certbot/tests/plugins/selection_test.py index 6aed9ec8d..272cdb484 100644 --- a/certbot/tests/plugins/selection_test.py +++ b/certbot/tests/plugins/selection_test.py @@ -4,6 +4,8 @@ from typing import List import unittest from unittest import mock +import pytest + from certbot import errors from certbot import interfaces from certbot._internal.display import obj as display_obj @@ -261,4 +263,4 @@ class TestChooseConfiguratorPlugins(unittest.TestCase): self.assertEqual(auth.name, "apache") if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/standalone_test.py b/certbot/tests/plugins/standalone_test.py index 39454570e..6e173ed79 100644 --- a/certbot/tests/plugins/standalone_test.py +++ b/certbot/tests/plugins/standalone_test.py @@ -1,6 +1,7 @@ """Tests for certbot._internal.plugins.standalone.""" import errno import socket +import sys from typing import Dict from typing import Set from typing import Tuple @@ -9,6 +10,7 @@ from unittest import mock import josepy as jose import OpenSSL.crypto +import pytest from acme import challenges from acme import standalone as acme_standalone @@ -185,4 +187,4 @@ class AuthenticatorTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/storage_test.py b/certbot/tests/plugins/storage_test.py index 82b0aff65..ae4b575e0 100644 --- a/certbot/tests/plugins/storage_test.py +++ b/certbot/tests/plugins/storage_test.py @@ -1,11 +1,14 @@ """Tests for certbot.plugins.storage.PluginStorage""" import json +import sys from typing import Iterable from typing import List from typing import Optional import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import filesystem from certbot.compat import os @@ -117,4 +120,4 @@ class PluginStorageTest(test_util.ConfigTestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/util_test.py b/certbot/tests/plugins/util_test.py index faac01165..eabfe5fa3 100644 --- a/certbot/tests/plugins/util_test.py +++ b/certbot/tests/plugins/util_test.py @@ -1,7 +1,10 @@ """Tests for certbot.plugins.util.""" +import sys import unittest from unittest import mock +import pytest + from certbot.compat import os @@ -41,4 +44,4 @@ class PathSurgeryTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/plugins/webroot_test.py b/certbot/tests/plugins/webroot_test.py index 4bc198074..210be36e6 100644 --- a/certbot/tests/plugins/webroot_test.py +++ b/certbot/tests/plugins/webroot_test.py @@ -6,11 +6,13 @@ import argparse import errno import json import shutil +import sys import tempfile import unittest from unittest import mock import josepy as jose +import pytest from acme import challenges from certbot import achallenges @@ -360,4 +362,4 @@ class WebrootActionTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/renewal_test.py b/certbot/tests/renewal_test.py index 4d337830e..93036fd6c 100644 --- a/certbot/tests/renewal_test.py +++ b/certbot/tests/renewal_test.py @@ -1,8 +1,11 @@ """Tests for certbot._internal.renewal""" import copy +import sys import unittest from unittest import mock +import pytest + from acme import challenges from certbot import configuration from certbot import errors @@ -305,4 +308,4 @@ class DescribeResultsTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/renewupdater_test.py b/certbot/tests/renewupdater_test.py index 30a7b0f46..c2e32f867 100644 --- a/certbot/tests/renewupdater_test.py +++ b/certbot/tests/renewupdater_test.py @@ -1,7 +1,10 @@ """Tests for renewal updater interfaces""" +import sys import unittest from unittest import mock +import pytest + from certbot import interfaces from certbot._internal import main from certbot._internal import updater @@ -120,4 +123,4 @@ class RenewUpdaterTest(test_util.ConfigTestCase): if __name__ == '__main__': - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/reverter_test.py b/certbot/tests/reverter_test.py index 2fb28862d..7a70a4313 100644 --- a/certbot/tests/reverter_test.py +++ b/certbot/tests/reverter_test.py @@ -2,10 +2,13 @@ import csv import logging import shutil +import sys import tempfile import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import os from certbot.tests import util as test_util @@ -454,4 +457,4 @@ def update_file(filename, string): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/storage_test.py b/certbot/tests/storage_test.py index 13c2be0a5..4cad7899d 100644 --- a/certbot/tests/storage_test.py +++ b/certbot/tests/storage_test.py @@ -3,10 +3,12 @@ import datetime import shutil import stat +import sys import unittest from unittest import mock import configobj +import pytest import pytz import certbot @@ -967,4 +969,4 @@ class CertPathForCertNameTest(BaseRenewableCertTest): self.assertRaises(errors.CertStorageError, self._call, self.config, 'fake-example.org') if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover diff --git a/certbot/tests/util_test.py b/certbot/tests/util_test.py index 0904c028f..e02638037 100644 --- a/certbot/tests/util_test.py +++ b/certbot/tests/util_test.py @@ -7,6 +7,8 @@ import sys import unittest from unittest import mock +import pytest + from certbot import errors from certbot.compat import filesystem from certbot.compat import os @@ -654,4 +656,4 @@ class ParseLooseVersionTest(unittest.TestCase): if __name__ == "__main__": - unittest.main() # pragma: no cover + sys.exit(pytest.main(sys.argv[1:] + [__file__])) # pragma: no cover