40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import pytest
 | |
| import atst.domain.authnid.utils as utils
 | |
| from tests.mocks import DOD_SDN, FIXTURE_EMAIL_ADDRESS
 | |
| 
 | |
| 
 | |
| def test_parse_sdn():
 | |
|     parsed = utils.parse_sdn(DOD_SDN)
 | |
|     assert parsed.get("first_name") == "ART"
 | |
|     assert parsed.get("last_name") == "GARFUNKEL"
 | |
|     assert parsed.get("dod_id") == "5892460358"
 | |
| 
 | |
| 
 | |
| def test_parse_bad_sdn():
 | |
|     with pytest.raises(ValueError):
 | |
|         utils.parse_sdn("this has nothing to do with anything")
 | |
|     with pytest.raises(ValueError):
 | |
|         utils.parse_sdn(None)
 | |
| 
 | |
| 
 | |
| def test_parse_email_cert():
 | |
|     cert_file = open("tests/fixtures/{}.crt".format(FIXTURE_EMAIL_ADDRESS), "rb").read()
 | |
|     email = utils.email_from_certificate(cert_file)
 | |
|     assert email == FIXTURE_EMAIL_ADDRESS
 | |
| 
 | |
| 
 | |
| def test_parse_cert_with_no_email():
 | |
|     cert_file = open("tests/fixtures/no-email.crt", "rb").read()
 | |
|     with pytest.raises(ValueError) as excinfo:
 | |
|         email = utils.email_from_certificate(cert_file)
 | |
|     (message,) = excinfo.value.args
 | |
|     assert "email" in message
 | |
| 
 | |
| 
 | |
| def test_parse_cert_with_no_san():
 | |
|     cert_file = open("tests/fixtures/no-san.crt", "rb").read()
 | |
|     with pytest.raises(ValueError) as excinfo:
 | |
|         email = utils.email_from_certificate(cert_file)
 | |
|     (message,) = excinfo.value.args
 | |
|     assert "subjectAltName" in message
 |