sources/saml: fix MetadataProcessor not working, add unittests
This commit is contained in:
parent
a943d060d2
commit
47ca566d06
|
@ -82,10 +82,10 @@ class MetadataProcessor:
|
||||||
sp_sso_descriptor.append(name_id_format)
|
sp_sso_descriptor.append(name_id_format)
|
||||||
|
|
||||||
assertion_consumer_service = SubElement(
|
assertion_consumer_service = SubElement(
|
||||||
sp_sso_descriptor, f"{{{NS_SAML_METADATA}}}"
|
sp_sso_descriptor, f"{{{NS_SAML_METADATA}}}AssertionConsumerService"
|
||||||
)
|
)
|
||||||
assertion_consumer_service.attrib["isDefault"] = True
|
assertion_consumer_service.attrib["isDefault"] = "true"
|
||||||
assertion_consumer_service.attrib["index"] = 0
|
assertion_consumer_service.attrib["index"] = "0"
|
||||||
assertion_consumer_service.attrib["Binding"] = SAML_BINDING_POST
|
assertion_consumer_service.attrib["Binding"] = SAML_BINDING_POST
|
||||||
assertion_consumer_service.attrib["Location"] = self.source.build_full_url(
|
assertion_consumer_service.attrib["Location"] = self.source.build_full_url(
|
||||||
self.http_request
|
self.http_request
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
"""SAML Source tests"""
|
||||||
|
from defusedxml import ElementTree
|
||||||
|
from django.test import RequestFactory, TestCase
|
||||||
|
|
||||||
|
from passbook.crypto.models import CertificateKeyPair
|
||||||
|
from passbook.sources.saml.models import SAMLSource
|
||||||
|
from passbook.sources.saml.processors.metadata import MetadataProcessor
|
||||||
|
|
||||||
|
|
||||||
|
class TestMetadataProcessor(TestCase):
|
||||||
|
"""Test MetadataProcessor"""
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.source = SAMLSource.objects.create(
|
||||||
|
slug="provider",
|
||||||
|
issuer="passbook",
|
||||||
|
signing_kp=CertificateKeyPair.objects.first(),
|
||||||
|
)
|
||||||
|
self.factory = RequestFactory()
|
||||||
|
|
||||||
|
def test_metadata(self):
|
||||||
|
"""Test Metadata generation being valid"""
|
||||||
|
request = self.factory.get("/")
|
||||||
|
xml = MetadataProcessor(self.source, request).build_entity_descriptor()
|
||||||
|
metadata = ElementTree.fromstring(xml)
|
||||||
|
self.assertEqual(metadata.attrib["entityID"], "passbook")
|
Reference in New Issue