Skip the SAML tests if xmlsec1 isn't available. (#8905)
This commit is contained in:
parent
43bf3c5178
commit
6ff34e00d9
|
@ -0,0 +1 @@
|
|||
Skip the SAML tests if the requirements (`pysaml2` and `xmlsec1`) aren't available.
|
|
@ -19,6 +19,24 @@ from synapse.handlers.sso import MappingException
|
|||
|
||||
from tests.unittest import HomeserverTestCase, override_config
|
||||
|
||||
# Check if we have the dependencies to run the tests.
|
||||
try:
|
||||
import saml2.config
|
||||
from saml2.sigver import SigverError
|
||||
|
||||
has_saml2 = True
|
||||
|
||||
# pysaml2 can be installed and imported, but might not be able to find xmlsec1.
|
||||
config = saml2.config.SPConfig()
|
||||
try:
|
||||
config.load({"metadata": {}})
|
||||
has_xmlsec1 = True
|
||||
except SigverError:
|
||||
has_xmlsec1 = False
|
||||
except ImportError:
|
||||
has_saml2 = False
|
||||
has_xmlsec1 = False
|
||||
|
||||
# These are a few constants that are used as config parameters in the tests.
|
||||
BASE_URL = "https://synapse/"
|
||||
|
||||
|
@ -86,6 +104,11 @@ class SamlHandlerTestCase(HomeserverTestCase):
|
|||
|
||||
return hs
|
||||
|
||||
if not has_saml2:
|
||||
skip = "Requires pysaml2"
|
||||
elif not has_xmlsec1:
|
||||
skip = "Requires xmlsec1"
|
||||
|
||||
def test_map_saml_response_to_user(self):
|
||||
"""Ensure that mapping the SAML response returned from a provider to an MXID works properly."""
|
||||
saml_response = FakeAuthnResponse({"uid": "test_user", "username": "test_user"})
|
||||
|
|
Loading…
Reference in New Issue