Merge PR #2432 into 15.0

Signed-off-by pedrobaeza
pull/2435/head
OCA-git-bot 2022-10-19 16:37:02 +00:00
commit 937d7a4ea9
1 changed files with 52 additions and 52 deletions

View File

@ -27,13 +27,13 @@ class TestLetsencrypt(SingleTransactionCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
self.env["ir.config_parameter"].set_param( self.env["ir.config_parameter"].set_param(
"web.base.url", "http://www.example.com" "web.base.url", "http://www.example.ltd"
) )
self.env["res.config.settings"].create( self.env["res.config.settings"].create(
{ {
"letsencrypt_dns_provider": "shell", "letsencrypt_dns_provider": "shell",
"letsencrypt_dns_shell_script": "touch /tmp/.letsencrypt_test", "letsencrypt_dns_shell_script": "touch /tmp/.letsencrypt_test",
"letsencrypt_altnames": "www.example.com,*.example.com", "letsencrypt_altnames": "www.example.ltd,*.example.ltd",
"letsencrypt_reload_command": "echo reloaded", "letsencrypt_reload_command": "echo reloaded",
} }
).set_values() ).set_values()
@ -46,7 +46,7 @@ class TestLetsencrypt(SingleTransactionCase):
"touch /tmp/.letsencrypt_test", "touch /tmp/.letsencrypt_test",
) )
self.assertEqual( self.assertEqual(
setting_vals["letsencrypt_altnames"], "www.example.com,*.example.com" setting_vals["letsencrypt_altnames"], "www.example.ltd,*.example.ltd"
) )
self.assertEqual(setting_vals["letsencrypt_reload_command"], "echo reloaded") self.assertEqual(setting_vals["letsencrypt_reload_command"], "echo reloaded")
self.assertTrue(setting_vals["letsencrypt_needs_dns_provider"]) self.assertTrue(setting_vals["letsencrypt_needs_dns_provider"])
@ -68,7 +68,7 @@ class TestLetsencrypt(SingleTransactionCase):
poll.assert_called() poll.assert_called()
self.assertTrue(os.listdir(_get_challenge_dir())) self.assertTrue(os.listdir(_get_challenge_dir()))
self.assertFalse(path.isfile("/tmp/.letsencrypt_test")) self.assertFalse(path.isfile("/tmp/.letsencrypt_test"))
self.assertTrue(path.isfile(path.join(_get_data_dir(), "www.example.com.crt"))) self.assertTrue(path.isfile(path.join(_get_data_dir(), "www.example.ltd.crt")))
# pylint: disable=unused-argument # pylint: disable=unused-argument
@mock.patch("odoo.addons.letsencrypt.models.letsencrypt.DNSUpdate") @mock.patch("odoo.addons.letsencrypt.models.letsencrypt.DNSUpdate")
@ -96,7 +96,7 @@ class TestLetsencrypt(SingleTransactionCase):
def query_effect(domain, rectype): def query_effect(domain, rectype):
nonlocal ncalls nonlocal ncalls
self.assertEqual(domain, "_acme-challenge.example.com.") self.assertEqual(domain, "_acme-challenge.example.ltd.")
self.assertEqual(rectype, "TXT") self.assertEqual(rectype, "TXT")
ncalls += 1 ncalls += 1
if ncalls == 1: if ncalls == 1:
@ -115,12 +115,12 @@ class TestLetsencrypt(SingleTransactionCase):
poll.assert_called() poll.assert_called()
self.assertEqual(ncalls, 3) self.assertEqual(ncalls, 3)
self.assertTrue(path.isfile("/tmp/.letsencrypt_test")) self.assertTrue(path.isfile("/tmp/.letsencrypt_test"))
self.assertTrue(path.isfile(path.join(_get_data_dir(), "www.example.com.crt"))) self.assertTrue(path.isfile(path.join(_get_data_dir(), "www.example.ltd.crt")))
def test_dns_challenge_error_on_missing_provider(self): def test_dns_challenge_error_on_missing_provider(self):
self.env["res.config.settings"].create( self.env["res.config.settings"].create(
{ {
"letsencrypt_altnames": "*.example.com", "letsencrypt_altnames": "*.example.ltd",
"letsencrypt_dns_provider": False, "letsencrypt_dns_provider": False,
} }
).set_values() ).set_values()
@ -129,7 +129,7 @@ class TestLetsencrypt(SingleTransactionCase):
def test_prefer_dns_setting(self): def test_prefer_dns_setting(self):
self.env["res.config.settings"].create( self.env["res.config.settings"].create(
{"letsencrypt_altnames": "example.com", "letsencrypt_prefer_dns": True} {"letsencrypt_altnames": "example.ltd", "letsencrypt_prefer_dns": True}
).set_values() ).set_values()
# pylint: disable=no-value-for-parameter # pylint: disable=no-value-for-parameter
self.test_dns_challenge() self.test_dns_challenge()
@ -139,64 +139,64 @@ class TestLetsencrypt(SingleTransactionCase):
self.assertEqual( self.assertEqual(
cascade( cascade(
[ [
"www.example.com", "www.example.ltd",
"*.example.com", "*.example.ltd",
"example.com", "example.ltd",
"example.com", "example.ltd",
"notexample.com", "notexample.ltd",
"multi.sub.example.com", "multi.sub.example.ltd",
"www2.example.com", "www2.example.ltd",
"unrelated.com", "unrelated.com",
] ]
), ),
[ [
"*.example.com", "*.example.ltd",
"example.com", "example.ltd",
"multi.sub.example.com", "multi.sub.example.ltd",
"notexample.com", "notexample.ltd",
"unrelated.com", "unrelated.com",
], ],
) )
self.assertEqual(cascade([]), []) self.assertEqual(cascade([]), [])
self.assertEqual(cascade(["*.example.com"]), ["*.example.com"]) self.assertEqual(cascade(["*.example.ltd"]), ["*.example.ltd"])
self.assertEqual(cascade(["www.example.com"]), ["www.example.com"]) self.assertEqual(cascade(["www.example.ltd"]), ["www.example.ltd"])
self.assertEqual( self.assertEqual(
cascade(["www.example.com", "example.com"]), cascade(["www.example.ltd", "example.ltd"]),
["example.com", "www.example.com"], ["example.ltd", "www.example.ltd"],
) )
with self.assertRaises(UserError): with self.assertRaises(UserError):
cascade(["www.*.example.com"]) cascade(["www.*.example.ltd"])
with self.assertRaises(UserError): with self.assertRaises(UserError):
cascade(["*.*.example.com"]) cascade(["*.*.example.ltd"])
def test_altnames_parsing(self): def test_altnames_parsing(self):
config = self.env["ir.config_parameter"] config = self.env["ir.config_parameter"]
letsencrypt = self.env["letsencrypt"] letsencrypt = self.env["letsencrypt"]
self.assertEqual( self.assertEqual(
letsencrypt._get_altnames(), ["www.example.com", "*.example.com"] letsencrypt._get_altnames(), ["www.example.ltd", "*.example.ltd"]
) )
config.set_param("letsencrypt.altnames", "") config.set_param("letsencrypt.altnames", "")
self.assertEqual(letsencrypt._get_altnames(), ["www.example.com"]) self.assertEqual(letsencrypt._get_altnames(), ["www.example.ltd"])
config.set_param("letsencrypt.altnames", "foobar.example.com") config.set_param("letsencrypt.altnames", "foobar.example.ltd")
self.assertEqual(letsencrypt._get_altnames(), ["foobar.example.com"]) self.assertEqual(letsencrypt._get_altnames(), ["foobar.example.ltd"])
config.set_param("letsencrypt.altnames", "example.com,example.org,example.net") config.set_param("letsencrypt.altnames", "example.ltd,example.org,example.net")
self.assertEqual( self.assertEqual(
letsencrypt._get_altnames(), letsencrypt._get_altnames(),
["example.com", "example.org", "example.net"], ["example.ltd", "example.org", "example.net"],
) )
config.set_param( config.set_param(
"letsencrypt.altnames", "example.com, example.org\nexample.net" "letsencrypt.altnames", "example.ltd, example.org\nexample.net"
) )
self.assertEqual( self.assertEqual(
letsencrypt._get_altnames(), letsencrypt._get_altnames(),
["example.com", "example.org", "example.net"], ["example.ltd", "example.org", "example.net"],
) )
def test_key_generation_and_retrieval(self): def test_key_generation_and_retrieval(self):
@ -223,8 +223,8 @@ class TestLetsencrypt(SingleTransactionCase):
generate_key.assert_called() generate_key.assert_called()
def test_domain_validation(self): def test_domain_validation(self):
self.env["letsencrypt"]._validate_domain("example.com") self.env["letsencrypt"]._validate_domain("example.ltd")
self.env["letsencrypt"]._validate_domain("www.example.com") self.env["letsencrypt"]._validate_domain("www.example.ltd")
with self.assertRaises(UserError): with self.assertRaises(UserError):
self.env["letsencrypt"]._validate_domain("1.1.1.1") self.env["letsencrypt"]._validate_domain("1.1.1.1")
@ -241,8 +241,8 @@ class TestLetsencrypt(SingleTransactionCase):
self.install_certificate(60) self.install_certificate(60)
self.assertFalse( self.assertFalse(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com", "*.example.com"], ["www.example.ltd", "*.example.ltd"],
) )
) )
@ -250,8 +250,8 @@ class TestLetsencrypt(SingleTransactionCase):
self.install_certificate(20) self.install_certificate(20)
self.assertTrue( self.assertTrue(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com", "*.example.com"], ["www.example.ltd", "*.example.ltd"],
) )
) )
@ -259,31 +259,31 @@ class TestLetsencrypt(SingleTransactionCase):
self.install_certificate(-10) self.install_certificate(-10)
self.assertTrue( self.assertTrue(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com", "*.example.com"], ["www.example.ltd", "*.example.ltd"],
) )
) )
def test_missing_certificate(self): def test_missing_certificate(self):
self.assertTrue( self.assertTrue(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com", "*.example.com"], ["www.example.ltd", "*.example.ltd"],
) )
) )
def test_new_altnames(self): def test_new_altnames(self):
self.install_certificate(60, "www.example.com", ()) self.install_certificate(60, "www.example.ltd", ())
self.assertTrue( self.assertTrue(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com", "*.example.com"], ["www.example.ltd", "*.example.ltd"],
) )
) )
self.assertFalse( self.assertFalse(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com"], ["www.example.ltd"],
) )
) )
@ -291,16 +291,16 @@ class TestLetsencrypt(SingleTransactionCase):
self.install_certificate(60, use_altnames=False) self.install_certificate(60, use_altnames=False)
self.assertFalse( self.assertFalse(
self.env["letsencrypt"]._should_run( self.env["letsencrypt"]._should_run(
path.join(_get_data_dir(), "www.example.com.crt"), path.join(_get_data_dir(), "www.example.ltd.crt"),
["www.example.com"], ["www.example.ltd"],
) )
) )
def install_certificate( def install_certificate(
self, self,
days_left, days_left,
common_name="www.example.com", common_name="www.example.ltd",
altnames=("*.example.com",), altnames=("*.example.ltd",),
use_altnames=True, use_altnames=True,
): ):
from cryptography import x509 from cryptography import x509