From 11ba673ab4a91eff073611521c914dd80711979e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com>
Date: Wed, 11 Nov 2020 02:31:00 +0100
Subject: [PATCH] software/erp5/test: check that cert and key can be passed as
 instance parameter

Since we don't use caucase yet, it's necessary to make sure this feature is
not lost.
---
 software/erp5/test/test/test_balancer.py | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/software/erp5/test/test/test_balancer.py b/software/erp5/test/test/test_balancer.py
index d189c8fb4..99721fd47 100644
--- a/software/erp5/test/test/test_balancer.py
+++ b/software/erp5/test/test/test_balancer.py
@@ -606,6 +606,30 @@ class TestFrontendXForwardedFor(BalancerTestCase):
       )
 
 
+class TestServerTLSProvidedCertificate(BalancerTestCase):
+  """Check that certificate and key can be provided as instance parameters.
+  """
+  __partition_reference__ = 's'
+
+  @classmethod
+  def _getInstanceParameterDict(cls):
+    # type: () -> Dict
+    server_caucase = cls.getManagedResource('server_caucase', CaucaseService)
+    server_certificate = cls.getManagedResource('server_certificate', CaucaseCertificate)
+    server_certificate.request(cls._ipv4_address.decode(), server_caucase)
+    parameter_dict = super(TestServerTLSProvidedCertificate, cls)._getInstanceParameterDict()
+    with open(server_certificate.cert_file) as f:
+      parameter_dict['ssl']['cert'] = f.read()
+    with open(server_certificate.key_file) as f:
+      parameter_dict['ssl']['key'] = f.read()
+    return parameter_dict
+
+  def test_certificate_validates_with_provided_ca(self):
+    # type: () -> None
+    server_certificate = self.getManagedResource("server_certificate", CaucaseCertificate)
+    requests.get(self.default_balancer_url, verify=server_certificate.ca_crt_file)
+
+
 class TestClientTLS(BalancerTestCase):
   __partition_reference__ = 'c'
 
-- 
2.30.9