From 65af4be7a2002cb427170adc245d936c65feaa4e Mon Sep 17 00:00:00 2001 From: Alex Bublichenko Date: Fri, 24 May 2019 11:14:00 -0700 Subject: Clean up and fix tests for python 3.* versions --- tests/test_02_saml.py | 27 +++++++++++++------------- tests/test_93_hok.py | 54 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 46 insertions(+), 35 deletions(-) diff --git a/tests/test_02_saml.py b/tests/test_02_saml.py index 2cdb5064..ec5f15d6 100644 --- a/tests/test_02_saml.py +++ b/tests/test_02_saml.py @@ -901,19 +901,20 @@ class TestSubjectConfirmation: key_info = sc.subject_confirmation_data.key_info assert len(key_info) == 1 assert len(key_info[0].x509_data) == 1 - assert key_info[0].x509_data[0].x509_certificate.text.strip() == """ -MIICITCCAYoCAQEwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCenoxCzAJBgNV -BAgMAnp6MQ0wCwYDVQQHDAR6enp6MQ4wDAYDVQQKDAVaenp6ejEOMAwGA1UECwwF -Wnp6enoxDTALBgNVBAMMBHRlc3QwIBcNMTkwNDEyMTk1MDM0WhgPMzAxODA4MTMx -OTUwMzRaMFgxCzAJBgNVBAYTAnp6MQswCQYDVQQIDAJ6ejENMAsGA1UEBwwEenp6 -ejEOMAwGA1UECgwFWnp6enoxDjAMBgNVBAsMBVp6enp6MQ0wCwYDVQQDDAR0ZXN0 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcj80WU/XBsd9FlyQmfjPUdfm -edhCFDd6TEQmZNNqP/UG+VkGa+BXjRIHMfic/WxPTbGhCjv68ci0UDNomUXagFex -LGNpkwa7+CRVtoc/1xgq+ySE6M4nhcCutScoxNvWNn5eSQ66i3U0sTv91MgsXxqE -dTaiZg0BIufEc3dueQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAGUV5B+USHvaRa8k -gCNJSuNpo6ARlv0ekrk8bbdNRBiEUdCMyoGJFfuM9K0zybX6Vr25wai3nvaog294 -Vx/jWjX2g5SDbjItH6VGy6C9GCGf1A07VxFRCfJn5tA9HuJjPKiE+g/BmrV5N4Ce -alzFxPHWYkNOzoRU8qI7OqUai1kL""".strip() + + expected_cert = """MIICITCCAYoCAQEwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCenoxCzAJBgNV + BAgMAnp6MQ0wCwYDVQQHDAR6enp6MQ4wDAYDVQQKDAVaenp6ejEOMAwGA1UECwwF + Wnp6enoxDTALBgNVBAMMBHRlc3QwIBcNMTkwNDEyMTk1MDM0WhgPMzAxODA4MTMx + OTUwMzRaMFgxCzAJBgNVBAYTAnp6MQswCQYDVQQIDAJ6ejENMAsGA1UEBwwEenp6 + ejEOMAwGA1UECgwFWnp6enoxDjAMBgNVBAsMBVp6enp6MQ0wCwYDVQQDDAR0ZXN0 + MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcj80WU/XBsd9FlyQmfjPUdfm + edhCFDd6TEQmZNNqP/UG+VkGa+BXjRIHMfic/WxPTbGhCjv68ci0UDNomUXagFex + LGNpkwa7+CRVtoc/1xgq+ySE6M4nhcCutScoxNvWNn5eSQ66i3U0sTv91MgsXxqE + dTaiZg0BIufEc3dueQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAGUV5B+USHvaRa8k + gCNJSuNpo6ARlv0ekrk8bbdNRBiEUdCMyoGJFfuM9K0zybX6Vr25wai3nvaog294 + Vx/jWjX2g5SDbjItH6VGy6C9GCGf1A07VxFRCfJn5tA9HuJjPKiE+g/BmrV5N4Ce + alzFxPHWYkNOzoRU8qI7OqUai1kL""".replace(' ', '') + assert key_info[0].x509_data[0].x509_certificate.text.strip() == expected_cert class TestSubject: diff --git a/tests/test_93_hok.py b/tests/test_93_hok.py index 085c930d..df740722 100644 --- a/tests/test_93_hok.py +++ b/tests/test_93_hok.py @@ -1,24 +1,12 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -from contextlib import closing -from datetime import datetime -from dateutil import parser -from string import translate, whitespace -from saml2.authn_context import INTERNETPROTOCOLPASSWORD - -from saml2.server import Server from saml2.response import authn_response from saml2.config import config_factory from pathutils import dotname, full_path -# Example SAML response iwth 'holder-of-key' subject confirmtaions -# containing DER-base64 copies (without PEM enclosure) of test_1.crt and test_2.crt HOLDER_OF_KEY_RESPONSE_FILE = full_path("saml_hok.xml") -TEST_CERT_1 = full_path("test_1.crt") -TEST_CERT_2 = full_path("test_2.crt") - class TestHolderOfKeyResponse: def test_hok_response_is_parsed(self): @@ -34,17 +22,39 @@ class TestHolderOfKeyResponse: assert resp.get_subject() is not None assert len(resp.assertion.subject.subject_confirmation) == 2 - actual_certs = [sc.subject_confirmation_data.key_info[0].x509_data[0].x509_certificate.text.strip() + actual_hok_certs = [sc.subject_confirmation_data.key_info[0].x509_data[0].x509_certificate.text.strip() for sc in resp.assertion.subject.subject_confirmation] - expected_certs = [self._read_cert_without_pem_enclosure(TEST_CERT_1), - self._read_cert_without_pem_enclosure(TEST_CERT_2)] - assert actual_certs == expected_certs - - def _read_cert_without_pem_enclosure(self, path): - with open(path, 'r') as fp: - lines = fp.readlines() - lines_without_enclosure = lines[1:-1] - return ''.join(lines_without_enclosure).translate(None, whitespace) + assert actual_hok_certs == self._expected_hok_certs() + + def _expected_hok_certs(self): + certs = ["""MIICITCCAYoCAQEwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCenoxCzAJBgNV + BAgMAnp6MQ0wCwYDVQQHDAR6enp6MQ4wDAYDVQQKDAVaenp6ejEOMAwGA1UECwwF + Wnp6enoxDTALBgNVBAMMBHRlc3QwIBcNMTkwNDEyMTk1MDM0WhgPMzAxODA4MTMx + OTUwMzRaMFgxCzAJBgNVBAYTAnp6MQswCQYDVQQIDAJ6ejENMAsGA1UEBwwEenp6 + ejEOMAwGA1UECgwFWnp6enoxDjAMBgNVBAsMBVp6enp6MQ0wCwYDVQQDDAR0ZXN0 + MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHcj80WU/XBsd9FlyQmfjPUdfm + edhCFDd6TEQmZNNqP/UG+VkGa+BXjRIHMfic/WxPTbGhCjv68ci0UDNomUXagFex + LGNpkwa7+CRVtoc/1xgq+ySE6M4nhcCutScoxNvWNn5eSQ66i3U0sTv91MgsXxqE + dTaiZg0BIufEc3dueQIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAGUV5B+USHvaRa8k + gCNJSuNpo6ARlv0ekrk8bbdNRBiEUdCMyoGJFfuM9K0zybX6Vr25wai3nvaog294 + Vx/jWjX2g5SDbjItH6VGy6C9GCGf1A07VxFRCfJn5tA9HuJjPKiE+g/BmrV5N4Ce + alzFxPHWYkNOzoRU8qI7OqUai1kL""", + """MIICITCCAYoCAQEwDQYJKoZIhvcNAQELBQAwWDELMAkGA1UEBhMCenoxCzAJBgNV + BAgMAnp6MQ0wCwYDVQQHDAR6enp6MQ4wDAYDVQQKDAVaenp6ejEOMAwGA1UECwwF + Wnp6enoxDTALBgNVBAMMBHRlc3QwIBcNMTkwNDEyMTk1MDM0WhgPMzAxODA4MTMx + OTUwMzRaMFgxCzAJBgNVBAYTAnp6MQswCQYDVQQIDAJ6ejENMAsGA1UEBwwEenp6 + ejEOMAwGA1UECgwFWnp6enoxDjAMBgNVBAsMBVp6enp6MQ0wCwYDVQQDDAR0ZXN0 + MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjW0kJM+4baWKtvO24ZsGXNvNK + KkwTMz7OW5Z6BRqhSOq2WA0c5NCpMk6rD8Z2OTFEolPojEjf8dVyd/Ds/hrjFKQv + 8wQgbdXLN51YTIsgd6h+hBJO+vzhl0PT4aT7M0JKo5ALtS6qk4tsworW2BnwyvsG + SAinwfeWt4t/b1J3kwIDAQABMA0GCSqGSIb3DQEBCwUAA4GBAFtj7WArQQBugmh/ + KQjjlfTQ5A052QeXfgTyO9vv1S6MRIi7qgiaEv49cGXnJv/TWbySkMKObPMUApjg + 6z8PqcxuShew5FCTkNvwhABFPiyu0fUj3e2FEPHfsBu76jz4ugtmhUqjqhzwFY9c + tnWRkkl6J0AjM3LnHOSgjNIclDZG"""] + for index, item in enumerate(certs): + item = item.replace(' ', '').replace('\n', '') + certs[index] = item + return certs if __name__ == "__main__": -- cgit v1.2.1