mirror of
https://github.com/certbot/certbot.git
synced 2026-04-08 18:48:48 -04:00
Update assertTrue/False to Python 3 precise asserts (#8792)
* Update assertTrue/False to Python 3 precise asserts * Fix test failures * Fix test failures * More replacements * Update to Python 3 asserts in acme-module * Fix Windows test failure * Fix failures * Fix test failure * More replacements * Don't include the semgrep rules * Fix test failure
This commit is contained in:
parent
f339d23e54
commit
2cf1775864
41 changed files with 444 additions and 452 deletions
|
|
@ -292,7 +292,7 @@ class TLSALPN01ResponseTest(unittest.TestCase):
|
|||
|
||||
def test_gen_verify_cert_gen_key(self):
|
||||
cert, key = self.response.gen_cert(self.domain)
|
||||
self.assertTrue(isinstance(key, OpenSSL.crypto.PKey))
|
||||
self.assertIsInstance(key, OpenSSL.crypto.PKey)
|
||||
self.assertTrue(self.response.verify_cert(self.domain, cert))
|
||||
|
||||
def test_verify_bad_cert(self):
|
||||
|
|
@ -431,7 +431,7 @@ class DNSTest(unittest.TestCase):
|
|||
mock_gen.return_value = mock.sentinel.validation
|
||||
response = self.msg.gen_response(KEY)
|
||||
from acme.challenges import DNSResponse
|
||||
self.assertTrue(isinstance(response, DNSResponse))
|
||||
self.assertIsInstance(response, DNSResponse)
|
||||
self.assertEqual(response.validation, mock.sentinel.validation)
|
||||
|
||||
def test_validation_domain_name(self):
|
||||
|
|
|
|||
|
|
@ -604,8 +604,8 @@ class ClientTest(ClientTestBase):
|
|||
# make sure that max_attempts is per-authorization, rather
|
||||
# than global
|
||||
max_attempts=max(len(authzrs[0].retries), len(authzrs[1].retries)))
|
||||
self.assertTrue(cert[0] is csr)
|
||||
self.assertTrue(cert[1] is updated_authzrs)
|
||||
self.assertIs(cert[0], csr)
|
||||
self.assertIs(cert[1], updated_authzrs)
|
||||
self.assertEqual(updated_authzrs[0].uri, 'a...')
|
||||
self.assertEqual(updated_authzrs[1].uri, 'b.')
|
||||
self.assertEqual(updated_authzrs[0].times, [
|
||||
|
|
@ -641,7 +641,7 @@ class ClientTest(ClientTestBase):
|
|||
authzr = self.client.deactivate_authorization(self.authzr)
|
||||
self.assertEqual(authzb, authzr.body)
|
||||
self.assertEqual(self.client.net.post.call_count, 1)
|
||||
self.assertTrue(self.authzr.uri in self.net.post.call_args_list[0][0])
|
||||
self.assertIn(self.authzr.uri, self.net.post.call_args_list[0][0])
|
||||
|
||||
def test_check_cert(self):
|
||||
self.response.headers['Location'] = self.certr.uri
|
||||
|
|
@ -700,7 +700,7 @@ class ClientTest(ClientTestBase):
|
|||
|
||||
def test_revocation_payload(self):
|
||||
obj = messages.Revocation(certificate=self.certr.body, reason=self.rsn)
|
||||
self.assertTrue('reason' in obj.to_partial_json().keys())
|
||||
self.assertIn('reason', obj.to_partial_json().keys())
|
||||
self.assertEqual(self.rsn, obj.to_partial_json()['reason'])
|
||||
|
||||
def test_revoke_bad_status_raises_error(self):
|
||||
|
|
@ -877,9 +877,9 @@ class ClientV2Test(ClientTestBase):
|
|||
self.response.headers['Location'] = self.regr.uri
|
||||
self.response.json.return_value = self.regr.body.to_json()
|
||||
self.assertEqual(self.regr, self.client.update_registration(self.regr))
|
||||
self.assertNotEqual(self.client.net.account, None)
|
||||
self.assertIsNotNone(self.client.net.account)
|
||||
self.assertEqual(self.client.net.post.call_count, 2)
|
||||
self.assertTrue(DIRECTORY_V2.newAccount in self.net.post.call_args_list[0][0])
|
||||
self.assertIn(DIRECTORY_V2.newAccount, self.net.post.call_args_list[0][0])
|
||||
|
||||
self.response.json.return_value = self.regr.body.update(
|
||||
contact=()).to_json()
|
||||
|
|
@ -943,7 +943,7 @@ class ClientNetworkTest(unittest.TestCase):
|
|||
self.response.links = {}
|
||||
|
||||
def test_init(self):
|
||||
self.assertTrue(self.net.verify_ssl is self.verify_ssl)
|
||||
self.assertIs(self.net.verify_ssl, self.verify_ssl)
|
||||
|
||||
def test_wrap_in_jws(self):
|
||||
# pylint: disable=protected-access
|
||||
|
|
@ -1185,7 +1185,7 @@ class ClientNetworkWithMockedResponseTest(unittest.TestCase):
|
|||
|
||||
def send_request(*args, **kwargs):
|
||||
# pylint: disable=unused-argument,missing-docstring
|
||||
self.assertFalse("new_nonce_url" in kwargs)
|
||||
self.assertNotIn("new_nonce_url", kwargs)
|
||||
method = args[0]
|
||||
uri = args[1]
|
||||
if method == 'HEAD' and uri != "new_nonce_uri":
|
||||
|
|
@ -1330,7 +1330,7 @@ class ClientNetworkSourceAddressBindingTest(unittest.TestCase):
|
|||
from acme.client import ClientNetwork
|
||||
net = ClientNetwork(key=None, alg=None, source_address=self.source_address)
|
||||
for adapter in net.session.adapters.values():
|
||||
self.assertTrue(self.source_address in adapter.source_address)
|
||||
self.assertIn(self.source_address, adapter.source_address)
|
||||
|
||||
def test_behavior_assumption(self):
|
||||
"""This is a test that guardrails the HTTPAdapter behavior so that if the default for
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class RandomSnTest(unittest.TestCase):
|
|||
for _ in range(self.cert_count):
|
||||
cert = gen_ss_cert(self.key, ['dummy'], force_san=True)
|
||||
self.serial_num.append(cert.get_serial_number())
|
||||
self.assertTrue(len(set(self.serial_num)) > 1)
|
||||
self.assertGreater(len(set(self.serial_num)), 1)
|
||||
|
||||
class MakeCSRTest(unittest.TestCase):
|
||||
"""Test for standalone functions."""
|
||||
|
|
@ -206,8 +206,8 @@ class MakeCSRTest(unittest.TestCase):
|
|||
|
||||
def test_make_csr(self):
|
||||
csr_pem = self._call_with_key(["a.example", "b.example"])
|
||||
self.assertTrue(b'--BEGIN CERTIFICATE REQUEST--' in csr_pem)
|
||||
self.assertTrue(b'--END CERTIFICATE REQUEST--' in csr_pem)
|
||||
self.assertIn(b'--BEGIN CERTIFICATE REQUEST--', csr_pem)
|
||||
self.assertIn(b'--END CERTIFICATE REQUEST--', csr_pem)
|
||||
csr = OpenSSL.crypto.load_certificate_request(
|
||||
OpenSSL.crypto.FILETYPE_PEM, csr_pem)
|
||||
# In pyopenssl 0.13 (used with TOXENV=py27-oldest), csr objects don't
|
||||
|
|
|
|||
|
|
@ -24,8 +24,8 @@ class MissingNonceTest(unittest.TestCase):
|
|||
self.error = MissingNonce(self.response)
|
||||
|
||||
def test_str(self):
|
||||
self.assertTrue("FOO" in str(self.error))
|
||||
self.assertTrue("{}" in str(self.error))
|
||||
self.assertIn("FOO", str(self.error))
|
||||
self.assertIn("{}", str(self.error))
|
||||
|
||||
|
||||
class PollErrorTest(unittest.TestCase):
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class JWSTest(unittest.TestCase):
|
|||
self.assertEqual(jws.signature.combined.nonce, self.nonce)
|
||||
self.assertEqual(jws.signature.combined.url, self.url)
|
||||
self.assertEqual(jws.signature.combined.kid, self.kid)
|
||||
self.assertEqual(jws.signature.combined.jwk, None)
|
||||
self.assertIsNone(jws.signature.combined.jwk)
|
||||
# TODO: check that nonce is in protected header
|
||||
|
||||
self.assertEqual(jws, JWS.from_json(jws.to_json()))
|
||||
|
|
@ -58,7 +58,7 @@ class JWSTest(unittest.TestCase):
|
|||
jws = JWS.sign(payload=b'foo', key=self.privkey,
|
||||
alg=jose.RS256, nonce=self.nonce,
|
||||
url=self.url)
|
||||
self.assertEqual(jws.signature.combined.kid, None)
|
||||
self.assertIsNone(jws.signature.combined.kid)
|
||||
self.assertEqual(jws.signature.combined.jwk, self.pubkey)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -41,13 +41,13 @@ class ErrorTest(unittest.TestCase):
|
|||
|
||||
def test_description(self):
|
||||
self.assertEqual('The request message was malformed', self.error.description)
|
||||
self.assertTrue(self.error_custom.description is None)
|
||||
self.assertIsNone(self.error_custom.description)
|
||||
|
||||
def test_code(self):
|
||||
from acme.messages import Error
|
||||
self.assertEqual('malformed', self.error.code)
|
||||
self.assertEqual(None, self.error_custom.code)
|
||||
self.assertEqual(None, Error().code)
|
||||
self.assertIsNone(self.error_custom.code)
|
||||
self.assertIsNone(Error().code)
|
||||
|
||||
def test_is_acme_error(self):
|
||||
from acme.messages import is_acme_error, Error
|
||||
|
|
@ -260,10 +260,10 @@ class RegistrationTest(unittest.TestCase):
|
|||
self.assertEqual(empty_new_reg.contact, ())
|
||||
self.assertEqual(new_reg_with_contact.contact, ())
|
||||
|
||||
self.assertTrue('contact' not in empty_new_reg.to_partial_json())
|
||||
self.assertTrue('contact' not in empty_new_reg.fields_to_partial_json())
|
||||
self.assertTrue('contact' in new_reg_with_contact.to_partial_json())
|
||||
self.assertTrue('contact' in new_reg_with_contact.fields_to_partial_json())
|
||||
self.assertNotIn('contact', empty_new_reg.to_partial_json())
|
||||
self.assertNotIn('contact', empty_new_reg.fields_to_partial_json())
|
||||
self.assertIn('contact', new_reg_with_contact.to_partial_json())
|
||||
self.assertIn('contact', new_reg_with_contact.fields_to_partial_json())
|
||||
|
||||
|
||||
class UpdateRegistrationTest(unittest.TestCase):
|
||||
|
|
@ -406,7 +406,7 @@ class AuthorizationResourceTest(unittest.TestCase):
|
|||
authzr = AuthorizationResource(
|
||||
uri=mock.sentinel.uri,
|
||||
body=mock.sentinel.body)
|
||||
self.assertTrue(isinstance(authzr, jose.JSONDeSerializable))
|
||||
self.assertIsInstance(authzr, jose.JSONDeSerializable)
|
||||
|
||||
|
||||
class CertificateRequestTest(unittest.TestCase):
|
||||
|
|
@ -417,7 +417,7 @@ class CertificateRequestTest(unittest.TestCase):
|
|||
self.req = CertificateRequest(csr=CSR)
|
||||
|
||||
def test_json_de_serializable(self):
|
||||
self.assertTrue(isinstance(self.req, jose.JSONDeSerializable))
|
||||
self.assertIsInstance(self.req, jose.JSONDeSerializable)
|
||||
from acme.messages import CertificateRequest
|
||||
self.assertEqual(
|
||||
self.req, CertificateRequest.from_json(self.req.to_json()))
|
||||
|
|
@ -433,7 +433,7 @@ class CertificateResourceTest(unittest.TestCase):
|
|||
cert_chain_uri=mock.sentinel.cert_chain_uri)
|
||||
|
||||
def test_json_de_serializable(self):
|
||||
self.assertTrue(isinstance(self.certr, jose.JSONDeSerializable))
|
||||
self.assertIsInstance(self.certr, jose.JSONDeSerializable)
|
||||
from acme.messages import CertificateResource
|
||||
self.assertEqual(
|
||||
self.certr, CertificateResource.from_json(self.certr.to_json()))
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ class AccountFileStorageTest(test_util.ConfigTestCase):
|
|||
path = os.path.join(self.config.accounts_dir, self.acc.id, "regr.json")
|
||||
with open(path, "r") as f:
|
||||
regr = json.load(f)
|
||||
self.assertTrue("new_authzr_uri" in regr)
|
||||
self.assertIn("new_authzr_uri", regr)
|
||||
|
||||
def test_update_regr(self):
|
||||
self.storage.update_regr(self.acc, self.mock_client)
|
||||
|
|
|
|||
|
|
@ -106,9 +106,9 @@ class HandleAuthorizationsTest(unittest.TestCase):
|
|||
self.assertEqual(mock_time.sleep.call_count, 2)
|
||||
# Retry-After header is 30 seconds, but at the time sleep is invoked, several
|
||||
# instructions are executed, and next pool is in less than 30 seconds.
|
||||
self.assertTrue(mock_time.sleep.call_args_list[1][0][0] <= 30)
|
||||
self.assertLessEqual(mock_time.sleep.call_args_list[1][0][0], 30)
|
||||
# However, assert that we did not took the default value of 3 seconds.
|
||||
self.assertTrue(mock_time.sleep.call_args_list[1][0][0] > 3)
|
||||
self.assertGreater(mock_time.sleep.call_args_list[1][0][0], 3)
|
||||
|
||||
self.assertEqual(self.mock_auth.cleanup.call_count, 1)
|
||||
# Test if list first element is http-01, use typ because it is an achall
|
||||
|
|
@ -139,7 +139,7 @@ class HandleAuthorizationsTest(unittest.TestCase):
|
|||
self.assertEqual(self.mock_auth.cleanup.call_count, 1)
|
||||
# Test if list first element is http-01, use typ because it is an achall
|
||||
for achall in self.mock_auth.cleanup.call_args[0][0]:
|
||||
self.assertTrue(achall.typ in ["http-01", "dns-01"])
|
||||
self.assertIn(achall.typ, ["http-01", "dns-01"])
|
||||
|
||||
# Length of authorizations list
|
||||
self.assertEqual(len(authzr), 1)
|
||||
|
|
@ -225,7 +225,7 @@ class HandleAuthorizationsTest(unittest.TestCase):
|
|||
with self.assertRaises(errors.AuthorizationError) as error:
|
||||
# We retry only once, so retries will be exhausted before STATUS_VALID is returned.
|
||||
self.handler.handle_authorizations(mock_order, False, 1)
|
||||
self.assertTrue('All authorizations were not finalized by the CA.' in str(error.exception))
|
||||
self.assertIn('All authorizations were not finalized by the CA.', str(error.exception))
|
||||
|
||||
def test_no_domains(self):
|
||||
mock_order = mock.MagicMock(authorizations=[])
|
||||
|
|
@ -305,7 +305,7 @@ class HandleAuthorizationsTest(unittest.TestCase):
|
|||
with test_util.patch_get_utility():
|
||||
with self.assertRaises(errors.AuthorizationError) as error:
|
||||
self.handler.handle_authorizations(mock_order, False)
|
||||
self.assertTrue('Some challenges have failed.' in str(error.exception))
|
||||
self.assertIn('Some challenges have failed.', str(error.exception))
|
||||
self.assertEqual(self.mock_auth.cleanup.call_count, 1)
|
||||
self.assertEqual(
|
||||
self.mock_auth.cleanup.call_args[0][0][0].typ, "http-01")
|
||||
|
|
@ -341,7 +341,7 @@ class HandleAuthorizationsTest(unittest.TestCase):
|
|||
self.handler.handle_authorizations(mock_order, True)
|
||||
|
||||
# Despite best_effort=True, process will fail because no authzr is valid.
|
||||
self.assertTrue('All challenges have failed.' in str(error.exception))
|
||||
self.assertIn('All challenges have failed.', str(error.exception))
|
||||
|
||||
def test_validated_challenge_not_rerun(self):
|
||||
# With a pending challenge that is not supported by the plugin, we
|
||||
|
|
@ -486,7 +486,7 @@ class ReportFailedAuthzrsTest(unittest.TestCase):
|
|||
}
|
||||
|
||||
# Prevent future regressions if the error type changes
|
||||
self.assertTrue(kwargs["error"].description is not None)
|
||||
self.assertIsNotNone(kwargs["error"].description)
|
||||
|
||||
http_01 = messages.ChallengeBody(**kwargs)
|
||||
|
||||
|
|
@ -511,7 +511,7 @@ class ReportFailedAuthzrsTest(unittest.TestCase):
|
|||
auth_handler._report_failed_authzrs([self.authzr1], 'key')
|
||||
call_list = mock_zope().add_message.call_args_list
|
||||
self.assertEqual(len(call_list), 1)
|
||||
self.assertTrue("Domain: example.com\nType: tls\nDetail: detail" in call_list[0][0][0])
|
||||
self.assertIn("Domain: example.com\nType: tls\nDetail: detail", call_list[0][0][0])
|
||||
|
||||
@test_util.patch_get_utility()
|
||||
def test_different_errors_and_domains(self, mock_zope):
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ class CertificatesTest(BaseCertManagerTest):
|
|||
def test_certificates_quiet(self, mock_utility, mock_logger):
|
||||
self.config.quiet = True
|
||||
self._certificates(self.config)
|
||||
self.assertFalse(mock_utility.notification.called)
|
||||
self.assertIs(mock_utility.notification.called, False)
|
||||
self.assertTrue(mock_logger.warning.called) #pylint: disable=no-member
|
||||
|
||||
@mock.patch('certbot.crypto_util.verify_renewable_cert')
|
||||
|
|
@ -224,7 +224,7 @@ class CertificatesTest(BaseCertManagerTest):
|
|||
mock_verifier.return_value = None
|
||||
mock_report.return_value = ""
|
||||
self._certificates(self.config)
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
self.assertTrue(mock_report.called)
|
||||
self.assertTrue(mock_utility.called)
|
||||
self.assertTrue(mock_renewable_cert.called)
|
||||
|
|
@ -242,7 +242,7 @@ class CertificatesTest(BaseCertManagerTest):
|
|||
|
||||
filesystem.makedirs(empty_config.renewal_configs_dir)
|
||||
self._certificates(empty_config)
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
self.assertTrue(mock_utility.called)
|
||||
shutil.rmtree(empty_tempdir)
|
||||
|
||||
|
|
@ -269,31 +269,34 @@ class CertificatesTest(BaseCertManagerTest):
|
|||
get_report = lambda: cert_manager._report_human_readable(mock_config, parsed_certs)
|
||||
|
||||
out = get_report()
|
||||
self.assertTrue("INVALID: EXPIRED" in out)
|
||||
self.assertIn("INVALID: EXPIRED", out)
|
||||
|
||||
cert.target_expiry += datetime.timedelta(hours=2)
|
||||
# pylint: disable=protected-access
|
||||
out = get_report()
|
||||
self.assertTrue('1 hour(s)' in out or '2 hour(s)' in out)
|
||||
self.assertTrue('VALID' in out and 'INVALID' not in out)
|
||||
self.assertIs('1 hour' in out or '2 hour(s)' in out, True)
|
||||
self.assertIn('VALID', out)
|
||||
self.assertNotIn('INVALID', out)
|
||||
|
||||
cert.target_expiry += datetime.timedelta(days=1)
|
||||
# pylint: disable=protected-access
|
||||
out = get_report()
|
||||
self.assertTrue('1 day' in out)
|
||||
self.assertFalse('under' in out)
|
||||
self.assertTrue('VALID' in out and 'INVALID' not in out)
|
||||
self.assertIn('1 day', out)
|
||||
self.assertNotIn('under', out)
|
||||
self.assertIn('VALID', out)
|
||||
self.assertNotIn('INVALID', out)
|
||||
|
||||
cert.target_expiry += datetime.timedelta(days=2)
|
||||
# pylint: disable=protected-access
|
||||
out = get_report()
|
||||
self.assertTrue('3 days' in out)
|
||||
self.assertTrue('VALID' in out and 'INVALID' not in out)
|
||||
self.assertIn('3 days', out)
|
||||
self.assertIn('VALID', out)
|
||||
self.assertNotIn('INVALID', out)
|
||||
|
||||
cert.is_test_cert = True
|
||||
mock_revoked.return_value = True
|
||||
out = get_report()
|
||||
self.assertTrue('INVALID: TEST_CERT, REVOKED' in out)
|
||||
self.assertIn('INVALID: TEST_CERT, REVOKED', out)
|
||||
|
||||
cert = mock.MagicMock(lineagename="indescribable")
|
||||
cert.target_expiry = expiry
|
||||
|
|
@ -353,7 +356,7 @@ class LineageForCertnameTest(BaseCertManagerTest):
|
|||
def test_no_match(self, mock_renewal_conf_file, mock_make_or_verify_dir):
|
||||
mock_renewal_conf_file.return_value = "other.com.conf"
|
||||
from certbot._internal import cert_manager
|
||||
self.assertEqual(cert_manager.lineage_for_certname(self.config, "example.com"), None)
|
||||
self.assertIsNone(cert_manager.lineage_for_certname(self.config, "example.com"))
|
||||
self.assertTrue(mock_make_or_verify_dir.called)
|
||||
|
||||
@mock.patch('certbot.util.make_or_verify_dir')
|
||||
|
|
@ -361,7 +364,7 @@ class LineageForCertnameTest(BaseCertManagerTest):
|
|||
def test_no_renewal_file(self, mock_renewal_conf_file, mock_make_or_verify_dir):
|
||||
mock_renewal_conf_file.side_effect = errors.CertStorageError()
|
||||
from certbot._internal import cert_manager
|
||||
self.assertEqual(cert_manager.lineage_for_certname(self.config, "example.com"), None)
|
||||
self.assertIsNone(cert_manager.lineage_for_certname(self.config, "example.com"))
|
||||
self.assertTrue(mock_make_or_verify_dir.called)
|
||||
|
||||
|
||||
|
|
@ -388,7 +391,7 @@ class DomainsForCertnameTest(BaseCertManagerTest):
|
|||
def test_no_match(self, mock_renewal_conf_file, mock_make_or_verify_dir):
|
||||
mock_renewal_conf_file.return_value = "somefile.conf"
|
||||
from certbot._internal import cert_manager
|
||||
self.assertEqual(cert_manager.domains_for_certname(self.config, "other.com"), None)
|
||||
self.assertIsNone(cert_manager.domains_for_certname(self.config, "other.com"))
|
||||
self.assertTrue(mock_make_or_verify_dir.called)
|
||||
|
||||
|
||||
|
|
@ -450,7 +453,7 @@ class RenameLineageTest(BaseCertManagerTest):
|
|||
self._call(self.config)
|
||||
from certbot._internal import cert_manager
|
||||
updated_lineage = cert_manager.lineage_for_certname(self.config, self.config.new_certname)
|
||||
self.assertTrue(updated_lineage is not None)
|
||||
self.assertIsNotNone(updated_lineage)
|
||||
self.assertEqual(updated_lineage.lineagename, self.config.new_certname)
|
||||
|
||||
@test_util.patch_get_utility()
|
||||
|
|
@ -463,7 +466,7 @@ class RenameLineageTest(BaseCertManagerTest):
|
|||
self._call(self.config)
|
||||
from certbot._internal import cert_manager
|
||||
updated_lineage = cert_manager.lineage_for_certname(self.config, self.config.new_certname)
|
||||
self.assertTrue(updated_lineage is not None)
|
||||
self.assertIsNotNone(updated_lineage)
|
||||
self.assertEqual(updated_lineage.lineagename, self.config.new_certname)
|
||||
|
||||
@test_util.patch_get_utility()
|
||||
|
|
@ -503,12 +506,12 @@ class DuplicativeCertsTest(storage_test.BaseRenewableCertTest):
|
|||
result = find_duplicative_certs(
|
||||
self.config, ['example.com', 'www.example.com'])
|
||||
self.assertTrue(result[0].configfile.filename.endswith('example.org.conf'))
|
||||
self.assertEqual(result[1], None)
|
||||
self.assertIsNone(result[1])
|
||||
|
||||
# Superset
|
||||
result = find_duplicative_certs(
|
||||
self.config, ['example.com', 'www.example.com', 'something.new'])
|
||||
self.assertEqual(result[0], None)
|
||||
self.assertIsNone(result[0])
|
||||
self.assertTrue(result[1].configfile.filename.endswith('example.org.conf'))
|
||||
|
||||
# Partial overlap doesn't count
|
||||
|
|
@ -629,8 +632,7 @@ class GetCertnameTest(unittest.TestCase):
|
|||
self.assertEqual(
|
||||
cert_manager.get_certnames(
|
||||
self.config, "verb", allow_multiple=False), ['example.com'])
|
||||
self.assertTrue(
|
||||
prompt in self.mock_get_utility().menu.call_args[0][0])
|
||||
self.assertIn(prompt, self.mock_get_utility().menu.call_args[0][0])
|
||||
|
||||
@mock.patch('certbot._internal.storage.renewal_conf_files')
|
||||
@mock.patch('certbot._internal.storage.lineagename_for_filename')
|
||||
|
|
@ -671,8 +673,7 @@ class GetCertnameTest(unittest.TestCase):
|
|||
self.assertEqual(
|
||||
cert_manager.get_certnames(
|
||||
self.config, "verb", allow_multiple=True), ['example.com'])
|
||||
self.assertTrue(
|
||||
prompt in self.mock_get_utility().checklist.call_args[0][0])
|
||||
self.assertIn(prompt, self.mock_get_utility().checklist.call_args[0][0])
|
||||
|
||||
@mock.patch('certbot._internal.storage.renewal_conf_files')
|
||||
@mock.patch('certbot._internal.storage.lineagename_for_filename')
|
||||
|
|
|
|||
|
|
@ -150,79 +150,79 @@ class ParseTest(unittest.TestCase):
|
|||
def test_help(self):
|
||||
self._help_output(['--help']) # assert SystemExit is raised here
|
||||
out = self._help_output(['--help', 'all'])
|
||||
self.assertTrue("--configurator" in out)
|
||||
self.assertTrue("how a certificate is deployed" in out)
|
||||
self.assertTrue("--webroot-path" in out)
|
||||
self.assertTrue("--text" not in out)
|
||||
self.assertTrue("%s" not in out)
|
||||
self.assertTrue("{0}" not in out)
|
||||
self.assertTrue("--renew-hook" not in out)
|
||||
self.assertIn("--configurator", out)
|
||||
self.assertIn("how a certificate is deployed", out)
|
||||
self.assertIn("--webroot-path", out)
|
||||
self.assertNotIn("--text", out)
|
||||
self.assertNotIn("%s", out)
|
||||
self.assertNotIn("{0}", out)
|
||||
self.assertNotIn("--renew-hook", out)
|
||||
|
||||
out = self._help_output(['-h', 'nginx'])
|
||||
if "nginx" in PLUGINS:
|
||||
# may be false while building distributions without plugins
|
||||
self.assertTrue("--nginx-ctl" in out)
|
||||
self.assertTrue("--webroot-path" not in out)
|
||||
self.assertTrue("--checkpoints" not in out)
|
||||
self.assertIn("--nginx-ctl", out)
|
||||
self.assertNotIn("--webroot-path", out)
|
||||
self.assertNotIn("--checkpoints", out)
|
||||
|
||||
out = self._help_output(['-h'])
|
||||
if "nginx" in PLUGINS:
|
||||
self.assertTrue("Use the Nginx plugin" in out)
|
||||
self.assertIn("Use the Nginx plugin", out)
|
||||
else:
|
||||
self.assertTrue("(the certbot nginx plugin is not" in out)
|
||||
self.assertIn("(the certbot nginx plugin is not", out)
|
||||
|
||||
out = self._help_output(['--help', 'plugins'])
|
||||
self.assertTrue("--webroot-path" not in out)
|
||||
self.assertTrue("--prepare" in out)
|
||||
self.assertTrue('"plugins" subcommand' in out)
|
||||
self.assertNotIn("--webroot-path", out)
|
||||
self.assertIn("--prepare", out)
|
||||
self.assertIn('"plugins" subcommand', out)
|
||||
|
||||
# test multiple topics
|
||||
out = self._help_output(['-h', 'renew'])
|
||||
self.assertTrue("--keep" in out)
|
||||
self.assertIn("--keep", out)
|
||||
out = self._help_output(['-h', 'automation'])
|
||||
self.assertTrue("--keep" in out)
|
||||
self.assertIn("--keep", out)
|
||||
out = self._help_output(['-h', 'revoke'])
|
||||
self.assertTrue("--keep" not in out)
|
||||
self.assertNotIn("--keep", out)
|
||||
|
||||
out = self._help_output(['--help', 'install'])
|
||||
self.assertTrue("--cert-path" in out)
|
||||
self.assertTrue("--key-path" in out)
|
||||
self.assertIn("--cert-path", out)
|
||||
self.assertIn("--key-path", out)
|
||||
|
||||
out = self._help_output(['--help', 'revoke'])
|
||||
self.assertTrue("--cert-path" in out)
|
||||
self.assertTrue("--key-path" in out)
|
||||
self.assertTrue("--reason" in out)
|
||||
self.assertTrue("--delete-after-revoke" in out)
|
||||
self.assertTrue("--no-delete-after-revoke" in out)
|
||||
self.assertIn("--cert-path", out)
|
||||
self.assertIn("--key-path", out)
|
||||
self.assertIn("--reason", out)
|
||||
self.assertIn("--delete-after-revoke", out)
|
||||
self.assertIn("--no-delete-after-revoke", out)
|
||||
|
||||
out = self._help_output(['-h', 'register'])
|
||||
self.assertTrue("--cert-path" not in out)
|
||||
self.assertTrue("--key-path" not in out)
|
||||
self.assertNotIn("--cert-path", out)
|
||||
self.assertNotIn("--key-path", out)
|
||||
|
||||
out = self._help_output(['-h'])
|
||||
self.assertTrue(cli.SHORT_USAGE in out)
|
||||
self.assertTrue(cli.COMMAND_OVERVIEW[:100] in out)
|
||||
self.assertTrue("%s" not in out)
|
||||
self.assertTrue("{0}" not in out)
|
||||
self.assertIn(cli.SHORT_USAGE, out)
|
||||
self.assertIn(cli.COMMAND_OVERVIEW[:100], out)
|
||||
self.assertNotIn("%s", out)
|
||||
self.assertNotIn("{0}", out)
|
||||
|
||||
def test_help_no_dashes(self):
|
||||
self._help_output(['help']) # assert SystemExit is raised here
|
||||
|
||||
out = self._help_output(['help', 'all'])
|
||||
self.assertTrue("--configurator" in out)
|
||||
self.assertTrue("how a certificate is deployed" in out)
|
||||
self.assertTrue("--webroot-path" in out)
|
||||
self.assertTrue("--text" not in out)
|
||||
self.assertTrue("%s" not in out)
|
||||
self.assertTrue("{0}" not in out)
|
||||
self.assertIn("--configurator", out)
|
||||
self.assertIn("how a certificate is deployed", out)
|
||||
self.assertIn("--webroot-path", out)
|
||||
self.assertNotIn("--text", out)
|
||||
self.assertNotIn("%s", out)
|
||||
self.assertNotIn("{0}", out)
|
||||
|
||||
out = self._help_output(['help', 'install'])
|
||||
self.assertTrue("--cert-path" in out)
|
||||
self.assertTrue("--key-path" in out)
|
||||
self.assertIn("--cert-path", out)
|
||||
self.assertIn("--key-path", out)
|
||||
|
||||
out = self._help_output(['help', 'revoke'])
|
||||
self.assertTrue("--cert-path" in out)
|
||||
self.assertTrue("--key-path" in out)
|
||||
self.assertIn("--cert-path", out)
|
||||
self.assertIn("--key-path", out)
|
||||
|
||||
def test_parse_domains(self):
|
||||
short_args = ['-d', 'example.com']
|
||||
|
|
@ -270,8 +270,8 @@ class ParseTest(unittest.TestCase):
|
|||
def test_must_staple_flag(self):
|
||||
short_args = ['--must-staple']
|
||||
namespace = self.parse(short_args)
|
||||
self.assertTrue(namespace.must_staple)
|
||||
self.assertTrue(namespace.staple)
|
||||
self.assertIs(namespace.must_staple, True)
|
||||
self.assertIs(namespace.staple, True)
|
||||
|
||||
def _check_server_conflict_message(self, parser_args, conflicting_args):
|
||||
try:
|
||||
|
|
@ -280,31 +280,31 @@ class ParseTest(unittest.TestCase):
|
|||
"The following flags didn't conflict with "
|
||||
'--server: {0}'.format(', '.join(conflicting_args)))
|
||||
except errors.Error as error:
|
||||
self.assertTrue('--server' in str(error))
|
||||
self.assertIn('--server', str(error))
|
||||
for arg in conflicting_args:
|
||||
self.assertTrue(arg in str(error))
|
||||
self.assertIn(arg, str(error))
|
||||
|
||||
def test_staging_flag(self):
|
||||
short_args = ['--staging']
|
||||
namespace = self.parse(short_args)
|
||||
self.assertTrue(namespace.staging)
|
||||
self.assertIs(namespace.staging, True)
|
||||
self.assertEqual(namespace.server, constants.STAGING_URI)
|
||||
|
||||
short_args += '--server example.com'.split()
|
||||
self._check_server_conflict_message(short_args, '--staging')
|
||||
|
||||
def _assert_dry_run_flag_worked(self, namespace, existing_account):
|
||||
self.assertTrue(namespace.dry_run)
|
||||
self.assertTrue(namespace.break_my_certs)
|
||||
self.assertTrue(namespace.staging)
|
||||
self.assertIs(namespace.dry_run, True)
|
||||
self.assertIs(namespace.break_my_certs, True)
|
||||
self.assertIs(namespace.staging, True)
|
||||
self.assertEqual(namespace.server, constants.STAGING_URI)
|
||||
|
||||
if existing_account:
|
||||
self.assertTrue(namespace.tos)
|
||||
self.assertTrue(namespace.register_unsafely_without_email)
|
||||
self.assertIs(namespace.tos, True)
|
||||
self.assertIs(namespace.register_unsafely_without_email, True)
|
||||
else:
|
||||
self.assertFalse(namespace.tos)
|
||||
self.assertFalse(namespace.register_unsafely_without_email)
|
||||
self.assertIs(namespace.tos, False)
|
||||
self.assertIs(namespace.register_unsafely_without_email, False)
|
||||
|
||||
def test_dry_run_flag(self):
|
||||
config_dir = tempfile.mkdtemp()
|
||||
|
|
@ -350,8 +350,8 @@ class ParseTest(unittest.TestCase):
|
|||
key_size_value = cli.flag_default(key_size_option)
|
||||
self.parse('--rsa-key-size {0}'.format(key_size_value).split())
|
||||
|
||||
self.assertTrue(cli.option_was_set(key_size_option, key_size_value))
|
||||
self.assertTrue(cli.option_was_set('no_verify_ssl', True))
|
||||
self.assertIs(cli.option_was_set(key_size_option, key_size_value), True)
|
||||
self.assertIs(cli.option_was_set('no_verify_ssl', True), True)
|
||||
|
||||
config_dir_option = 'config_dir'
|
||||
self.assertFalse(cli.option_was_set(
|
||||
|
|
@ -425,7 +425,7 @@ class ParseTest(unittest.TestCase):
|
|||
value = "foo"
|
||||
namespace = self.parse(
|
||||
["--renew-hook", value, "--disable-hook-validation"])
|
||||
self.assertEqual(namespace.deploy_hook, None)
|
||||
self.assertIsNone(namespace.deploy_hook)
|
||||
self.assertEqual(namespace.renew_hook, value)
|
||||
|
||||
def test_max_log_backups_error(self):
|
||||
|
|
@ -456,19 +456,19 @@ class ParseTest(unittest.TestCase):
|
|||
self.assertFalse(self.parse(["--no-directory-hooks"]).directory_hooks)
|
||||
|
||||
def test_no_directory_hooks_unset(self):
|
||||
self.assertTrue(self.parse([]).directory_hooks)
|
||||
self.assertIs(self.parse([]).directory_hooks, True)
|
||||
|
||||
def test_delete_after_revoke(self):
|
||||
namespace = self.parse(["--delete-after-revoke"])
|
||||
self.assertTrue(namespace.delete_after_revoke)
|
||||
self.assertIs(namespace.delete_after_revoke, True)
|
||||
|
||||
def test_delete_after_revoke_default(self):
|
||||
namespace = self.parse([])
|
||||
self.assertEqual(namespace.delete_after_revoke, None)
|
||||
self.assertIsNone(namespace.delete_after_revoke)
|
||||
|
||||
def test_no_delete_after_revoke(self):
|
||||
namespace = self.parse(["--no-delete-after-revoke"])
|
||||
self.assertFalse(namespace.delete_after_revoke)
|
||||
self.assertIs(namespace.delete_after_revoke, False)
|
||||
|
||||
def test_allow_subset_with_wildcard(self):
|
||||
self.assertRaises(errors.Error, self.parse,
|
||||
|
|
@ -477,7 +477,7 @@ class ParseTest(unittest.TestCase):
|
|||
def test_route53_no_revert(self):
|
||||
for help_flag in ['-h', '--help']:
|
||||
for topic in ['all', 'plugins', 'dns-route53']:
|
||||
self.assertFalse('certbot-route53:auth' in self._help_output([help_flag, topic]))
|
||||
self.assertNotIn('certbot-route53:auth', self._help_output([help_flag, topic]))
|
||||
|
||||
|
||||
class DefaultTest(unittest.TestCase):
|
||||
|
|
@ -490,8 +490,8 @@ class DefaultTest(unittest.TestCase):
|
|||
self.default2 = cli._Default()
|
||||
|
||||
def test_boolean(self):
|
||||
self.assertFalse(self.default1)
|
||||
self.assertFalse(self.default2)
|
||||
self.assertIs(bool(self.default1), False)
|
||||
self.assertIs(bool(self.default2), False)
|
||||
|
||||
def test_equality(self):
|
||||
self.assertEqual(self.default1, self.default2)
|
||||
|
|
@ -514,7 +514,7 @@ class SetByCliTest(unittest.TestCase):
|
|||
def test_webroot_map(self):
|
||||
args = '-w /var/www/html -d example.com'.split()
|
||||
verb = 'renew'
|
||||
self.assertTrue(_call_set_by_cli('webroot_map', args, verb))
|
||||
self.assertIs(_call_set_by_cli('webroot_map', args, verb), True)
|
||||
|
||||
|
||||
def _call_set_by_cli(var, args, verb):
|
||||
|
|
|
|||
|
|
@ -93,11 +93,11 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
with mock.patch("certbot._internal.eff.prepare_subscription") as mock_prepare:
|
||||
mock_client().new_account_and_tos.side_effect = errors.Error
|
||||
self.assertRaises(errors.Error, self._call)
|
||||
self.assertFalse(mock_prepare.called)
|
||||
self.assertIs(mock_prepare.called, False)
|
||||
|
||||
mock_client().new_account_and_tos.side_effect = None
|
||||
self._call()
|
||||
self.assertTrue(mock_prepare.called)
|
||||
self.assertIs(mock_prepare.called, True)
|
||||
|
||||
def test_it(self):
|
||||
with mock.patch("certbot._internal.client.acme_client.BackwardsCompatibleClientV2") as mock_client:
|
||||
|
|
@ -117,7 +117,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
mock_client().new_account_and_tos.side_effect = [mx_err, mock.MagicMock()]
|
||||
self._call()
|
||||
self.assertEqual(mock_get_email.call_count, 1)
|
||||
self.assertTrue(mock_prepare.called)
|
||||
self.assertIs(mock_prepare.called, True)
|
||||
|
||||
def test_email_invalid_noninteractive(self):
|
||||
from acme import messages
|
||||
|
|
@ -144,7 +144,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
self.config.dry_run = False
|
||||
self._call()
|
||||
mock_logger.debug.assert_called_once_with(mock.ANY)
|
||||
self.assertTrue(mock_prepare.called)
|
||||
self.assertIs(mock_prepare.called, True)
|
||||
|
||||
@mock.patch("certbot._internal.client.display_ops.get_email")
|
||||
def test_dry_run_no_staging_account(self, mock_get_email):
|
||||
|
|
@ -155,7 +155,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
self.config.dry_run = True
|
||||
self._call()
|
||||
# check Certbot did not ask the user to provide an email
|
||||
self.assertFalse(mock_get_email.called)
|
||||
self.assertIs(mock_get_email.called, False)
|
||||
# check Certbot created an account with no email. Contact should return empty
|
||||
self.assertFalse(mock_client().new_account_and_tos.call_args[0][0].contact)
|
||||
|
||||
|
|
@ -172,7 +172,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
self.config.eab_hmac_key = "J2OAqW4MHXsrHVa_PVg0Y-L_R4SYw0_aL1le6mfblbE"
|
||||
self._call()
|
||||
|
||||
self.assertTrue(mock_eab_from_data.called)
|
||||
self.assertIs(mock_eab_from_data.called, True)
|
||||
|
||||
def test_without_eab_arguments(self):
|
||||
with mock.patch("certbot._internal.client.acme_client.BackwardsCompatibleClientV2") as mock_client:
|
||||
|
|
@ -184,7 +184,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
self.config.eab_hmac_key = None
|
||||
self._call()
|
||||
|
||||
self.assertFalse(mock_eab_from_data.called)
|
||||
self.assertIs(mock_eab_from_data.called, False)
|
||||
|
||||
def test_external_account_required_without_eab_arguments(self):
|
||||
with mock.patch("certbot._internal.client.acme_client.BackwardsCompatibleClientV2") as mock_client:
|
||||
|
|
@ -209,7 +209,7 @@ class RegisterTest(test_util.ConfigTestCase):
|
|||
with mock.patch("certbot._internal.eff.handle_subscription") as mock_handle:
|
||||
mock_client().new_account_and_tos.side_effect = [mx_err, mock.MagicMock()]
|
||||
self.assertRaises(messages.Error, self._call)
|
||||
self.assertFalse(mock_handle.called)
|
||||
self.assertIs(mock_handle.called, False)
|
||||
|
||||
|
||||
class ClientTestCommon(test_util.ConfigTestCase):
|
||||
|
|
@ -246,7 +246,7 @@ class ClientTest(ClientTestCommon):
|
|||
|
||||
def test_init_acme_verify_ssl(self):
|
||||
net = self.acme_client.call_args[0][0]
|
||||
self.assertTrue(net.verify_ssl)
|
||||
self.assertIs(net.verify_ssl, True)
|
||||
|
||||
def _mock_obtain_certificate(self):
|
||||
self.client.auth_handler = mock.MagicMock()
|
||||
|
|
@ -608,7 +608,7 @@ class EnhanceConfigTest(ClientTestCommon):
|
|||
def test_already_exists_header(self, mock_log):
|
||||
self.config.hsts = True
|
||||
self._test_with_already_existing()
|
||||
self.assertTrue(mock_log.warning.called)
|
||||
self.assertIs(mock_log.warning.called, True)
|
||||
self.assertEqual(mock_log.warning.call_args[0][1],
|
||||
'Strict-Transport-Security')
|
||||
|
||||
|
|
@ -616,7 +616,7 @@ class EnhanceConfigTest(ClientTestCommon):
|
|||
def test_already_exists_redirect(self, mock_log):
|
||||
self.config.redirect = True
|
||||
self._test_with_already_existing()
|
||||
self.assertTrue(mock_log.warning.called)
|
||||
self.assertIs(mock_log.warning.called, True)
|
||||
self.assertEqual(mock_log.warning.call_args[0][1],
|
||||
'redirect')
|
||||
|
||||
|
|
@ -624,13 +624,13 @@ class EnhanceConfigTest(ClientTestCommon):
|
|||
def test_config_set_no_warning_redirect(self, mock_log):
|
||||
self.config.redirect = False
|
||||
self._test_with_already_existing()
|
||||
self.assertFalse(mock_log.warning.called)
|
||||
self.assertIs(mock_log.warning.called, False)
|
||||
|
||||
@mock.patch("certbot._internal.client.logger")
|
||||
def test_no_warn_redirect(self, mock_log):
|
||||
self.config.redirect = None
|
||||
self._test_with_all_supported()
|
||||
self.assertFalse(mock_log.warning.called)
|
||||
self.assertIs(mock_log.warning.called, False)
|
||||
|
||||
def test_no_ask_hsts(self):
|
||||
self.config.hsts = True
|
||||
|
|
@ -683,7 +683,7 @@ class EnhanceConfigTest(ClientTestCommon):
|
|||
|
||||
def _test_error_with_rollback(self):
|
||||
self._test_error()
|
||||
self.assertTrue(self.client.installer.restart.called)
|
||||
self.assertIs(self.client.installer.restart.called, True)
|
||||
|
||||
def _test_error(self):
|
||||
self.config.redirect = True
|
||||
|
|
|
|||
|
|
@ -157,17 +157,17 @@ class UmaskTest(TempDirTestCase):
|
|||
try:
|
||||
dir1 = os.path.join(self.tempdir, 'probe1')
|
||||
filesystem.mkdir(dir1)
|
||||
self.assertTrue(filesystem.check_mode(dir1, 0o755))
|
||||
self.assertIs(filesystem.check_mode(dir1, 0o755), True)
|
||||
|
||||
filesystem.umask(0o077)
|
||||
|
||||
dir2 = os.path.join(self.tempdir, 'dir2')
|
||||
filesystem.mkdir(dir2)
|
||||
self.assertTrue(filesystem.check_mode(dir2, 0o700))
|
||||
self.assertIs(filesystem.check_mode(dir2, 0o700), True)
|
||||
|
||||
dir3 = os.path.join(self.tempdir, 'dir3')
|
||||
filesystem.mkdir(dir3, mode=0o777)
|
||||
self.assertTrue(filesystem.check_mode(dir3, 0o700))
|
||||
self.assertIs(filesystem.check_mode(dir3, 0o700), True)
|
||||
finally:
|
||||
filesystem.umask(previous_umask)
|
||||
|
||||
|
|
@ -177,17 +177,17 @@ class UmaskTest(TempDirTestCase):
|
|||
try:
|
||||
file1 = os.path.join(self.tempdir, 'probe1')
|
||||
UmaskTest._create_file(file1)
|
||||
self.assertTrue(filesystem.check_mode(file1, 0o755))
|
||||
self.assertIs(filesystem.check_mode(file1, 0o755), True)
|
||||
|
||||
filesystem.umask(0o077)
|
||||
|
||||
file2 = os.path.join(self.tempdir, 'probe2')
|
||||
UmaskTest._create_file(file2)
|
||||
self.assertTrue(filesystem.check_mode(file2, 0o700))
|
||||
self.assertIs(filesystem.check_mode(file2, 0o700), True)
|
||||
|
||||
file3 = os.path.join(self.tempdir, 'probe3')
|
||||
UmaskTest._create_file(file3)
|
||||
self.assertTrue(filesystem.check_mode(file3, 0o700))
|
||||
self.assertIs(filesystem.check_mode(file3, 0o700), True)
|
||||
finally:
|
||||
filesystem.umask(previous_umask)
|
||||
|
||||
|
|
@ -400,7 +400,7 @@ class CopyOwnershipAndModeTest(test_util.TempDirTestCase):
|
|||
util.safe_open(path1, 'w').close()
|
||||
util.safe_open(path2, 'w').close()
|
||||
|
||||
self.assertTrue(filesystem.has_same_ownership(path1, path2))
|
||||
self.assertIs(filesystem.has_same_ownership(path1, path2), True)
|
||||
|
||||
@unittest.skipIf(POSIX_MODE, reason='Test specific to Windows security')
|
||||
def test_copy_ownership_and_mode_windows(self):
|
||||
|
|
@ -408,8 +408,8 @@ class CopyOwnershipAndModeTest(test_util.TempDirTestCase):
|
|||
dst = _create_probe(self.tempdir, name='dst')
|
||||
|
||||
filesystem.chmod(src, 0o700)
|
||||
self.assertTrue(filesystem.check_mode(src, 0o700))
|
||||
self.assertTrue(filesystem.check_mode(dst, 0o744))
|
||||
self.assertIs(filesystem.check_mode(src, 0o700), True)
|
||||
self.assertIs(filesystem.check_mode(dst, 0o744), True)
|
||||
|
||||
# Checking an actual change of owner is tricky during a unit test, since we do not know
|
||||
# if any user exists beside the current one. So we mock _copy_win_ownership. It's behavior
|
||||
|
|
@ -418,7 +418,7 @@ class CopyOwnershipAndModeTest(test_util.TempDirTestCase):
|
|||
filesystem.copy_ownership_and_mode(src, dst)
|
||||
|
||||
mock_copy_owner.assert_called_once_with(src, dst)
|
||||
self.assertTrue(filesystem.check_mode(dst, 0o700))
|
||||
self.assertIs(filesystem.check_mode(dst, 0o700), True)
|
||||
|
||||
|
||||
class CheckPermissionsTest(test_util.TempDirTestCase):
|
||||
|
|
@ -428,14 +428,14 @@ class CheckPermissionsTest(test_util.TempDirTestCase):
|
|||
self.probe_path = _create_probe(self.tempdir)
|
||||
|
||||
def test_check_mode(self):
|
||||
self.assertTrue(filesystem.check_mode(self.probe_path, 0o744))
|
||||
self.assertIs(filesystem.check_mode(self.probe_path, 0o744), True)
|
||||
|
||||
filesystem.chmod(self.probe_path, 0o700)
|
||||
self.assertFalse(filesystem.check_mode(self.probe_path, 0o744))
|
||||
|
||||
@unittest.skipIf(POSIX_MODE, reason='Test specific to Windows security')
|
||||
def test_check_owner_windows(self):
|
||||
self.assertTrue(filesystem.check_owner(self.probe_path))
|
||||
self.assertIs(filesystem.check_owner(self.probe_path), True)
|
||||
|
||||
system = win32security.ConvertStringSidToSid(SYSTEM_SID)
|
||||
security = win32security.SECURITY_ATTRIBUTES().SECURITY_DESCRIPTOR
|
||||
|
|
@ -447,7 +447,7 @@ class CheckPermissionsTest(test_util.TempDirTestCase):
|
|||
|
||||
@unittest.skipUnless(POSIX_MODE, reason='Test specific to Linux security')
|
||||
def test_check_owner_linux(self):
|
||||
self.assertTrue(filesystem.check_owner(self.probe_path))
|
||||
self.assertIs(filesystem.check_owner(self.probe_path), True)
|
||||
|
||||
import os as std_os # pylint: disable=os-module-forbidden
|
||||
# See related inline comment in certbot.compat.filesystem.check_owner method
|
||||
|
|
@ -459,7 +459,7 @@ class CheckPermissionsTest(test_util.TempDirTestCase):
|
|||
self.assertFalse(filesystem.check_owner(self.probe_path))
|
||||
|
||||
def test_check_permissions(self):
|
||||
self.assertTrue(filesystem.check_permissions(self.probe_path, 0o744))
|
||||
self.assertIs(filesystem.check_permissions(self.probe_path, 0o744), True)
|
||||
|
||||
with mock.patch('certbot.compat.filesystem.check_mode') as mock_mode:
|
||||
mock_mode.return_value = False
|
||||
|
|
@ -471,7 +471,7 @@ class CheckPermissionsTest(test_util.TempDirTestCase):
|
|||
|
||||
def test_check_min_permissions(self):
|
||||
filesystem.chmod(self.probe_path, 0o744)
|
||||
self.assertTrue(filesystem.has_min_permissions(self.probe_path, 0o744))
|
||||
self.assertIs(filesystem.has_min_permissions(self.probe_path, 0o744), True)
|
||||
|
||||
filesystem.chmod(self.probe_path, 0o700)
|
||||
self.assertFalse(filesystem.has_min_permissions(self.probe_path, 0o744))
|
||||
|
|
@ -481,7 +481,7 @@ class CheckPermissionsTest(test_util.TempDirTestCase):
|
|||
|
||||
def test_is_world_reachable(self):
|
||||
filesystem.chmod(self.probe_path, 0o744)
|
||||
self.assertTrue(filesystem.has_world_permissions(self.probe_path))
|
||||
self.assertIs(filesystem.has_world_permissions(self.probe_path), True)
|
||||
|
||||
filesystem.chmod(self.probe_path, 0o700)
|
||||
self.assertFalse(filesystem.has_world_permissions(self.probe_path))
|
||||
|
|
@ -500,7 +500,7 @@ class OsReplaceTest(test_util.TempDirTestCase):
|
|||
filesystem.replace(src, dst)
|
||||
|
||||
self.assertFalse(os.path.exists(src))
|
||||
self.assertTrue(os.path.exists(dst))
|
||||
self.assertIs(os.path.exists(dst), True)
|
||||
|
||||
|
||||
class RealpathTest(test_util.TempDirTestCase):
|
||||
|
|
@ -542,7 +542,7 @@ class RealpathTest(test_util.TempDirTestCase):
|
|||
|
||||
with self.assertRaises(RuntimeError) as error:
|
||||
filesystem.realpath(link1_path)
|
||||
self.assertTrue('link1 is a loop!' in str(error.exception))
|
||||
self.assertIn('link1 is a loop!', str(error.exception))
|
||||
|
||||
|
||||
class IsExecutableTest(test_util.TempDirTestCase):
|
||||
|
|
@ -578,7 +578,7 @@ class IsExecutableTest(test_util.TempDirTestCase):
|
|||
with _fix_windows_runtime():
|
||||
mock_access.return_value = True
|
||||
mock_isfile.return_value = True
|
||||
self.assertTrue(filesystem.is_executable("/path/to/exe"))
|
||||
self.assertIs(filesystem.is_executable("/path/to/exe"), True)
|
||||
|
||||
@mock.patch("certbot.compat.filesystem.os.path.isfile")
|
||||
@mock.patch("certbot.compat.filesystem.os.access")
|
||||
|
|
@ -586,7 +586,7 @@ class IsExecutableTest(test_util.TempDirTestCase):
|
|||
with _fix_windows_runtime():
|
||||
mock_access.return_value = True
|
||||
mock_isfile.return_value = True
|
||||
self.assertTrue(filesystem.is_executable("exe"))
|
||||
self.assertIs(filesystem.is_executable("exe"), True)
|
||||
|
||||
@mock.patch("certbot.compat.filesystem.os.path.isfile")
|
||||
@mock.patch("certbot.compat.filesystem.os.access")
|
||||
|
|
|
|||
|
|
@ -45,4 +45,4 @@ class ExecuteTest(unittest.TestCase):
|
|||
mock_logger.info.assert_any_call(mock.ANY, mock.ANY,
|
||||
mock.ANY, stdout)
|
||||
if stderr or returncode:
|
||||
self.assertTrue(mock_logger.error.called)
|
||||
self.assertIs(mock_logger.error.called, True)
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ class InitSaveKeyTest(test_util.TempDirTestCase):
|
|||
mock_make.return_value = b'key_pem'
|
||||
key = self._call(1024, self.workdir)
|
||||
self.assertEqual(key.pem, b'key_pem')
|
||||
self.assertTrue('key-certbot.pem' in key.file)
|
||||
self.assertIn('key-certbot.pem', key.file)
|
||||
self.assertTrue(os.path.exists(os.path.join(self.workdir, key.file)))
|
||||
|
||||
@mock.patch('certbot.crypto_util.make_key')
|
||||
|
|
@ -89,7 +89,7 @@ class InitSaveCSRTest(test_util.TempDirTestCase):
|
|||
mock.Mock(pem='dummy_key'), 'example.com', self.tempdir)
|
||||
|
||||
self.assertEqual(csr.data, b'csr_pem')
|
||||
self.assertTrue('csr-certbot.pem' in csr.file)
|
||||
self.assertIn('csr-certbot.pem', csr.file)
|
||||
|
||||
|
||||
class ValidCSRTest(unittest.TestCase):
|
||||
|
|
@ -251,7 +251,7 @@ class VerifyRenewableCertTest(VerifyCertSetup):
|
|||
return verify_renewable_cert(renewable_cert)
|
||||
|
||||
def test_verify_renewable_cert(self):
|
||||
self.assertEqual(None, self._call(self.renewable_cert))
|
||||
self.assertIsNone(self._call(self.renewable_cert))
|
||||
|
||||
@mock.patch('certbot.crypto_util.verify_renewable_cert_sig', side_effect=errors.Error(""))
|
||||
def test_verify_renewable_cert_failure(self, unused_verify_renewable_cert_sign):
|
||||
|
|
@ -266,14 +266,14 @@ class VerifyRenewableCertSigTest(VerifyCertSetup):
|
|||
return verify_renewable_cert_sig(renewable_cert)
|
||||
|
||||
def test_cert_sig_match(self):
|
||||
self.assertEqual(None, self._call(self.renewable_cert))
|
||||
self.assertIsNone(self._call(self.renewable_cert))
|
||||
|
||||
def test_cert_sig_match_ec(self):
|
||||
renewable_cert = mock.MagicMock()
|
||||
renewable_cert.cert_path = P256_CERT_PATH
|
||||
renewable_cert.chain_path = P256_CERT_PATH
|
||||
renewable_cert.key_path = P256_KEY
|
||||
self.assertEqual(None, self._call(renewable_cert))
|
||||
self.assertIsNone(self._call(renewable_cert))
|
||||
|
||||
def test_cert_sig_mismatch(self):
|
||||
self.bad_renewable_cert.cert_path = test_util.vector_path('cert_512_bad.pem')
|
||||
|
|
@ -288,7 +288,7 @@ class VerifyFullchainTest(VerifyCertSetup):
|
|||
return verify_fullchain(renewable_cert)
|
||||
|
||||
def test_fullchain_matches(self):
|
||||
self.assertEqual(None, self._call(self.renewable_cert))
|
||||
self.assertIsNone(self._call(self.renewable_cert))
|
||||
|
||||
def test_fullchain_mismatch(self):
|
||||
self.assertRaises(errors.Error, self._call, self.bad_renewable_cert)
|
||||
|
|
@ -308,7 +308,7 @@ class VerifyCertMatchesPrivKeyTest(VerifyCertSetup):
|
|||
def test_cert_priv_key_match(self):
|
||||
self.renewable_cert.cert = SS_CERT_PATH
|
||||
self.renewable_cert.privkey = RSA2048_KEY_PATH
|
||||
self.assertEqual(None, self._call(self.renewable_cert))
|
||||
self.assertIsNone(self._call(self.renewable_cert))
|
||||
|
||||
def test_cert_priv_key_mismatch(self):
|
||||
self.bad_renewable_cert.privkey = RSA256_KEY_PATH
|
||||
|
|
|
|||
|
|
@ -50,12 +50,12 @@ class CompleterTest(test_util.TempDirTestCase):
|
|||
|
||||
for i in range(num_paths):
|
||||
completion = my_completer.complete(self.tempdir, i)
|
||||
self.assertTrue(completion in self.paths)
|
||||
self.assertIn(completion, self.paths)
|
||||
self.paths.remove(completion)
|
||||
|
||||
self.assertFalse(self.paths)
|
||||
self.assertEqual(len(self.paths), 0)
|
||||
completion = my_completer.complete(self.tempdir, num_paths)
|
||||
self.assertEqual(completion, None)
|
||||
self.assertIsNone(completion)
|
||||
|
||||
@unittest.skipIf('readline' not in sys.modules,
|
||||
reason='Not relevant if readline is not available.')
|
||||
|
|
@ -98,7 +98,7 @@ class CompleterTest(test_util.TempDirTestCase):
|
|||
with completer.Completer():
|
||||
pass
|
||||
|
||||
self.assertTrue(mock_readline.parse_and_bind.called)
|
||||
self.assertIs(mock_readline.parse_and_bind.called, True)
|
||||
|
||||
|
||||
def enable_tab_completion(unused_command):
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ class GetEmailTest(unittest.TestCase):
|
|||
with mock.patch("certbot.display.ops.util.safe_email") as mock_safe_email:
|
||||
mock_safe_email.return_value = True
|
||||
self._call()
|
||||
self.assertTrue(invalid_txt not in mock_input.call_args[0][0])
|
||||
self.assertNotIn(invalid_txt, mock_input.call_args[0][0])
|
||||
self._call(invalid=True)
|
||||
self.assertTrue(invalid_txt in mock_input.call_args[0][0])
|
||||
self.assertIn(invalid_txt, mock_input.call_args[0][0])
|
||||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_optional_flag(self, mock_get_utility):
|
||||
|
|
@ -73,8 +73,7 @@ class GetEmailTest(unittest.TestCase):
|
|||
mock_safe_email.side_effect = [False, True]
|
||||
self._call(optional=False)
|
||||
for call in mock_input.call_args_list:
|
||||
self.assertTrue(
|
||||
"--register-unsafely-without-email" not in call[0][0])
|
||||
self.assertNotIn("--register-unsafely-without-email", call[0][0])
|
||||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_optional_invalid_unsafe(self, mock_get_utility):
|
||||
|
|
@ -84,7 +83,7 @@ class GetEmailTest(unittest.TestCase):
|
|||
with mock.patch("certbot.display.ops.util.safe_email") as mock_safe_email:
|
||||
mock_safe_email.side_effect = [False, True]
|
||||
self._call(invalid=True)
|
||||
self.assertTrue(invalid_txt in mock_input.call_args[0][0])
|
||||
self.assertIn(invalid_txt, mock_input.call_args[0][0])
|
||||
|
||||
|
||||
class ChooseAccountTest(test_util.TempDirTestCase):
|
||||
|
|
@ -128,7 +127,7 @@ class ChooseAccountTest(test_util.TempDirTestCase):
|
|||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_cancel(self, mock_util):
|
||||
mock_util().menu.return_value = (display_util.CANCEL, 1)
|
||||
self.assertTrue(self._call([self.acc1, self.acc2]) is None)
|
||||
self.assertIsNone(self._call([self.acc1, self.acc2]))
|
||||
|
||||
|
||||
class GenHttpsNamesTest(unittest.TestCase):
|
||||
|
|
@ -210,8 +209,7 @@ class ChooseNamesTest(unittest.TestCase):
|
|||
actual_doms = self._call(self.mock_install)
|
||||
self.assertEqual(mock_util().input.call_count, 1)
|
||||
self.assertEqual(actual_doms, [domain])
|
||||
self.assertTrue(
|
||||
"configuration files" in mock_util().input.call_args[0][0])
|
||||
self.assertIn("configuration files", mock_util().input.call_args[0][0])
|
||||
|
||||
def test_sort_names_trivial(self):
|
||||
from certbot.display.ops import _sort_names
|
||||
|
|
@ -353,7 +351,7 @@ class SuccessInstallationTest(unittest.TestCase):
|
|||
arg = mock_util().notification.call_args_list[0][0][0]
|
||||
|
||||
for name in names:
|
||||
self.assertTrue(name in arg)
|
||||
self.assertIn(name, arg)
|
||||
|
||||
|
||||
class SuccessRenewalTest(unittest.TestCase):
|
||||
|
|
@ -374,7 +372,7 @@ class SuccessRenewalTest(unittest.TestCase):
|
|||
arg = mock_util().notification.call_args_list[0][0][0]
|
||||
|
||||
for name in names:
|
||||
self.assertTrue(name in arg)
|
||||
self.assertIn(name, arg)
|
||||
|
||||
class SuccessRevocationTest(unittest.TestCase):
|
||||
"""Test the success revocation message."""
|
||||
|
|
@ -478,8 +476,8 @@ class ChooseValuesTest(unittest.TestCase):
|
|||
mock_util().checklist.return_value = (display_util.OK, [items[2]])
|
||||
result = self._call(items, None)
|
||||
self.assertEqual(result, [items[2]])
|
||||
self.assertTrue(mock_util().checklist.called)
|
||||
self.assertEqual(mock_util().checklist.call_args[0][0], None)
|
||||
self.assertIs(mock_util().checklist.called, True)
|
||||
self.assertIsNone(mock_util().checklist.call_args[0][0])
|
||||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
def test_choose_names_success_question(self, mock_util):
|
||||
|
|
@ -488,7 +486,7 @@ class ChooseValuesTest(unittest.TestCase):
|
|||
mock_util().checklist.return_value = (display_util.OK, [items[1]])
|
||||
result = self._call(items, question)
|
||||
self.assertEqual(result, [items[1]])
|
||||
self.assertTrue(mock_util().checklist.called)
|
||||
self.assertIs(mock_util().checklist.called, True)
|
||||
self.assertEqual(mock_util().checklist.call_args[0][0], question)
|
||||
|
||||
@test_util.patch_get_utility("certbot.display.ops.z_util")
|
||||
|
|
@ -498,7 +496,7 @@ class ChooseValuesTest(unittest.TestCase):
|
|||
mock_util().checklist.return_value = (display_util.CANCEL, [])
|
||||
result = self._call(items, question)
|
||||
self.assertEqual(result, [])
|
||||
self.assertTrue(mock_util().checklist.called)
|
||||
self.assertIs(mock_util().checklist.called, True)
|
||||
self.assertEqual(mock_util().checklist.call_args[0][0], question)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
self.displayer.notification("message", False)
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
|
||||
self.assertTrue("message" in string)
|
||||
self.assertIn("message", string)
|
||||
mock_logger.debug.assert_called_with("Notifying user: %s", "message")
|
||||
|
||||
def test_notification_pause(self):
|
||||
|
|
@ -82,25 +82,25 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
with mock.patch(input_with_timeout, return_value="enter"):
|
||||
self.displayer.notification("message", force_interactive=True)
|
||||
|
||||
self.assertTrue("message" in self.mock_stdout.write.call_args[0][0])
|
||||
self.assertIn("message", self.mock_stdout.write.call_args[0][0])
|
||||
|
||||
def test_notification_noninteractive(self):
|
||||
self._force_noninteractive(self.displayer.notification, "message")
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
self.assertTrue("message" in string)
|
||||
self.assertIn("message", string)
|
||||
|
||||
def test_notification_noninteractive2(self):
|
||||
# The main purpose of this test is to make sure we only call
|
||||
# logger.warning once which _force_noninteractive checks internally
|
||||
self._force_noninteractive(self.displayer.notification, "message")
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
self.assertTrue("message" in string)
|
||||
self.assertIn("message", string)
|
||||
|
||||
self.assertTrue(self.displayer.skipped_interaction)
|
||||
|
||||
self._force_noninteractive(self.displayer.notification, "message2")
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
self.assertTrue("message2" in string)
|
||||
self.assertIn("message2", string)
|
||||
|
||||
def test_notification_decoration(self):
|
||||
from certbot.compat import os
|
||||
|
|
@ -110,7 +110,8 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
|
||||
self.displayer.notification("message2", pause=False)
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
self.assertTrue("- - - " in string and ("message2" + os.linesep) in string)
|
||||
self.assertIn("- - - ", string)
|
||||
self.assertIn("message2" + os.linesep, string)
|
||||
|
||||
@mock.patch("certbot.display.util."
|
||||
"FileDisplay._get_valid_int_ans")
|
||||
|
|
@ -265,7 +266,7 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
result = func(*args, **kwargs)
|
||||
|
||||
if skipped_interaction:
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
else:
|
||||
self.assertEqual(mock_logger.warning.call_count, 1)
|
||||
|
||||
|
|
@ -331,7 +332,7 @@ class FileOutputDisplayTest(unittest.TestCase):
|
|||
# force_interactive to prevent workflow regressions.
|
||||
for name in interfaces.IDisplay.names():
|
||||
arg_spec = inspect.getfullargspec(getattr(self.displayer, name))
|
||||
self.assertTrue("force_interactive" in arg_spec.args)
|
||||
self.assertIn("force_interactive", arg_spec.args)
|
||||
|
||||
|
||||
class NoninteractiveDisplayTest(unittest.TestCase):
|
||||
|
|
@ -345,7 +346,7 @@ class NoninteractiveDisplayTest(unittest.TestCase):
|
|||
self.displayer.notification("message", 10)
|
||||
string = self.mock_stdout.write.call_args[0][0]
|
||||
|
||||
self.assertTrue("message" in string)
|
||||
self.assertIn("message", string)
|
||||
mock_logger.debug.assert_called_with("Notifying user: %s", "message")
|
||||
|
||||
def test_notification_decoration(self):
|
||||
|
|
@ -401,7 +402,7 @@ class NoninteractiveDisplayTest(unittest.TestCase):
|
|||
method = getattr(self.displayer, name)
|
||||
# asserts method accepts arbitrary keyword arguments
|
||||
result = inspect.getfullargspec(method).varkw
|
||||
self.assertFalse(result is None)
|
||||
self.assertIsNotNone(result)
|
||||
|
||||
|
||||
class SeparateListInputTest(unittest.TestCase):
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ class PrepareSubscriptionTest(SubscriptionTest):
|
|||
self._call()
|
||||
actual = mock_notify.call_args[0][0]
|
||||
expected_part = "because you didn't provide an e-mail address"
|
||||
self.assertTrue(expected_part in actual)
|
||||
self.assertIn(expected_part, actual)
|
||||
self.assertIsNone(self.account.meta.register_to_eff)
|
||||
|
||||
@test_util.patch_get_utility()
|
||||
|
|
@ -92,7 +92,7 @@ class PrepareSubscriptionTest(SubscriptionTest):
|
|||
call_args, call_kwargs = mock_get_utility().yesno.call_args
|
||||
actual = call_args[0]
|
||||
expected_part = 'Electronic Frontier Foundation'
|
||||
self.assertTrue(expected_part in actual)
|
||||
self.assertIn(expected_part, actual)
|
||||
self.assertFalse(call_kwargs.get('default', True))
|
||||
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ class HandleSubscriptionTest(SubscriptionTest):
|
|||
@mock.patch('certbot._internal.eff.subscribe')
|
||||
def test_no_subscribe(self, mock_subscribe):
|
||||
self._call()
|
||||
self.assertFalse(mock_subscribe.called)
|
||||
self.assertIs(mock_subscribe.called, False)
|
||||
|
||||
@mock.patch('certbot._internal.eff.subscribe')
|
||||
def test_subscribe(self, mock_subscribe):
|
||||
|
|
@ -140,7 +140,7 @@ class SubscribeTest(unittest.TestCase):
|
|||
self.assertEqual(call_args[0], constants.EFF_SUBSCRIBE_URI)
|
||||
|
||||
data = call_kwargs.get('data')
|
||||
self.assertFalse(data is None)
|
||||
self.assertIsNotNone(data)
|
||||
self.assertEqual(data.get('email'), self.email)
|
||||
|
||||
def test_bad_status(self):
|
||||
|
|
@ -148,7 +148,7 @@ class SubscribeTest(unittest.TestCase):
|
|||
self._call()
|
||||
actual = self._get_reported_message()
|
||||
expected_part = 'because your e-mail address appears to be invalid.'
|
||||
self.assertTrue(expected_part in actual)
|
||||
self.assertIn(expected_part, actual)
|
||||
|
||||
def test_not_ok(self):
|
||||
self.response.ok = False
|
||||
|
|
@ -156,21 +156,21 @@ class SubscribeTest(unittest.TestCase):
|
|||
self._call()
|
||||
actual = self._get_reported_message()
|
||||
unexpected_part = 'because'
|
||||
self.assertFalse(unexpected_part in actual)
|
||||
self.assertNotIn(unexpected_part, actual)
|
||||
|
||||
def test_response_not_json(self):
|
||||
self.response.json.side_effect = ValueError()
|
||||
self._call()
|
||||
actual = self._get_reported_message()
|
||||
expected_part = 'problem'
|
||||
self.assertTrue(expected_part in actual)
|
||||
self.assertIn(expected_part, actual)
|
||||
|
||||
def test_response_json_missing_status_element(self):
|
||||
self.json.clear()
|
||||
self._call()
|
||||
actual = self._get_reported_message()
|
||||
expected_part = 'problem'
|
||||
self.assertTrue(expected_part in actual)
|
||||
self.assertIn(expected_part, actual)
|
||||
|
||||
def _get_reported_message(self):
|
||||
self.assertTrue(self.mock_notify.called)
|
||||
|
|
@ -179,7 +179,7 @@ class SubscribeTest(unittest.TestCase):
|
|||
@test_util.patch_get_utility()
|
||||
def test_subscribe(self, mock_get_utility):
|
||||
self._call()
|
||||
self.assertFalse(mock_get_utility.called)
|
||||
self.assertIs(mock_get_utility.called, False)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
|
|
@ -120,7 +120,7 @@ class ErrorHandlerTest(unittest.TestCase):
|
|||
sys.exit(0)
|
||||
except SystemExit:
|
||||
pass
|
||||
self.assertFalse(self.init_func.called)
|
||||
self.assertIs(self.init_func.called, False)
|
||||
|
||||
def test_regular_exit(self):
|
||||
func = mock.MagicMock()
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@ class TestScanningFlags(unittest.TestCase):
|
|||
arg_parser = HelpfulArgumentParser(['run'], {})
|
||||
detected_flag = arg_parser.prescan_for_flag('--help',
|
||||
['all', 'certonly'])
|
||||
self.assertFalse(detected_flag)
|
||||
self.assertIs(detected_flag, False)
|
||||
detected_flag = arg_parser.prescan_for_flag('-h',
|
||||
['all, certonly'])
|
||||
self.assertFalse(detected_flag)
|
||||
self.assertIs(detected_flag, False)
|
||||
|
||||
def test_prescan_unvalid_topic(self):
|
||||
arg_parser = HelpfulArgumentParser(['--help', 'all'], {})
|
||||
|
|
@ -30,7 +30,7 @@ class TestScanningFlags(unittest.TestCase):
|
|||
self.assertIs(detected_flag, True)
|
||||
detected_flag = arg_parser.prescan_for_flag('-h',
|
||||
arg_parser.help_topics)
|
||||
self.assertFalse(detected_flag)
|
||||
self.assertIs(detected_flag, False)
|
||||
|
||||
def test_prescan_valid_topic(self):
|
||||
arg_parser = HelpfulArgumentParser(['-h', 'all'], {})
|
||||
|
|
@ -39,7 +39,7 @@ class TestScanningFlags(unittest.TestCase):
|
|||
self.assertEqual(detected_flag, 'all')
|
||||
detected_flag = arg_parser.prescan_for_flag('--help',
|
||||
arg_parser.help_topics)
|
||||
self.assertFalse(detected_flag)
|
||||
self.assertIs(detected_flag, False)
|
||||
|
||||
class TestDetermineVerbs(unittest.TestCase):
|
||||
'''Tests for determine_verb methods of HelpfulArgumentParser'''
|
||||
|
|
@ -90,7 +90,7 @@ class TestAdd(unittest.TestCase):
|
|||
metavar="EAB_KID",
|
||||
help="Key Identifier for External Account Binding")
|
||||
parsed_args = arg_parser.parser.parse_args(["--eab-kid", None])
|
||||
self.assertIs(parsed_args.eab_kid, None)
|
||||
self.assertIsNone(parsed_args.eab_kid)
|
||||
self.assertTrue(hasattr(parsed_args, 'eab_kid'))
|
||||
|
||||
|
||||
|
|
@ -115,7 +115,7 @@ class TestAddGroup(unittest.TestCase):
|
|||
self.assertTrue(arg_parser.groups["run"])
|
||||
arg_parser.add_group("certonly", description="description of certonly")
|
||||
with self.assertRaises(KeyError):
|
||||
self.assertFalse(arg_parser.groups["certonly"])
|
||||
self.assertIs(arg_parser.groups["certonly"], False)
|
||||
|
||||
|
||||
class TestParseArgsErrors(unittest.TestCase):
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ class ValidateHookTest(test_util.TempDirTestCase):
|
|||
@mock.patch("certbot._internal.hooks._prog")
|
||||
def test_unset(self, mock_prog):
|
||||
self._call(None, "foo")
|
||||
self.assertFalse(mock_prog.called)
|
||||
self.assertIs(mock_prog.called, False)
|
||||
|
||||
|
||||
class HookTest(test_util.ConfigTestCase):
|
||||
|
|
@ -132,8 +132,8 @@ class PreHookTest(HookTest):
|
|||
|
||||
with mock.patch("certbot._internal.hooks.logger") as mock_logger:
|
||||
mock_execute = self._call_with_mock_execute(self.config)
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertFalse(mock_logger.info.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertIs(mock_logger.info.called, False)
|
||||
|
||||
def test_renew_disabled_dir_hooks(self):
|
||||
self.config.directory_hooks = False
|
||||
|
|
@ -158,7 +158,7 @@ class PreHookTest(HookTest):
|
|||
def _test_no_executions_common(self):
|
||||
with mock.patch("certbot._internal.hooks.logger") as mock_logger:
|
||||
mock_execute = self._call_with_mock_execute(self.config)
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertTrue(mock_logger.info.called)
|
||||
|
||||
|
||||
|
|
@ -344,7 +344,7 @@ class DeployHookTest(RenewalHookTest):
|
|||
self.config.dry_run = True
|
||||
mock_execute = self._call_with_mock_execute(
|
||||
self.config, ["example.org"], "/foo/bar")
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertTrue(mock_logger.warning.called)
|
||||
|
||||
@mock.patch("certbot._internal.hooks.logger")
|
||||
|
|
@ -352,8 +352,8 @@ class DeployHookTest(RenewalHookTest):
|
|||
self.config.deploy_hook = None
|
||||
mock_execute = self._call_with_mock_execute(
|
||||
self.config, ["example.org"], "/foo/bar")
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertFalse(mock_logger.info.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertIs(mock_logger.info.called, False)
|
||||
|
||||
def test_success(self):
|
||||
domains = ["example.org", "example.net"]
|
||||
|
|
@ -392,7 +392,7 @@ class RenewHookTest(RenewalHookTest):
|
|||
self.config.dry_run = True
|
||||
mock_execute = self._call_with_mock_execute(
|
||||
self.config, ["example.org"], "/foo/bar")
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertEqual(mock_logger.warning.call_count, 2)
|
||||
|
||||
def test_no_hooks(self):
|
||||
|
|
@ -402,8 +402,8 @@ class RenewHookTest(RenewalHookTest):
|
|||
with mock.patch("certbot._internal.hooks.logger") as mock_logger:
|
||||
mock_execute = self._call_with_mock_execute(
|
||||
self.config, ["example.org"], "/foo/bar")
|
||||
self.assertFalse(mock_execute.called)
|
||||
self.assertFalse(mock_logger.info.called)
|
||||
self.assertIs(mock_execute.called, False)
|
||||
self.assertIs(mock_logger.info.called, False)
|
||||
|
||||
def test_overlap(self):
|
||||
self.config.renew_hook = self.dir_hook
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ class LockFileTest(test_util.TempDirTestCase):
|
|||
try:
|
||||
locked_repr = repr(lock_file)
|
||||
self._test_repr_common(lock_file, locked_repr)
|
||||
self.assertTrue('acquired' in locked_repr)
|
||||
self.assertIn('acquired', locked_repr)
|
||||
finally:
|
||||
lock_file.release()
|
||||
|
||||
|
|
@ -78,11 +78,11 @@ class LockFileTest(test_util.TempDirTestCase):
|
|||
lock_file.release()
|
||||
released_repr = repr(lock_file)
|
||||
self._test_repr_common(lock_file, released_repr)
|
||||
self.assertTrue('released' in released_repr)
|
||||
self.assertIn('released', released_repr)
|
||||
|
||||
def _test_repr_common(self, lock_file, lock_repr):
|
||||
self.assertTrue(lock_file.__class__.__name__ in lock_repr)
|
||||
self.assertTrue(self.lock_path in lock_repr)
|
||||
self.assertIn(lock_file.__class__.__name__, lock_repr)
|
||||
self.assertIn(self.lock_path, lock_repr)
|
||||
|
||||
@test_util.skip_on_windows(
|
||||
'Race conditions on lock are specific to the non-blocking file access approach on Linux.')
|
||||
|
|
@ -102,7 +102,7 @@ class LockFileTest(test_util.TempDirTestCase):
|
|||
with mock.patch('certbot._internal.lock.filesystem.os.stat') as mock_stat:
|
||||
mock_stat.side_effect = delete_and_stat
|
||||
self._call(self.lock_path)
|
||||
self.assertFalse(should_delete)
|
||||
self.assertEqual(len(should_delete), 0)
|
||||
|
||||
def test_removed(self):
|
||||
lock_file = self._call(self.lock_path)
|
||||
|
|
@ -120,7 +120,7 @@ class LockFileTest(test_util.TempDirTestCase):
|
|||
try:
|
||||
self._call(self.lock_path)
|
||||
except IOError as err:
|
||||
self.assertTrue(msg in str(err))
|
||||
self.assertIn(msg, str(err))
|
||||
else: # pragma: no cover
|
||||
self.fail('IOError not raised')
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ class LockFileTest(test_util.TempDirTestCase):
|
|||
try:
|
||||
self._call(self.lock_path)
|
||||
except OSError as err:
|
||||
self.assertTrue(msg in str(err))
|
||||
self.assertIn(msg, str(err))
|
||||
else: # pragma: no cover
|
||||
self.fail('OSError not raised')
|
||||
|
||||
|
|
|
|||
|
|
@ -51,9 +51,8 @@ class PreArgParseSetupTest(unittest.TestCase):
|
|||
memory_handler = handler
|
||||
target = memory_handler.target # type: ignore
|
||||
else:
|
||||
self.assertTrue(isinstance(handler, logging.StreamHandler))
|
||||
self.assertTrue(
|
||||
isinstance(target, logging.StreamHandler))
|
||||
self.assertIsInstance(handler, logging.StreamHandler)
|
||||
self.assertIsInstance(target, logging.StreamHandler)
|
||||
|
||||
mock_register.assert_called_once_with(logging.shutdown)
|
||||
mock_sys.excepthook(1, 2, 3)
|
||||
|
|
@ -146,7 +145,7 @@ class SetupLogFileHandlerTest(test_util.ConfigTestCase):
|
|||
try:
|
||||
self._call(self.config, 'test.log', '%(message)s')
|
||||
except errors.Error as err:
|
||||
self.assertTrue('--logs-dir' in str(err))
|
||||
self.assertIn('--logs-dir', str(err))
|
||||
else: # pragma: no cover
|
||||
self.fail('Error not raised.')
|
||||
|
||||
|
|
@ -337,7 +336,7 @@ class PostArgParseExceptHookTest(unittest.TestCase):
|
|||
mock_logger, output = self._test_common(get_acme_error, debug=False)
|
||||
self._assert_exception_logged(mock_logger.debug, messages.Error)
|
||||
self._assert_quiet_output(mock_logger, output)
|
||||
self.assertFalse(messages.ERROR_PREFIX in output)
|
||||
self.assertNotIn(messages.ERROR_PREFIX, output)
|
||||
|
||||
def test_other_error(self):
|
||||
exc_type = ValueError
|
||||
|
|
@ -379,20 +378,20 @@ class PostArgParseExceptHookTest(unittest.TestCase):
|
|||
def _assert_exception_logged(self, log_func, exc_type):
|
||||
self.assertTrue(log_func.called)
|
||||
call_kwargs = log_func.call_args[1]
|
||||
self.assertTrue('exc_info' in call_kwargs)
|
||||
self.assertIn('exc_info', call_kwargs)
|
||||
|
||||
actual_exc_info = call_kwargs['exc_info']
|
||||
expected_exc_info = (exc_type, mock.ANY, mock.ANY)
|
||||
self.assertEqual(actual_exc_info, expected_exc_info)
|
||||
|
||||
def _assert_logfile_output(self, output):
|
||||
self.assertTrue('Please see the logfile' in output)
|
||||
self.assertTrue(self.log_path in output)
|
||||
self.assertIn('Please see the logfile', output)
|
||||
self.assertIn(self.log_path, output)
|
||||
|
||||
def _assert_quiet_output(self, mock_logger, output):
|
||||
self.assertFalse(mock_logger.exception.called)
|
||||
self.assertIs(mock_logger.exception.called, False)
|
||||
self.assertTrue(mock_logger.debug.called)
|
||||
self.assertTrue(self.error_msg in output)
|
||||
self.assertIn(self.error_msg, output)
|
||||
|
||||
|
||||
class ExitWithLogPathTest(test_util.TempDirTestCase):
|
||||
|
|
@ -407,13 +406,13 @@ class ExitWithLogPathTest(test_util.TempDirTestCase):
|
|||
open(log_file, 'w').close()
|
||||
|
||||
err_str = self._test_common(log_file)
|
||||
self.assertTrue('logfiles' not in err_str)
|
||||
self.assertTrue(log_file in err_str)
|
||||
self.assertNotIn('logfiles', err_str)
|
||||
self.assertIn(log_file, err_str)
|
||||
|
||||
def test_log_dir(self):
|
||||
err_str = self._test_common(self.tempdir)
|
||||
self.assertTrue('logfiles' in err_str)
|
||||
self.assertTrue(self.tempdir in err_str)
|
||||
self.assertIn('logfiles', err_str)
|
||||
self.assertIn(self.tempdir, err_str)
|
||||
|
||||
# pylint: disable=inconsistent-return-statements
|
||||
def _test_common(self, *args, **kwargs):
|
||||
|
|
|
|||
|
|
@ -84,17 +84,17 @@ class TestHandleCerts(unittest.TestCase):
|
|||
mock_set.return_value = False
|
||||
with self.assertRaises(errors.Error) as raised:
|
||||
main._handle_unexpected_key_type_migration(config, cert)
|
||||
self.assertTrue("Please provide both --cert-name and --key-type" in str(raised.exception))
|
||||
self.assertIn("Please provide both --cert-name and --key-type", str(raised.exception))
|
||||
|
||||
mock_set.side_effect = lambda var: var != "certname"
|
||||
with self.assertRaises(errors.Error) as raised:
|
||||
main._handle_unexpected_key_type_migration(config, cert)
|
||||
self.assertTrue("Please provide both --cert-name and --key-type" in str(raised.exception))
|
||||
self.assertIn("Please provide both --cert-name and --key-type", str(raised.exception))
|
||||
|
||||
mock_set.side_effect = lambda var: var != "key_type"
|
||||
with self.assertRaises(errors.Error) as raised:
|
||||
main._handle_unexpected_key_type_migration(config, cert)
|
||||
self.assertTrue("Please provide both --cert-name and --key-type" in str(raised.exception))
|
||||
self.assertIn("Please provide both --cert-name and --key-type", str(raised.exception))
|
||||
|
||||
|
||||
class RunTest(test_util.ConfigTestCase):
|
||||
|
|
@ -196,7 +196,7 @@ class CertonlyTest(unittest.TestCase):
|
|||
self._call('certonly --webroot -d example.com'.split())
|
||||
|
||||
def _assert_no_pause(self, message, pause=True): # pylint: disable=unused-argument
|
||||
self.assertFalse(pause)
|
||||
self.assertIs(pause, False)
|
||||
|
||||
@mock.patch('certbot._internal.cert_manager.lineage_for_certname')
|
||||
@mock.patch('certbot._internal.cert_manager.domains_for_certname')
|
||||
|
|
@ -260,8 +260,7 @@ class FindDomainsOrCertnameTest(unittest.TestCase):
|
|||
mock_config = mock.Mock(domains=None, certname=None)
|
||||
mock_choose_names.return_value = "domainname"
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(main._find_domains_or_certname(mock_config, None),
|
||||
("domainname", None))
|
||||
self.assertEqual(main._find_domains_or_certname(mock_config, None), ("domainname", None))
|
||||
|
||||
@mock.patch('certbot.display.ops.choose_names')
|
||||
def test_no_results(self, mock_choose_names):
|
||||
|
|
@ -275,8 +274,10 @@ class FindDomainsOrCertnameTest(unittest.TestCase):
|
|||
mock_config = mock.Mock(domains=None, certname="one.com")
|
||||
mock_domains.return_value = ["one.com", "two.com"]
|
||||
# pylint: disable=protected-access
|
||||
self.assertEqual(main._find_domains_or_certname(mock_config, None),
|
||||
(["one.com", "two.com"], "one.com"))
|
||||
self.assertEqual(
|
||||
main._find_domains_or_certname(mock_config, None),
|
||||
(["one.com", "two.com"], "one.com")
|
||||
)
|
||||
|
||||
|
||||
class RevokeTest(test_util.TempDirTestCase):
|
||||
|
|
@ -402,7 +403,7 @@ class RevokeTest(test_util.TempDirTestCase):
|
|||
mock_get_utility().yesno.return_value = False
|
||||
mock_delete_if_appropriate.return_value = False
|
||||
self._call()
|
||||
self.assertFalse(mock_delete.called)
|
||||
self.assertIs(mock_delete.called, False)
|
||||
|
||||
class DeleteIfAppropriateTest(test_util.ConfigTestCase):
|
||||
"""Tests for certbot._internal.main._delete_if_appropriate """
|
||||
|
|
@ -536,13 +537,13 @@ class DetermineAccountTest(test_util.ConfigTestCase):
|
|||
self.config.account = self.accs[1].id
|
||||
self.assertEqual((self.accs[1], None), self._call())
|
||||
self.assertEqual(self.accs[1].id, self.config.account)
|
||||
self.assertTrue(self.config.email is None)
|
||||
self.assertIsNone(self.config.email)
|
||||
|
||||
def test_single_account(self):
|
||||
self.account_storage.save(self.accs[0], self.mock_client)
|
||||
self.assertEqual((self.accs[0], None), self._call())
|
||||
self.assertEqual(self.accs[0].id, self.config.account)
|
||||
self.assertTrue(self.config.email is None)
|
||||
self.assertIsNone(self.config.email)
|
||||
|
||||
@mock.patch('certbot._internal.client.display_ops.choose_account')
|
||||
def test_multiple_accounts(self, mock_choose_accounts):
|
||||
|
|
@ -553,7 +554,7 @@ class DetermineAccountTest(test_util.ConfigTestCase):
|
|||
self.assertEqual(
|
||||
set(mock_choose_accounts.call_args[0][0]), set(self.accs))
|
||||
self.assertEqual(self.accs[1].id, self.config.account)
|
||||
self.assertTrue(self.config.email is None)
|
||||
self.assertIsNone(self.config.email)
|
||||
|
||||
@mock.patch('certbot._internal.client.display_ops.get_email')
|
||||
@mock.patch('certbot._internal.main.display_util.notify')
|
||||
|
|
@ -651,7 +652,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
pass
|
||||
finally:
|
||||
output = toy_out.getvalue() or toy_err.getvalue()
|
||||
self.assertTrue("certbot" in output, "Output is {0}".format(output))
|
||||
self.assertIn("certbot", output, "Output is {0}".format(output))
|
||||
|
||||
def _cli_missing_flag(self, args, message):
|
||||
"Ensure that a particular error raises a missing cli flag error containing message"
|
||||
|
|
@ -661,8 +662,8 @@ class MainTest(test_util.ConfigTestCase):
|
|||
main.main(self.standard_args + args[:]) # NOTE: parser can alter its args!
|
||||
except errors.MissingCommandlineFlag as exc_:
|
||||
exc = exc_
|
||||
self.assertTrue(message in str(exc))
|
||||
self.assertTrue(exc is not None)
|
||||
self.assertIn(message, str(exc))
|
||||
self.assertIsNotNone(exc)
|
||||
|
||||
@mock.patch('certbot._internal.log.post_arg_parse_setup')
|
||||
def test_noninteractive(self, _):
|
||||
|
|
@ -690,11 +691,11 @@ class MainTest(test_util.ConfigTestCase):
|
|||
self._call_no_clientmock(args)
|
||||
os_ver = util.get_os_info_ua()
|
||||
ua = acme_net.call_args[1]["user_agent"]
|
||||
self.assertTrue(os_ver in ua)
|
||||
self.assertIn(os_ver, ua)
|
||||
import platform
|
||||
plat = platform.platform()
|
||||
if "linux" in plat.lower():
|
||||
self.assertTrue(util.get_os_info_ua() in ua)
|
||||
self.assertIn(util.get_os_info_ua(), ua)
|
||||
|
||||
with mock.patch('certbot._internal.main.client.acme_client.ClientNetwork') as acme_net:
|
||||
ua = "bandersnatch"
|
||||
|
|
@ -803,8 +804,8 @@ class MainTest(test_util.ConfigTestCase):
|
|||
# Sending nginx a non-existent conf dir will simulate misconfiguration
|
||||
# (we can only do that if certbot-nginx is actually present)
|
||||
ret, _, _, _ = self._call(args)
|
||||
self.assertTrue("The nginx plugin is not working" in ret)
|
||||
self.assertTrue("MisconfigurationError" in ret)
|
||||
self.assertIn("The nginx plugin is not working", ret)
|
||||
self.assertIn("MisconfigurationError", ret)
|
||||
|
||||
self._cli_missing_flag(["--standalone"], "With the standalone plugin, you probably")
|
||||
|
||||
|
|
@ -813,7 +814,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
mock_gsc.return_value = mock.MagicMock()
|
||||
self._call(["certonly", "--manual", "-d", "foo.bar"])
|
||||
unused_config, auth, unused_installer = mock_init.call_args[0]
|
||||
self.assertTrue(isinstance(auth, manual.Authenticator))
|
||||
self.assertIsInstance(auth, manual.Authenticator)
|
||||
|
||||
with mock.patch('certbot._internal.main.certonly') as mock_certonly:
|
||||
self._call(["auth", "--standalone"])
|
||||
|
|
@ -951,7 +952,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
self._call(['-a', 'bad_auth', 'certonly'])
|
||||
assert False, "Exception should have been raised"
|
||||
except errors.PluginSelectionError as e:
|
||||
self.assertTrue('The requested bad_auth plugin does not appear' in str(e))
|
||||
self.assertIn('The requested bad_auth plugin does not appear', str(e))
|
||||
|
||||
def test_check_config_sanity_domain(self):
|
||||
# FQDN
|
||||
|
|
@ -1010,8 +1011,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
self._certonly_new_request_common(mock_client, ['--dry-run'])
|
||||
self.assertEqual(
|
||||
mock_client.obtain_and_enroll_certificate.call_count, 1)
|
||||
self.assertTrue(
|
||||
'dry run' in mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertIn('dry run', mock_get_utility().add_message.call_args[0][0])
|
||||
# Asserts we don't suggest donating after a successful dry run
|
||||
self.assertEqual(mock_get_utility().add_message.call_count, 1)
|
||||
|
||||
|
|
@ -1032,12 +1032,11 @@ class MainTest(test_util.ConfigTestCase):
|
|||
self.assertEqual(
|
||||
mock_client.obtain_and_enroll_certificate.call_count, 1)
|
||||
cert_msg = mock_get_utility().add_message.call_args_list[0][0][0]
|
||||
self.assertTrue(cert_path in cert_msg)
|
||||
self.assertTrue(date in cert_msg)
|
||||
self.assertTrue(key_path in cert_msg)
|
||||
self.assertTrue(
|
||||
'donate' in mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertTrue(mock_subscription.called)
|
||||
self.assertIn(cert_path, cert_msg)
|
||||
self.assertIn(date, cert_msg)
|
||||
self.assertIn(key_path, cert_msg)
|
||||
self.assertIn('donate', mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertIs(mock_subscription.called, True)
|
||||
|
||||
@mock.patch('certbot._internal.eff.handle_subscription')
|
||||
def test_certonly_new_request_failure(self, mock_subscription):
|
||||
|
|
@ -1045,7 +1044,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
mock_client.obtain_and_enroll_certificate.return_value = False
|
||||
self.assertRaises(errors.Error,
|
||||
self._certonly_new_request_common, mock_client)
|
||||
self.assertFalse(mock_subscription.called)
|
||||
self.assertIs(mock_subscription.called, False)
|
||||
|
||||
def _test_renewal_common(self, due_for_renewal, extra_args, log_out=None,
|
||||
args=None, should_renew=True, error_expected=False,
|
||||
|
|
@ -1120,7 +1119,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
finally:
|
||||
if log_out:
|
||||
with open(os.path.join(self.config.logs_dir, "letsencrypt.log")) as lf:
|
||||
self.assertTrue(log_out in lf.read())
|
||||
self.assertIn(log_out, lf.read())
|
||||
|
||||
return mock_lineage, mock_get_utility, stdout
|
||||
|
||||
|
|
@ -1131,8 +1130,8 @@ class MainTest(test_util.ConfigTestCase):
|
|||
lineage.update_all_links_to.assert_called_once_with(
|
||||
lineage.latest_common_version())
|
||||
cert_msg = get_utility().add_message.call_args_list[0][0][0]
|
||||
self.assertTrue('fullchain.pem' in cert_msg)
|
||||
self.assertTrue('donate' in get_utility().add_message.call_args[0][0])
|
||||
self.assertIn('fullchain.pem', cert_msg)
|
||||
self.assertIn('donate', get_utility().add_message.call_args[0][0])
|
||||
|
||||
@mock.patch('certbot._internal.log.logging.handlers.RotatingFileHandler.doRollover')
|
||||
@mock.patch('certbot.crypto_util.notAfter')
|
||||
|
|
@ -1141,7 +1140,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
_, get_utility, _ = self._test_renewal_common(False, ['--dry-run', '--keep'],
|
||||
log_out="simulating renewal")
|
||||
self.assertEqual(get_utility().add_message.call_count, 1)
|
||||
self.assertTrue('dry run' in get_utility().add_message.call_args[0][0])
|
||||
self.assertIn('dry run', get_utility().add_message.call_args[0][0])
|
||||
|
||||
self._test_renewal_common(False, ['--renew-by-default', '-tvv', '--debug'],
|
||||
log_out="Auto-renewal forced")
|
||||
|
|
@ -1200,8 +1199,8 @@ class MainTest(test_util.ConfigTestCase):
|
|||
expiry = datetime.datetime.now() + datetime.timedelta(days=90)
|
||||
_, _, stdout = self._test_renewal_common(False, extra_args=None, should_renew=False,
|
||||
args=['renew'], expiry_date=expiry)
|
||||
self.assertTrue('No renewals were attempted.' in stdout.getvalue())
|
||||
self.assertTrue('The following certificates are not due for renewal yet:' in stdout.getvalue())
|
||||
self.assertIn('No renewals were attempted.', stdout.getvalue())
|
||||
self.assertIn('The following certificates are not due for renewal yet:', stdout.getvalue())
|
||||
|
||||
@mock.patch('certbot._internal.log.post_arg_parse_setup')
|
||||
def test_quiet_renew(self, _):
|
||||
|
|
@ -1209,7 +1208,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
args = ["renew", "--dry-run"]
|
||||
_, _, stdout = self._test_renewal_common(True, [], args=args, should_renew=True)
|
||||
out = stdout.getvalue()
|
||||
self.assertTrue("renew" in out)
|
||||
self.assertIn("renew", out)
|
||||
|
||||
args = ["renew", "--dry-run", "-q"]
|
||||
_, _, stdout = self._test_renewal_common(True, [], args=args,
|
||||
|
|
@ -1275,7 +1274,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
if assert_oc_called:
|
||||
self.assertTrue(mock_renew_cert.called)
|
||||
else:
|
||||
self.assertFalse(mock_renew_cert.called)
|
||||
self.assertIs(mock_renew_cert.called, False)
|
||||
|
||||
def test_renew_no_renewalparams(self):
|
||||
self._test_renew_common(assert_oc_called=False, error_expected=True)
|
||||
|
|
@ -1354,7 +1353,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
args=['renew', '--post-hook',
|
||||
'{0} -c "print(\'hello world\');"'
|
||||
.format(sys.executable)])
|
||||
self.assertTrue('No hooks were run.' in stdout.getvalue())
|
||||
self.assertIn('No hooks were run.', stdout.getvalue())
|
||||
|
||||
@test_util.patch_get_utility()
|
||||
@mock.patch('certbot._internal.main._find_lineage_for_domains_and_certname')
|
||||
|
|
@ -1365,8 +1364,8 @@ class MainTest(test_util.ConfigTestCase):
|
|||
mock_renewal.return_value = ('reinstall', mock.MagicMock())
|
||||
mock_init.return_value = mock_client = mock.MagicMock()
|
||||
self._call(['-d', 'foo.bar', '-a', 'standalone', 'certonly'])
|
||||
self.assertFalse(mock_client.obtain_certificate.called)
|
||||
self.assertFalse(mock_client.obtain_and_enroll_certificate.called)
|
||||
self.assertIs(mock_client.obtain_certificate.called, False)
|
||||
self.assertIs(mock_client.obtain_and_enroll_certificate.called, False)
|
||||
self.assertEqual(mock_get_utility().add_message.call_count, 0)
|
||||
mock_report_new_cert.assert_not_called()
|
||||
#self.assertTrue('donate' not in mock_get_utility().add_message.call_args[0][0])
|
||||
|
|
@ -1398,7 +1397,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
self._call(args)
|
||||
|
||||
if '--dry-run' in args:
|
||||
self.assertFalse(mock_client.save_certificate.called)
|
||||
self.assertIs(mock_client.save_certificate.called, False)
|
||||
else:
|
||||
mock_client.save_certificate.assert_called_once_with(
|
||||
certr, chain, cert_path, chain_path, full_path)
|
||||
|
|
@ -1409,17 +1408,15 @@ class MainTest(test_util.ConfigTestCase):
|
|||
def test_certonly_csr(self, mock_subscription):
|
||||
mock_get_utility = self._test_certonly_csr_common()
|
||||
cert_msg = mock_get_utility().add_message.call_args_list[0][0][0]
|
||||
self.assertTrue('fullchain.pem' in cert_msg)
|
||||
self.assertFalse('Your key file has been saved at' in cert_msg)
|
||||
self.assertTrue(
|
||||
'donate' in mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertTrue(mock_subscription.called)
|
||||
self.assertIn('fullchain.pem', cert_msg)
|
||||
self.assertNotIn('Your key file has been saved at', cert_msg)
|
||||
self.assertIn('donate', mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertIs(mock_subscription.called, True)
|
||||
|
||||
def test_certonly_csr_dry_run(self):
|
||||
mock_get_utility = self._test_certonly_csr_common(['--dry-run'])
|
||||
self.assertEqual(mock_get_utility().add_message.call_count, 1)
|
||||
self.assertTrue(
|
||||
'dry run' in mock_get_utility().add_message.call_args[0][0])
|
||||
self.assertIn('dry run', mock_get_utility().add_message.call_args[0][0])
|
||||
|
||||
@mock.patch('certbot._internal.main._delete_if_appropriate')
|
||||
@mock.patch('certbot._internal.main.client.acme_client')
|
||||
|
|
@ -1474,7 +1471,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
mocked_account.AccountFileStorage.return_value = mocked_storage
|
||||
mocked_storage.find_all.return_value = ["an account"]
|
||||
x = self._call_no_clientmock(["register", "--email", "user@example.org"])
|
||||
self.assertTrue("There is an existing account" in x[0])
|
||||
self.assertIn("There is an existing account", x[0])
|
||||
|
||||
@mock.patch('certbot._internal.plugins.selection.choose_configurator_plugins')
|
||||
@mock.patch('certbot._internal.updater._run_updaters')
|
||||
|
|
@ -1487,7 +1484,7 @@ class MainTest(test_util.ConfigTestCase):
|
|||
updater.run_generic_updaters(self.config, None, None)
|
||||
# Make sure we're returning None, and hence not trying to run the
|
||||
# without installer
|
||||
self.assertFalse(mock_run.called)
|
||||
self.assertIs(mock_run.called, False)
|
||||
|
||||
|
||||
class UnregisterTest(unittest.TestCase):
|
||||
|
|
@ -1531,7 +1528,7 @@ class UnregisterTest(unittest.TestCase):
|
|||
|
||||
res = main.unregister(config, unused_plugins)
|
||||
|
||||
self.assertTrue(res is None)
|
||||
self.assertIsNone(res)
|
||||
mock_notify.assert_called_once_with("Account deactivated.")
|
||||
|
||||
def test_unregister_no_account(self):
|
||||
|
|
@ -1548,7 +1545,7 @@ class UnregisterTest(unittest.TestCase):
|
|||
res = main.unregister(config, unused_plugins)
|
||||
m = "Could not find existing account to deactivate."
|
||||
self.assertEqual(res, m)
|
||||
self.assertFalse(cb_client.acme.deactivate_registration.called)
|
||||
self.assertIs(cb_client.acme.deactivate_registration.called, False)
|
||||
|
||||
|
||||
class MakeOrVerifyNeededDirs(test_util.ConfigTestCase):
|
||||
|
|
@ -1612,7 +1609,7 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
self._call(['enhance', '--redirect'])
|
||||
self.assertTrue(mock_pick.called)
|
||||
# Check that the message includes "enhancements"
|
||||
self.assertTrue("enhancements" in mock_pick.call_args[0][3])
|
||||
self.assertIn("enhancements", mock_pick.call_args[0][3])
|
||||
|
||||
@mock.patch('certbot._internal.main.plug_sel.record_chosen_plugins')
|
||||
@mock.patch('certbot._internal.cert_manager.lineage_for_certname')
|
||||
|
|
@ -1626,7 +1623,7 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
with mock.patch('certbot._internal.main.plug_sel.logger.warning') as mock_log:
|
||||
mock_client = self._call(['enhance', '-a', 'webroot', '--redirect'])
|
||||
self.assertTrue(mock_log.called)
|
||||
self.assertTrue("make sense" in mock_log.call_args[0][0])
|
||||
self.assertIn("make sense", mock_log.call_args[0][0])
|
||||
self.assertTrue(mock_client.enhance_config.called)
|
||||
|
||||
@mock.patch('certbot._internal.cert_manager.lineage_for_certname')
|
||||
|
|
@ -1644,8 +1641,8 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
all(getattr(mock_client.config, e) for e in req_enh))
|
||||
self.assertFalse(
|
||||
any(getattr(mock_client.config, e) for e in not_req_enh))
|
||||
self.assertTrue(
|
||||
"example.com" in mock_client.enhance_config.call_args[0][0])
|
||||
self.assertIn(
|
||||
"example.com", mock_client.enhance_config.call_args[0][0])
|
||||
|
||||
@mock.patch('certbot._internal.cert_manager.lineage_for_certname')
|
||||
@mock.patch('certbot._internal.main.display_ops.choose_values')
|
||||
|
|
@ -1658,7 +1655,7 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
mock_client = self._call(['enhance', '--redirect',
|
||||
'--hsts', '--non-interactive'])
|
||||
self.assertTrue(mock_client.enhance_config.called)
|
||||
self.assertFalse(mock_choose.called)
|
||||
self.assertIs(mock_choose.called, False)
|
||||
|
||||
@mock.patch('certbot._internal.main.display_ops.choose_values')
|
||||
@mock.patch('certbot._internal.main.plug_sel.record_chosen_plugins')
|
||||
|
|
@ -1681,7 +1678,7 @@ class EnhanceTest(test_util.ConfigTestCase):
|
|||
mock_pick.return_value = (None, None)
|
||||
mock_pick.side_effect = errors.PluginSelectionError()
|
||||
mock_client = self._call(['enhance', '--hsts'])
|
||||
self.assertFalse(mock_client.enhance_config.called)
|
||||
self.assertIs(mock_client.enhance_config.called, False)
|
||||
|
||||
@mock.patch('certbot._internal.cert_manager.lineage_for_certname')
|
||||
@mock.patch('certbot._internal.main.display_ops.choose_values')
|
||||
|
|
|
|||
|
|
@ -68,14 +68,14 @@ class OCSPTestOpenSSL(unittest.TestCase):
|
|||
mock_communicate.communicate.return_value = (None, out.partition("\n")[2])
|
||||
checker = ocsp.RevocationChecker(enforce_openssl_binary_usage=True)
|
||||
self.assertEqual(checker.host_args("x"), ["Host", "x"])
|
||||
self.assertEqual(checker.broken, False)
|
||||
self.assertIs(checker.broken, False)
|
||||
|
||||
mock_exists.return_value = False
|
||||
mock_popen.call_count = 0
|
||||
checker = ocsp.RevocationChecker(enforce_openssl_binary_usage=True)
|
||||
self.assertEqual(mock_popen.call_count, 0)
|
||||
self.assertEqual(mock_log.call_count, 1)
|
||||
self.assertEqual(checker.broken, True)
|
||||
self.assertIs(checker.broken, True)
|
||||
|
||||
@mock.patch('certbot.ocsp._determine_ocsp_server')
|
||||
@mock.patch('certbot.ocsp.crypto_util.notAfter')
|
||||
|
|
@ -89,24 +89,24 @@ class OCSPTestOpenSSL(unittest.TestCase):
|
|||
|
||||
self.checker.broken = True
|
||||
mock_determine.return_value = ("", "")
|
||||
self.assertEqual(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertIs(self.checker.ocsp_revoked(cert_obj), False)
|
||||
|
||||
self.checker.broken = False
|
||||
mock_run.return_value = tuple(openssl_happy[1:])
|
||||
self.assertEqual(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertIs(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertEqual(mock_run.call_count, 0)
|
||||
|
||||
mock_determine.return_value = ("http://x.co", "x.co")
|
||||
self.assertEqual(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertIs(self.checker.ocsp_revoked(cert_obj), False)
|
||||
mock_run.side_effect = errors.SubprocessError("Unable to load certificate launcher")
|
||||
self.assertEqual(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertIs(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertEqual(mock_run.call_count, 2)
|
||||
|
||||
# cert expired
|
||||
mock_na.return_value = now
|
||||
mock_determine.return_value = ("", "")
|
||||
count_before = mock_determine.call_count
|
||||
self.assertEqual(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertIs(self.checker.ocsp_revoked(cert_obj), False)
|
||||
self.assertEqual(mock_determine.call_count, count_before)
|
||||
|
||||
def test_determine_ocsp_server(self):
|
||||
|
|
@ -122,22 +122,22 @@ class OCSPTestOpenSSL(unittest.TestCase):
|
|||
# pylint: disable=protected-access
|
||||
mock_run.return_value = openssl_confused
|
||||
from certbot import ocsp
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_happy), False)
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_confused), False)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_happy), False)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_confused), False)
|
||||
self.assertEqual(mock_log.debug.call_count, 1)
|
||||
self.assertEqual(mock_log.warning.call_count, 0)
|
||||
mock_log.debug.call_count = 0
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_unknown), False)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_unknown), False)
|
||||
self.assertEqual(mock_log.debug.call_count, 1)
|
||||
self.assertEqual(mock_log.warning.call_count, 0)
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_expired_ocsp), False)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_expired_ocsp), False)
|
||||
self.assertEqual(mock_log.debug.call_count, 2)
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_broken), False)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_broken), False)
|
||||
self.assertEqual(mock_log.warning.call_count, 1)
|
||||
mock_log.info.call_count = 0
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_revoked), True)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_revoked), True)
|
||||
self.assertEqual(mock_log.info.call_count, 0)
|
||||
self.assertEqual(ocsp._translate_ocsp_query(*openssl_expired_ocsp_revoked), True)
|
||||
self.assertIs(ocsp._translate_ocsp_query(*openssl_expired_ocsp_revoked), True)
|
||||
self.assertEqual(mock_log.info.call_count, 1)
|
||||
|
||||
|
||||
|
|
@ -236,17 +236,17 @@ class OSCPTestCryptography(unittest.TestCase):
|
|||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.UNKNOWN, ocsp_lib.OCSPResponseStatus.SUCCESSFUL,
|
||||
http_status_code=400):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# OCSP response in invalid
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.UNKNOWN, ocsp_lib.OCSPResponseStatus.UNAUTHORIZED):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# OCSP response is valid, but certificate status is unknown
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.UNKNOWN, ocsp_lib.OCSPResponseStatus.SUCCESSFUL):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# The OCSP response says that the certificate is revoked, but certificate
|
||||
# does not contain the OCSP extension.
|
||||
|
|
@ -255,32 +255,32 @@ class OSCPTestCryptography(unittest.TestCase):
|
|||
side_effect=x509.ExtensionNotFound(
|
||||
'Not found', x509.AuthorityInformationAccessOID.OCSP)):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# OCSP response uses an unsupported signature.
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED, ocsp_lib.OCSPResponseStatus.SUCCESSFUL,
|
||||
check_signature_side_effect=UnsupportedAlgorithm('foo')):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# OSCP signature response is invalid.
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED, ocsp_lib.OCSPResponseStatus.SUCCESSFUL,
|
||||
check_signature_side_effect=InvalidSignature('foo')):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# Assertion error on OCSP response validity
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED, ocsp_lib.OCSPResponseStatus.SUCCESSFUL,
|
||||
check_signature_side_effect=AssertionError('foo')):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# No responder cert in OCSP response
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED,
|
||||
ocsp_lib.OCSPResponseStatus.SUCCESSFUL) as mocks:
|
||||
mocks['mock_response'].return_value.certificates = []
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
# Responder cert is not signed by certificate issuer
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED,
|
||||
|
|
@ -289,7 +289,7 @@ class OSCPTestCryptography(unittest.TestCase):
|
|||
mocks['mock_response'].return_value.certificates[0] = mock.Mock(
|
||||
issuer='fake', subject=cert.subject)
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
with _ocsp_mock(ocsp_lib.OCSPCertStatus.REVOKED, ocsp_lib.OCSPResponseStatus.SUCCESSFUL):
|
||||
# This mock is necessary to avoid the first call contained in _determine_ocsp_server
|
||||
|
|
@ -300,7 +300,7 @@ class OSCPTestCryptography(unittest.TestCase):
|
|||
side_effect=x509.ExtensionNotFound(
|
||||
'Not found', x509.AuthorityInformationAccessOID.OCSP)):
|
||||
revoked = self.checker.ocsp_revoked(self.cert_obj)
|
||||
self.assertFalse(revoked)
|
||||
self.assertIs(revoked, False)
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ class InstallerTest(test_util.ConfigTestCase):
|
|||
|
||||
def test_current_file_hash_in_all_hashes(self):
|
||||
from certbot._internal.constants import ALL_SSL_DHPARAMS_HASHES
|
||||
self.assertTrue(self._current_ssl_dhparams_hash() in ALL_SSL_DHPARAMS_HASHES,
|
||||
self.assertIn(self._current_ssl_dhparams_hash(), ALL_SSL_DHPARAMS_HASHES,
|
||||
"Constants.ALL_SSL_DHPARAMS_HASHES must be appended"
|
||||
" with the sha256 hash of self.config.ssl_dhparams when it is updated.")
|
||||
|
||||
|
|
@ -330,7 +330,7 @@ class InstallVersionControlledFileTest(test_util.TempDirTestCase):
|
|||
mod_ssl_conf.write("a new line for the wrong hash\n")
|
||||
with mock.patch("certbot.plugins.common.logger") as mock_logger:
|
||||
self._call()
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
self.assertTrue(os.path.isfile(self.dest_path))
|
||||
self.assertEqual(crypto_util.sha256sum(self.source_path),
|
||||
self._current_file_hash())
|
||||
|
|
@ -352,7 +352,7 @@ class InstallVersionControlledFileTest(test_util.TempDirTestCase):
|
|||
# only print warning once
|
||||
with mock.patch("certbot.plugins.common.logger") as mock_logger:
|
||||
self._call()
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main() # pragma: no cover
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class PluginEntryPointTest(unittest.TestCase):
|
|||
name, PluginEntryPoint.entry_point_to_plugin_name(entry_point, with_prefix=True))
|
||||
|
||||
def test_description(self):
|
||||
self.assertTrue("temporary webserver" in self.plugin_ep.description)
|
||||
self.assertIn("temporary webserver", self.plugin_ep.description)
|
||||
|
||||
def test_description_with_name(self):
|
||||
self.plugin_ep.plugin_cls = mock.MagicMock(description="Desc")
|
||||
|
|
@ -101,31 +101,31 @@ class PluginEntryPointTest(unittest.TestCase):
|
|||
interfaces.IInstaller, interfaces.IAuthenticator)))
|
||||
|
||||
def test__init__(self):
|
||||
self.assertFalse(self.plugin_ep.initialized)
|
||||
self.assertFalse(self.plugin_ep.prepared)
|
||||
self.assertFalse(self.plugin_ep.misconfigured)
|
||||
self.assertFalse(self.plugin_ep.available)
|
||||
self.assertTrue(self.plugin_ep.problem is None)
|
||||
self.assertTrue(self.plugin_ep.entry_point is EP_SA)
|
||||
self.assertIs(self.plugin_ep.initialized, False)
|
||||
self.assertIs(self.plugin_ep.prepared, False)
|
||||
self.assertIs(self.plugin_ep.misconfigured, False)
|
||||
self.assertIs(self.plugin_ep.available, False)
|
||||
self.assertIsNone(self.plugin_ep.problem)
|
||||
self.assertIs(self.plugin_ep.entry_point, EP_SA)
|
||||
self.assertEqual("sa", self.plugin_ep.name)
|
||||
|
||||
self.assertTrue(self.plugin_ep.plugin_cls is standalone.Authenticator)
|
||||
self.assertIs(self.plugin_ep.plugin_cls, standalone.Authenticator)
|
||||
|
||||
def test_init(self):
|
||||
config = mock.MagicMock()
|
||||
plugin = self.plugin_ep.init(config=config)
|
||||
self.assertTrue(self.plugin_ep.initialized)
|
||||
self.assertTrue(plugin.config is config)
|
||||
self.assertIs(self.plugin_ep.initialized, True)
|
||||
self.assertIs(plugin.config, config)
|
||||
# memoize!
|
||||
self.assertTrue(self.plugin_ep.init() is plugin)
|
||||
self.assertTrue(plugin.config is config)
|
||||
self.assertIs(self.plugin_ep.init(), plugin)
|
||||
self.assertIs(plugin.config, config)
|
||||
# try to give different config
|
||||
self.assertTrue(self.plugin_ep.init(123) is plugin)
|
||||
self.assertTrue(plugin.config is config)
|
||||
self.assertIs(self.plugin_ep.init(123), plugin)
|
||||
self.assertIs(plugin.config, config)
|
||||
|
||||
self.assertFalse(self.plugin_ep.prepared)
|
||||
self.assertFalse(self.plugin_ep.misconfigured)
|
||||
self.assertFalse(self.plugin_ep.available)
|
||||
self.assertIs(self.plugin_ep.prepared, False)
|
||||
self.assertIs(self.plugin_ep.misconfigured, False)
|
||||
self.assertIs(self.plugin_ep.available, False)
|
||||
|
||||
def test_verify(self):
|
||||
iface1 = mock.MagicMock(__name__="iface1")
|
||||
|
|
@ -155,7 +155,7 @@ class PluginEntryPointTest(unittest.TestCase):
|
|||
self.plugin_ep.init(config=config)
|
||||
self.plugin_ep.prepare()
|
||||
self.assertTrue(self.plugin_ep.prepared)
|
||||
self.assertFalse(self.plugin_ep.misconfigured)
|
||||
self.assertIs(self.plugin_ep.misconfigured, False)
|
||||
|
||||
# output doesn't matter that much, just test if it runs
|
||||
str(self.plugin_ep)
|
||||
|
|
@ -165,12 +165,11 @@ class PluginEntryPointTest(unittest.TestCase):
|
|||
plugin.prepare.side_effect = errors.MisconfigurationError
|
||||
# pylint: disable=protected-access
|
||||
self.plugin_ep._initialized = plugin
|
||||
self.assertTrue(isinstance(self.plugin_ep.prepare(),
|
||||
errors.MisconfigurationError))
|
||||
self.assertIsInstance(self.plugin_ep.prepare(),
|
||||
errors.MisconfigurationError)
|
||||
self.assertTrue(self.plugin_ep.prepared)
|
||||
self.assertTrue(self.plugin_ep.misconfigured)
|
||||
self.assertTrue(isinstance(self.plugin_ep.problem,
|
||||
errors.MisconfigurationError))
|
||||
self.assertIsInstance(self.plugin_ep.problem, errors.MisconfigurationError)
|
||||
self.assertTrue(self.plugin_ep.available)
|
||||
|
||||
def test_prepare_no_installation(self):
|
||||
|
|
@ -178,21 +177,20 @@ class PluginEntryPointTest(unittest.TestCase):
|
|||
plugin.prepare.side_effect = errors.NoInstallationError
|
||||
# pylint: disable=protected-access
|
||||
self.plugin_ep._initialized = plugin
|
||||
self.assertTrue(isinstance(self.plugin_ep.prepare(),
|
||||
errors.NoInstallationError))
|
||||
self.assertTrue(self.plugin_ep.prepared)
|
||||
self.assertFalse(self.plugin_ep.misconfigured)
|
||||
self.assertFalse(self.plugin_ep.available)
|
||||
self.assertIsInstance(self.plugin_ep.prepare(), errors.NoInstallationError)
|
||||
self.assertIs(self.plugin_ep.prepared, True)
|
||||
self.assertIs(self.plugin_ep.misconfigured, False)
|
||||
self.assertIs(self.plugin_ep.available, False)
|
||||
|
||||
def test_prepare_generic_plugin_error(self):
|
||||
plugin = mock.MagicMock()
|
||||
plugin.prepare.side_effect = errors.PluginError
|
||||
# pylint: disable=protected-access
|
||||
self.plugin_ep._initialized = plugin
|
||||
self.assertTrue(isinstance(self.plugin_ep.prepare(), errors.PluginError))
|
||||
self.assertIsInstance(self.plugin_ep.prepare(), errors.PluginError)
|
||||
self.assertTrue(self.plugin_ep.prepared)
|
||||
self.assertFalse(self.plugin_ep.misconfigured)
|
||||
self.assertFalse(self.plugin_ep.available)
|
||||
self.assertIs(self.plugin_ep.misconfigured, False)
|
||||
self.assertIs(self.plugin_ep.available, False)
|
||||
|
||||
def test_repr(self):
|
||||
self.assertEqual("PluginEntryPoint#sa", repr(self.plugin_ep))
|
||||
|
|
@ -226,14 +224,14 @@ class PluginsRegistryTest(unittest.TestCase):
|
|||
standalone.Authenticator, webroot.Authenticator,
|
||||
null.Installer, null.Installer]
|
||||
plugins = PluginsRegistry.find_all()
|
||||
self.assertTrue(plugins["sa"].plugin_cls is standalone.Authenticator)
|
||||
self.assertTrue(plugins["sa"].entry_point is EP_SA)
|
||||
self.assertTrue(plugins["wr"].plugin_cls is webroot.Authenticator)
|
||||
self.assertTrue(plugins["wr"].entry_point is EP_WR)
|
||||
self.assertTrue(plugins["ep1"].plugin_cls is null.Installer)
|
||||
self.assertTrue(plugins["ep1"].entry_point is self.ep1)
|
||||
self.assertTrue(plugins["p1:ep1"].plugin_cls is null.Installer)
|
||||
self.assertTrue(plugins["p1:ep1"].entry_point is self.ep1)
|
||||
self.assertIs(plugins["sa"].plugin_cls, standalone.Authenticator)
|
||||
self.assertIs(plugins["sa"].entry_point, EP_SA)
|
||||
self.assertIs(plugins["wr"].plugin_cls, webroot.Authenticator)
|
||||
self.assertIs(plugins["wr"].entry_point, EP_WR)
|
||||
self.assertIs(plugins["ep1"].plugin_cls, null.Installer)
|
||||
self.assertIs(plugins["ep1"].entry_point, self.ep1)
|
||||
self.assertIs(plugins["p1:ep1"].plugin_cls, null.Installer)
|
||||
self.assertIs(plugins["p1:ep1"].entry_point, self.ep1)
|
||||
|
||||
def test_getitem(self):
|
||||
self.assertEqual(self.plugin_ep, self.reg["mock"])
|
||||
|
|
@ -296,10 +294,10 @@ class PluginsRegistryTest(unittest.TestCase):
|
|||
self.assertEqual({}, self.reg.available()._plugins)
|
||||
|
||||
def test_find_init(self):
|
||||
self.assertTrue(self.reg.find_init(mock.Mock()) is None)
|
||||
self.assertIsNone(self.reg.find_init(mock.Mock()))
|
||||
self.plugin_ep.initialized = True
|
||||
self.assertTrue(
|
||||
self.reg.find_init(self.plugin_ep.init()) is self.plugin_ep)
|
||||
self.assertIs(
|
||||
self.reg.find_init(self.plugin_ep.init()), self.plugin_ep)
|
||||
|
||||
def test_repr(self):
|
||||
self.plugin_ep.__repr__ = lambda _: "PluginEntryPoint#mock"
|
||||
|
|
|
|||
|
|
@ -211,20 +211,20 @@ class CredentialsConfigurationRequireTest(test_util.TempDirTestCase):
|
|||
class DomainNameGuessTest(unittest.TestCase):
|
||||
|
||||
def test_simple_case(self):
|
||||
self.assertTrue(
|
||||
'example.com' in
|
||||
self.assertIn(
|
||||
'example.com',
|
||||
dns_common.base_domain_name_guesses("example.com")
|
||||
)
|
||||
|
||||
def test_sub_domain(self):
|
||||
self.assertTrue(
|
||||
'example.com' in
|
||||
self.assertIn(
|
||||
'example.com',
|
||||
dns_common.base_domain_name_guesses("foo.bar.baz.example.com")
|
||||
)
|
||||
|
||||
def test_second_level_domain(self):
|
||||
self.assertTrue(
|
||||
'example.co.uk' in
|
||||
self.assertIn(
|
||||
'example.co.uk',
|
||||
dns_common.base_domain_name_guesses("foo.bar.baz.example.co.uk")
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class AuthenticatorTest(test_util.TempDirTestCase):
|
|||
self.assertRaises(errors.HookCommandNotFound, self.auth.prepare)
|
||||
|
||||
def test_more_info(self):
|
||||
self.assertTrue(isinstance(self.auth.more_info(), str))
|
||||
self.assertIsInstance(self.auth.more_info(), str)
|
||||
|
||||
def test_get_chall_pref(self):
|
||||
self.assertEqual(self.auth.get_chall_pref('example.org'),
|
||||
|
|
@ -96,9 +96,8 @@ class AuthenticatorTest(test_util.TempDirTestCase):
|
|||
[achall.response(achall.account_key) for achall in self.achalls])
|
||||
for i, (args, kwargs) in enumerate(mock_get_utility().notification.call_args_list):
|
||||
achall = self.achalls[i]
|
||||
self.assertTrue(
|
||||
achall.validation(achall.account_key) in args[0])
|
||||
self.assertFalse(kwargs['wrap'])
|
||||
self.assertIn(achall.validation(achall.account_key), args[0])
|
||||
self.assertIs(kwargs['wrap'], False)
|
||||
|
||||
def test_cleanup(self):
|
||||
self.config.manual_auth_hook = ('{0} -c "import sys; sys.stdout.write(\'foo\')"'
|
||||
|
|
@ -119,7 +118,7 @@ class AuthenticatorTest(test_util.TempDirTestCase):
|
|||
os.environ['CERTBOT_TOKEN'],
|
||||
achall.chall.encode('token'))
|
||||
else:
|
||||
self.assertFalse('CERTBOT_TOKEN' in os.environ)
|
||||
self.assertNotIn('CERTBOT_TOKEN', os.environ)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ class InstallerTest(unittest.TestCase):
|
|||
self.installer = Installer(config=mock.MagicMock(), name="null")
|
||||
|
||||
def test_it(self):
|
||||
self.assertTrue(isinstance(self.installer.more_info(), str))
|
||||
self.assertIsInstance(self.installer.more_info(), str)
|
||||
self.assertEqual([], self.installer.get_all_names())
|
||||
self.assertEqual([], self.installer.supported_enhancements())
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ class PickPluginTest(unittest.TestCase):
|
|||
self.assertEqual(1, self.reg.visible().ifaces.call_count)
|
||||
|
||||
def test_no_candidate(self):
|
||||
self.assertTrue(self._call() is None)
|
||||
self.assertIsNone(self._call())
|
||||
|
||||
def test_single(self):
|
||||
plugin_ep = mock.MagicMock()
|
||||
|
|
@ -88,7 +88,7 @@ class PickPluginTest(unittest.TestCase):
|
|||
|
||||
self.reg.visible().ifaces().verify().available.return_value = {
|
||||
"bar": plugin_ep}
|
||||
self.assertTrue(self._call() is None)
|
||||
self.assertIsNone(self._call())
|
||||
|
||||
def test_multiple(self):
|
||||
plugin_ep = mock.MagicMock()
|
||||
|
|
@ -111,7 +111,7 @@ class PickPluginTest(unittest.TestCase):
|
|||
|
||||
with mock.patch("certbot._internal.plugins.selection.choose_plugin") as mock_choose:
|
||||
mock_choose.return_value = None
|
||||
self.assertTrue(self._call() is None)
|
||||
self.assertIsNone(self._call())
|
||||
|
||||
|
||||
class ChoosePluginTest(unittest.TestCase):
|
||||
|
|
@ -153,7 +153,7 @@ class ChoosePluginTest(unittest.TestCase):
|
|||
@test_util.patch_get_utility("certbot._internal.plugins.selection.z_util")
|
||||
def test_no_choice(self, mock_util):
|
||||
mock_util().menu.return_value = (display_util.CANCEL, 0)
|
||||
self.assertTrue(self._call() is None)
|
||||
self.assertIsNone(self._call())
|
||||
|
||||
|
||||
class GetUnpreparedInstallerTest(test_util.ConfigTestCase):
|
||||
|
|
@ -180,7 +180,7 @@ class GetUnpreparedInstallerTest(test_util.ConfigTestCase):
|
|||
|
||||
def test_no_installer_defined(self):
|
||||
self.config.configurator = None
|
||||
self.assertEqual(self._call(), None)
|
||||
self.assertIsNone(self._call())
|
||||
|
||||
def test_no_available_installers(self):
|
||||
self.config.configurator = "apache"
|
||||
|
|
@ -190,7 +190,7 @@ class GetUnpreparedInstallerTest(test_util.ConfigTestCase):
|
|||
def test_get_plugin(self):
|
||||
self.config.configurator = "apache"
|
||||
installer = self._call()
|
||||
self.assertTrue(installer is self.mock_apache_plugin)
|
||||
self.assertIs(installer, self.mock_apache_plugin)
|
||||
|
||||
def test_multiple_installers_returned(self):
|
||||
self.config.configurator = "apache"
|
||||
|
|
|
|||
|
|
@ -29,9 +29,8 @@ class ServerManagerTest(unittest.TestCase):
|
|||
self.mgr = ServerManager(self.certs, self.http_01_resources)
|
||||
|
||||
def test_init(self):
|
||||
self.assertTrue(self.mgr.certs is self.certs)
|
||||
self.assertTrue(
|
||||
self.mgr.http_01_resources is self.http_01_resources)
|
||||
self.assertIs(self.mgr.certs, self.certs)
|
||||
self.assertIs(self.mgr.http_01_resources, self.http_01_resources)
|
||||
|
||||
def _test_run_stop(self, challenge_type):
|
||||
server = self.mgr.run(port=0, challenge_type=challenge_type)
|
||||
|
|
@ -48,7 +47,7 @@ class ServerManagerTest(unittest.TestCase):
|
|||
port = server.getsocknames()[0][1]
|
||||
server2 = self.mgr.run(port=port, challenge_type=challenges.HTTP01)
|
||||
self.assertEqual(self.mgr.running(), {port: server})
|
||||
self.assertTrue(server is server2)
|
||||
self.assertIs(server, server2)
|
||||
self.mgr.stop(port)
|
||||
self.assertEqual(self.mgr.running(), {})
|
||||
|
||||
|
|
@ -89,7 +88,7 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
self.auth.servers = mock.MagicMock()
|
||||
|
||||
def test_more_info(self):
|
||||
self.assertTrue(isinstance(self.auth.more_info(), str))
|
||||
self.assertIsInstance(self.auth.more_info(), str)
|
||||
|
||||
def test_get_chall_pref(self):
|
||||
self.assertEqual(self.auth.get_chall_pref(domain=None),
|
||||
|
|
@ -126,7 +125,7 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
|
||||
def _assert_correct_yesno_call(self, mock_yesno):
|
||||
yesno_args, yesno_kwargs = mock_yesno.call_args
|
||||
self.assertTrue("in use" in yesno_args[0])
|
||||
self.assertIn("in use", yesno_args[0])
|
||||
self.assertFalse(yesno_kwargs.get("default", True))
|
||||
|
||||
def test_perform_eacces(self):
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ class PluginStorageTest(test_util.ConfigTestCase):
|
|||
self.assertRaises(KeyError,
|
||||
nocontent.storage.fetch, "value")
|
||||
self.assertTrue(mock_log.called)
|
||||
self.assertTrue("no values loaded" in mock_log.call_args[0][0])
|
||||
self.assertIn("no values loaded", mock_log.call_args[0][0])
|
||||
|
||||
def test_load_errors_corrupted(self):
|
||||
with open(os.path.join(self.config.config_dir,
|
||||
|
|
@ -61,7 +61,7 @@ class PluginStorageTest(test_util.ConfigTestCase):
|
|||
self.assertRaises(errors.PluginError,
|
||||
corrupted.storage.fetch,
|
||||
"value")
|
||||
self.assertTrue("is corrupted" in mock_log.call_args[0][0])
|
||||
self.assertIn("is corrupted", mock_log.call_args[0][0])
|
||||
|
||||
def test_save_errors_cant_serialize(self):
|
||||
with mock.patch("certbot.plugins.storage.logger.error") as mock_log:
|
||||
|
|
@ -71,7 +71,7 @@ class PluginStorageTest(test_util.ConfigTestCase):
|
|||
self.plugin.storage._data = self.plugin_cls # pylint: disable=protected-access
|
||||
self.assertRaises(errors.PluginStorageError,
|
||||
self.plugin.storage.save)
|
||||
self.assertTrue("Could not serialize" in mock_log.call_args[0][0])
|
||||
self.assertIn("Could not serialize", mock_log.call_args[0][0])
|
||||
|
||||
def test_save_errors_unable_to_write_file(self):
|
||||
mock_open = mock.mock_open()
|
||||
|
|
@ -83,7 +83,7 @@ class PluginStorageTest(test_util.ConfigTestCase):
|
|||
self.plugin.storage._storagepath = "/tmp/whatever"
|
||||
self.assertRaises(errors.PluginStorageError,
|
||||
self.plugin.storage.save)
|
||||
self.assertTrue("Could not write" in mock_log.call_args[0][0])
|
||||
self.assertIn("Could not write", mock_log.call_args[0][0])
|
||||
|
||||
def test_save_uninitialized(self):
|
||||
with mock.patch("certbot.reverter.util"):
|
||||
|
|
@ -114,7 +114,7 @@ class PluginStorageTest(test_util.ConfigTestCase):
|
|||
".pluginstorage.json"), 'r') as fh:
|
||||
psdata = fh.read()
|
||||
psjson = json.loads(psdata)
|
||||
self.assertTrue("mockplugin" in psjson.keys())
|
||||
self.assertIn("mockplugin", psjson.keys())
|
||||
self.assertEqual(len(psjson), 1)
|
||||
self.assertEqual(psjson["mockplugin"]["testkey"], "testvalue")
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class PathSurgeryTest(unittest.TestCase):
|
|||
with mock.patch.dict('os.environ', all_path):
|
||||
with mock.patch('certbot.util.exe_exists') as mock_exists:
|
||||
mock_exists.return_value = True
|
||||
self.assertEqual(path_surgery("eg"), True)
|
||||
self.assertIs(path_surgery("eg"), True)
|
||||
self.assertEqual(mock_debug.call_count, 0)
|
||||
self.assertEqual(os.environ["PATH"], all_path["PATH"])
|
||||
if os.name != 'nt':
|
||||
|
|
@ -39,9 +39,9 @@ class PathSurgeryTest(unittest.TestCase):
|
|||
with mock.patch.dict('os.environ', no_path):
|
||||
path_surgery("thingy")
|
||||
self.assertEqual(mock_debug.call_count, 2 if os.name != 'nt' else 1)
|
||||
self.assertTrue("Failed to find" in mock_debug.call_args[0][0])
|
||||
self.assertTrue("/usr/local/bin" in os.environ["PATH"])
|
||||
self.assertTrue("/tmp" in os.environ["PATH"])
|
||||
self.assertIn("Failed to find", mock_debug.call_args[0][0])
|
||||
self.assertIn("/usr/local/bin", os.environ["PATH"])
|
||||
self.assertIn("/tmp", os.environ["PATH"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
|
|
|||
|
|
@ -58,8 +58,8 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
|
||||
def test_more_info(self):
|
||||
more_info = self.auth.more_info()
|
||||
self.assertTrue(isinstance(more_info, str))
|
||||
self.assertTrue(self.path in more_info)
|
||||
self.assertIsInstance(more_info, str)
|
||||
self.assertIn(self.path, more_info)
|
||||
|
||||
def test_add_parser_arguments(self):
|
||||
add = mock.MagicMock()
|
||||
|
|
@ -79,7 +79,7 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
self.auth.perform([self.achall])
|
||||
self.assertTrue(mock_display.menu.called)
|
||||
for call in mock_display.menu.call_args_list:
|
||||
self.assertTrue(self.achall.domain in call[0][0])
|
||||
self.assertIn(self.achall.domain, call[0][0])
|
||||
self.assertTrue(all(
|
||||
webroot in call[0][1]
|
||||
for webroot in self.config.webroot_map.values()))
|
||||
|
|
@ -96,7 +96,7 @@ class AuthenticatorTest(unittest.TestCase):
|
|||
self.assertRaises(errors.PluginError, self.auth.perform, [self.achall])
|
||||
self.assertTrue(mock_display.menu.called)
|
||||
for call in mock_display.menu.call_args_list:
|
||||
self.assertTrue(self.achall.domain in call[0][0])
|
||||
self.assertIn(self.achall.domain, call[0][0])
|
||||
self.assertTrue(all(
|
||||
webroot in call[0][1]
|
||||
for webroot in self.config.webroot_map.values()))
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ class RenewalTest(test_util.ConfigTestCase):
|
|||
renewal_candidate = renewal._reconstitute(lineage_config, rc_path)
|
||||
# This means that manual_public_ip_logging_ok was not modified in the config based on its
|
||||
# value in the renewal conf file
|
||||
self.assertTrue(isinstance(lineage_config.manual_public_ip_logging_ok, mock.MagicMock))
|
||||
self.assertIsInstance(lineage_config.manual_public_ip_logging_ok, mock.MagicMock)
|
||||
|
||||
|
||||
class RestoreRequiredConfigElementsTest(test_util.ConfigTestCase):
|
||||
|
|
@ -129,7 +129,7 @@ class RestoreRequiredConfigElementsTest(test_util.ConfigTestCase):
|
|||
def test_allow_subset_of_names_success(self, mock_set_by_cli):
|
||||
mock_set_by_cli.return_value = False
|
||||
self._call(self.config, {'allow_subset_of_names': 'True'})
|
||||
self.assertTrue(self.config.allow_subset_of_names is True)
|
||||
self.assertIs(self.config.allow_subset_of_names, True)
|
||||
|
||||
@mock.patch('certbot._internal.renewal.cli.set_by_cli')
|
||||
def test_allow_subset_of_names_failure(self, mock_set_by_cli):
|
||||
|
|
@ -164,7 +164,7 @@ class RestoreRequiredConfigElementsTest(test_util.ConfigTestCase):
|
|||
def test_must_staple_success(self, mock_set_by_cli):
|
||||
mock_set_by_cli.return_value = False
|
||||
self._call(self.config, {'must_staple': 'True'})
|
||||
self.assertTrue(self.config.must_staple is True)
|
||||
self.assertIs(self.config.must_staple, True)
|
||||
|
||||
@mock.patch('certbot._internal.renewal.cli.set_by_cli')
|
||||
def test_must_staple_failure(self, mock_set_by_cli):
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ class RenewUpdaterTest(test_util.ConfigTestCase):
|
|||
mock_generic_updater.generic_updates.reset_mock()
|
||||
updater.run_generic_updaters(self.config, mock.MagicMock(), None)
|
||||
self.assertEqual(mock_generic_updater.generic_updates.call_count, 1)
|
||||
self.assertFalse(mock_generic_updater.restart.called)
|
||||
self.assertIs(mock_generic_updater.restart.called, False)
|
||||
|
||||
def test_renew_deployer(self):
|
||||
lineage = mock.MagicMock()
|
||||
|
|
@ -83,13 +83,13 @@ class RenewUpdaterTest(test_util.ConfigTestCase):
|
|||
self.config.disable_renew_updates = True
|
||||
mock_geti.return_value = self.mockinstaller
|
||||
updater.run_generic_updaters(self.config, mock.MagicMock(), None)
|
||||
self.assertFalse(self.mockinstaller.update_autohsts.called)
|
||||
self.assertIs(self.mockinstaller.update_autohsts.called, False)
|
||||
|
||||
def test_enhancement_deployer_not_called(self):
|
||||
self.config.disable_renew_updates = True
|
||||
updater.run_renewal_deployer(self.config, mock.MagicMock(),
|
||||
self.mockinstaller)
|
||||
self.assertFalse(self.mockinstaller.deploy_autohsts.called)
|
||||
self.assertIs(self.mockinstaller.deploy_autohsts.called, False)
|
||||
|
||||
@mock.patch('certbot._internal.plugins.selection.get_unprepared_installer')
|
||||
def test_enhancement_no_updater(self, mock_geti):
|
||||
|
|
@ -105,7 +105,7 @@ class RenewUpdaterTest(test_util.ConfigTestCase):
|
|||
mock_geti.return_value = self.mockinstaller
|
||||
with mock.patch("certbot.plugins.enhancements._INDEX", FAKEINDEX):
|
||||
updater.run_generic_updaters(self.config, mock.MagicMock(), None)
|
||||
self.assertFalse(self.mockinstaller.update_autohsts.called)
|
||||
self.assertIs(self.mockinstaller.update_autohsts.called, False)
|
||||
|
||||
def test_enhancement_no_deployer(self):
|
||||
FAKEINDEX = [
|
||||
|
|
@ -120,7 +120,7 @@ class RenewUpdaterTest(test_util.ConfigTestCase):
|
|||
with mock.patch("certbot.plugins.enhancements._INDEX", FAKEINDEX):
|
||||
updater.run_renewal_deployer(self.config, mock.MagicMock(),
|
||||
self.mockinstaller)
|
||||
self.assertFalse(self.mockinstaller.deploy_autohsts.called)
|
||||
self.assertIs(self.mockinstaller.deploy_autohsts.called, False)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ class ReporterTest(unittest.TestCase):
|
|||
self.reporter.add_message("Line 1\nLine 2", self.reporter.LOW_PRIORITY)
|
||||
self.reporter.print_messages()
|
||||
output = sys.stdout.getvalue() # type: ignore
|
||||
self.assertTrue("Line 1\n" in output)
|
||||
self.assertTrue("Line 2" in output)
|
||||
self.assertIn("Line 1\n", output)
|
||||
self.assertIn("Line 2", output)
|
||||
|
||||
def test_tty_print_empty(self):
|
||||
sys.stdout.isatty = lambda: True # type: ignore
|
||||
|
|
@ -60,10 +60,10 @@ class ReporterTest(unittest.TestCase):
|
|||
self._add_messages()
|
||||
self.reporter.print_messages()
|
||||
output = sys.stdout.getvalue() # type: ignore
|
||||
self.assertTrue("IMPORTANT NOTES:" in output)
|
||||
self.assertTrue("High" in output)
|
||||
self.assertTrue("Med" in output)
|
||||
self.assertTrue("Low" in output)
|
||||
self.assertIn("IMPORTANT NOTES:", output)
|
||||
self.assertIn("High", output)
|
||||
self.assertIn("Med", output)
|
||||
self.assertIn("Low", output)
|
||||
|
||||
def _unsuccessful_exit_common(self):
|
||||
self._add_messages()
|
||||
|
|
@ -72,10 +72,10 @@ class ReporterTest(unittest.TestCase):
|
|||
except ValueError:
|
||||
self.reporter.print_messages()
|
||||
output = sys.stdout.getvalue() # type: ignore
|
||||
self.assertTrue("IMPORTANT NOTES:" in output)
|
||||
self.assertTrue("High" in output)
|
||||
self.assertTrue("Med" not in output)
|
||||
self.assertTrue("Low" not in output)
|
||||
self.assertIn("IMPORTANT NOTES:", output)
|
||||
self.assertIn("High", output)
|
||||
self.assertNotIn("Med", output)
|
||||
self.assertNotIn("Low", output)
|
||||
|
||||
def _add_messages(self):
|
||||
self.reporter.add_message("High", self.reporter.HIGH_PRIORITY)
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class ReverterCheckpointLocalTest(test_util.ConfigTestCase):
|
|||
no_change = os.path.join(self.reverter.config.backup_dir, path, "CHANGES_SINCE")
|
||||
with open(no_change, "r") as f:
|
||||
x = f.read()
|
||||
self.assertTrue("No changes" in x)
|
||||
self.assertIn("No changes", x)
|
||||
|
||||
def test_basic_add_to_temp_checkpoint(self):
|
||||
# These shouldn't conflict even though they are both named config.txt
|
||||
|
|
@ -328,8 +328,8 @@ class TestFullCheckpointsReverter(test_util.ConfigTestCase):
|
|||
# One dir left... check title
|
||||
all_dirs = os.listdir(self.config.backup_dir)
|
||||
self.assertEqual(len(all_dirs), 1)
|
||||
self.assertTrue(
|
||||
"First Checkpoint" in get_save_notes(
|
||||
self.assertIn(
|
||||
"First Checkpoint", get_save_notes(
|
||||
os.path.join(self.config.backup_dir, all_dirs[0])))
|
||||
# Final rollback
|
||||
self.reverter.rollback_checkpoints(1)
|
||||
|
|
|
|||
|
|
@ -195,11 +195,11 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
from certbot._internal import storage
|
||||
|
||||
self._write_out_ex_kinds()
|
||||
self.assertTrue("version" not in self.config_file)
|
||||
self.assertNotIn("version", self.config_file)
|
||||
|
||||
with mock.patch("certbot._internal.storage.logger") as mock_logger:
|
||||
storage.RenewableCert(self.config_file.filename, self.config)
|
||||
self.assertFalse(mock_logger.warning.called)
|
||||
self.assertIs(mock_logger.warning.called, False)
|
||||
|
||||
def test_renewal_newer_version(self):
|
||||
from certbot._internal import storage
|
||||
|
|
@ -211,7 +211,7 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
with mock.patch("certbot._internal.storage.logger") as mock_logger:
|
||||
storage.RenewableCert(self.config_file.filename, self.config)
|
||||
self.assertTrue(mock_logger.info.called)
|
||||
self.assertTrue("version" in mock_logger.info.call_args[0][0])
|
||||
self.assertIn("version", mock_logger.info.call_args[0][0])
|
||||
|
||||
def test_consistent(self):
|
||||
# pylint: disable=protected-access
|
||||
|
|
@ -282,7 +282,7 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
self.assertEqual(self.test_rc.current_version("cert"), 10)
|
||||
|
||||
def test_no_current_version(self):
|
||||
self.assertEqual(self.test_rc.current_version("cert"), None)
|
||||
self.assertIsNone(self.test_rc.current_version("cert"))
|
||||
|
||||
def test_latest_and_next_versions(self):
|
||||
for ver in range(1, 6):
|
||||
|
|
@ -314,12 +314,12 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
self.test_rc.latest_common_version = mock.Mock()
|
||||
|
||||
mock_has_pending.return_value = False
|
||||
self.assertEqual(self.test_rc.ensure_deployed(), True)
|
||||
self.assertIs(self.test_rc.ensure_deployed(), True)
|
||||
self.assertEqual(mock_update.call_count, 0)
|
||||
self.assertEqual(mock_logger.warning.call_count, 0)
|
||||
|
||||
mock_has_pending.return_value = True
|
||||
self.assertEqual(self.test_rc.ensure_deployed(), False)
|
||||
self.assertIs(self.test_rc.ensure_deployed(), False)
|
||||
self.assertEqual(mock_update.call_count, 1)
|
||||
self.assertEqual(mock_logger.warning.call_count, 1)
|
||||
|
||||
|
|
@ -586,7 +586,7 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
self._write_out_kind(kind, 1)
|
||||
self.test_rc.update_all_links_to(1)
|
||||
self.test_rc.save_successor(1, b"newcert", None, b"new chain", self.config)
|
||||
self.assertFalse(mock_ownership.called)
|
||||
self.assertIs(mock_ownership.called, False)
|
||||
self.test_rc.save_successor(2, b"newcert", b"new_privkey", b"new chain", self.config)
|
||||
self.assertTrue(mock_ownership.called)
|
||||
|
||||
|
|
@ -767,7 +767,7 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
|
||||
def test_server(self):
|
||||
self.test_rc.configuration["renewalparams"] = {}
|
||||
self.assertEqual(self.test_rc.server, None)
|
||||
self.assertIsNone(self.test_rc.server)
|
||||
rp = self.test_rc.configuration["renewalparams"]
|
||||
rp["server"] = "https://acme.example/dir"
|
||||
self.assertEqual(self.test_rc.server, "https://acme.example/dir")
|
||||
|
|
@ -775,15 +775,15 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
def test_is_test_cert(self):
|
||||
self.test_rc.configuration["renewalparams"] = {}
|
||||
rp = self.test_rc.configuration["renewalparams"]
|
||||
self.assertEqual(self.test_rc.is_test_cert, False)
|
||||
self.assertIs(self.test_rc.is_test_cert, False)
|
||||
rp["server"] = "https://acme-staging-v02.api.letsencrypt.org/directory"
|
||||
self.assertEqual(self.test_rc.is_test_cert, True)
|
||||
self.assertIs(self.test_rc.is_test_cert, True)
|
||||
rp["server"] = "https://staging.someotherca.com/directory"
|
||||
self.assertEqual(self.test_rc.is_test_cert, True)
|
||||
self.assertIs(self.test_rc.is_test_cert, True)
|
||||
rp["server"] = "https://acme-v01.api.letsencrypt.org/directory"
|
||||
self.assertEqual(self.test_rc.is_test_cert, False)
|
||||
self.assertIs(self.test_rc.is_test_cert, False)
|
||||
rp["server"] = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
self.assertEqual(self.test_rc.is_test_cert, False)
|
||||
self.assertIs(self.test_rc.is_test_cert, False)
|
||||
|
||||
def test_missing_cert(self):
|
||||
from certbot._internal import storage
|
||||
|
|
@ -817,13 +817,13 @@ class RenewableCertTests(BaseRenewableCertTest):
|
|||
with open(temp2, "r") as f:
|
||||
content = f.read()
|
||||
# useful value was updated
|
||||
self.assertTrue("useful = new_value" in content)
|
||||
self.assertIn("useful = new_value", content)
|
||||
# associated comment was preserved
|
||||
self.assertTrue("A useful value" in content)
|
||||
self.assertIn("A useful value", content)
|
||||
# useless value was deleted
|
||||
self.assertTrue("useless" not in content)
|
||||
self.assertNotIn("useless", content)
|
||||
# check version was stored
|
||||
self.assertTrue("version = {0}".format(certbot.__version__) in content)
|
||||
self.assertIn("version = {0}".format(certbot.__version__), content)
|
||||
# ensure permissions are copied
|
||||
self.assertEqual(stat.S_IMODE(os.lstat(temp).st_mode),
|
||||
stat.S_IMODE(os.lstat(temp2).st_mode))
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ class UniqueLineageNameTest(test_util.TempDirTestCase):
|
|||
|
||||
def test_basic(self):
|
||||
f, path = self._call("wow")
|
||||
self.assertTrue(isinstance(f, file_type))
|
||||
self.assertIsInstance(f, file_type)
|
||||
self.assertEqual(os.path.join(self.tempdir, "wow.conf"), path)
|
||||
f.close()
|
||||
|
||||
|
|
@ -269,9 +269,9 @@ class UniqueLineageNameTest(test_util.TempDirTestCase):
|
|||
for _ in range(10):
|
||||
items.append(self._call("wow"))
|
||||
f, name = items[-1]
|
||||
self.assertTrue(isinstance(f, file_type))
|
||||
self.assertTrue(isinstance(name, str))
|
||||
self.assertTrue("wow-0009.conf" in name)
|
||||
self.assertIsInstance(f, file_type)
|
||||
self.assertIsInstance(name, str)
|
||||
self.assertIn("wow-0009.conf", name)
|
||||
for f, _ in items:
|
||||
f.close()
|
||||
|
||||
|
|
@ -349,7 +349,7 @@ class AddDeprecatedArgumentTest(unittest.TestCase):
|
|||
with mock.patch("certbot.util.logger.warning") as mock_warn:
|
||||
self.parser.parse_args(["--old-option"])
|
||||
self.assertEqual(mock_warn.call_count, 1)
|
||||
self.assertTrue("is deprecated" in mock_warn.call_args[0][0])
|
||||
self.assertIn("is deprecated", mock_warn.call_args[0][0])
|
||||
self.assertEqual("--old-option", mock_warn.call_args[0][1])
|
||||
|
||||
def test_warning_with_arg(self):
|
||||
|
|
@ -357,7 +357,7 @@ class AddDeprecatedArgumentTest(unittest.TestCase):
|
|||
with mock.patch("certbot.util.logger.warning") as mock_warn:
|
||||
self.parser.parse_args(["--old-option", "42"])
|
||||
self.assertEqual(mock_warn.call_count, 1)
|
||||
self.assertTrue("is deprecated" in mock_warn.call_args[0][0])
|
||||
self.assertIn("is deprecated", mock_warn.call_args[0][0])
|
||||
self.assertEqual("--old-option", mock_warn.call_args[0][1])
|
||||
|
||||
def test_help(self):
|
||||
|
|
@ -368,7 +368,7 @@ class AddDeprecatedArgumentTest(unittest.TestCase):
|
|||
self.parser.parse_args(["-h"])
|
||||
except SystemExit:
|
||||
pass
|
||||
self.assertTrue("--old-option" not in stdout.getvalue())
|
||||
self.assertNotIn("--old-option", stdout.getvalue())
|
||||
|
||||
def test_set_constant(self):
|
||||
"""Test when ACTION_TYPES_THAT_DONT_NEED_A_VALUE is a set.
|
||||
|
|
@ -519,7 +519,7 @@ class OsInfoTest(unittest.TestCase):
|
|||
m_distro.like.return_value = "first debian third"
|
||||
id_likes = cbutil.get_systemd_os_like()
|
||||
self.assertEqual(len(id_likes), 3)
|
||||
self.assertTrue("debian" in id_likes)
|
||||
self.assertIn("debian", id_likes)
|
||||
|
||||
@mock.patch("certbot.util.distro")
|
||||
@unittest.skipUnless(sys.platform.startswith("linux"), "requires Linux")
|
||||
|
|
@ -610,7 +610,7 @@ class AtexitRegisterTest(unittest.TestCase):
|
|||
|
||||
def test_not_called(self):
|
||||
self._test_common(initial_pid=-1)
|
||||
self.assertFalse(self.func.called)
|
||||
self.assertIs(self.func.called, False)
|
||||
|
||||
def _test_common(self, initial_pid):
|
||||
with mock.patch('certbot.util._INITIAL_PID', initial_pid):
|
||||
|
|
|
|||
Loading…
Reference in a new issue