def test_validate_ticket_fail(self, mock_urlopen): self.response.read.return_value = SAML_FAIL mock_urlopen.return_value = self.response self.assertEqual( validate_saml_ticket( "foo", "https://slank.ccnmtl.columbia.edu/accounts/caslogin/?next=/"), (False, "CAS/SAML Validation Failed", []))
def test_validate_ticket_success(self, mock_urlopen): self.response.read.return_value = saml_success_no_affils() mock_urlopen.return_value = self.response self.assertEqual( validate_saml_ticket( "foo", "https://slank.ccnmtl.columbia.edu/accounts/caslogin/?next=/"), (True, 'anp8', ['anp8']))
def test_validate_ticket_invalid_response(self, mock_urlopen): self.response.read.return_value = \ "holy crap! I'm not a valid CAS response!" mock_urlopen.return_value = self.response self.assertEqual( validate_saml_ticket( "foo", "https://slank.ccnmtl.columbia.edu/accounts/caslogin/?next=/"), (False, "CAS did not return a valid response.", []))
def test_validate_ticket_alternate_cas_base(self, mock_urlopen): self.response.read.return_value = saml_success_no_affils() mock_urlopen.return_value = self.response with self.settings(CAS_BASE="https://cas.example.com/"): self.assertEqual( validate_saml_ticket( "foo", ("https://slank.ccnmtl.columbia.edu/accounts/" "caslogin/?next=/")), (True, 'anp8', ['anp8']))
def test_validate_ticket_success_with_groups(self, mock_urlopen): self.response.read.return_value = saml_success_affils() mock_urlopen.return_value = self.response self.assertEqual( validate_saml_ticket( "foo", "https://slank.ccnmtl.columbia.edu/accounts/caslogin/?next=/"), (True, 'anp8', ['anp8', 'cul.cunix.local:columbia.edu', 'libinfosys.cunix.local:columbia.edu', 'staff.cunix.local:columbia.edu', 'student.cunix.local:columbia.edu', 'tlc.cunix.local:columbia.edu', 'tlc-pt.cunix.local:columbia.edu', 'tlcxml.cunix.local:columbia.edu']))
def test_validate_ticket_with_jonah_affils(self, mock_urlopen): self.response.read.return_value = jonah_affils() mock_urlopen.return_value = self.response self.assertEqual( validate_saml_ticket( "foo", "https://slank.ccnmtl.columbia.edu/accounts/caslogin/?next=/"), (True, 'jb2410', ['jb2410', 'cul.cunix.local:columbia.edu', 'culblogs.cunix.local:columbia.edu', 'digdante.cunix.local:columbia.edu', 'etsgroup.cunix.local:columbia.edu', 'libinfosys.cunix.local:columbia.edu', 'spc.cunix.local:columbia.edu', 'staff.cunix.local:columbia.edu', 'tlc.cunix.local:columbia.edu', 'tlc-pt.cunix.local:columbia.edu', 'tlcxml.cunix.local:columbia.edu', 't1.y2011.s001.cy4199.a&hh.st.course:columbia.edu', 't1.y2008.s002.cy5010.a&h.st.course:columbia.edu', 't3.y2008.s001.ca4469.arch.st.course:columbia.edu', 't3.y2010.s001.ca4642.arch.st.course:columbia.edu', 't1.y2010.s001.cb8210.buec.st.course:columbia.edu', 't3.y2008.s001.cj6019.jour.st.course:columbia.edu', 't3.y2009.s001.cj9042.jour.st.course:columbia.edu', 't1.y2009.s001.cj9055.jour.st.course:columbia.edu', 't3.y2011.s002.cj9900.jour.st.course:columbia.edu', 't1.y2010.s007.cy4901.mstu.st.course:columbia.edu', 't1.y2008.s005.cy6901.mstu.st.course:columbia.edu', 't1.y2011.s001.ck4220.nmed.st.course:columbia.edu', 't1.y2009.s001.co2206.nyug.st.course:columbia.edu', 't3.y2010.s001.cg4010.ohma.st.course:columbia.edu', 't1.y2008.s001.cg8247.pols.st.course:columbia.edu', 't3.y2009.s001.cj0002.resi.st.course:columbia.edu', 't1.y2010.s001.cj0002.resi.st.course:columbia.edu', 't3.y2010.s001.cj0002.resi.st.course:columbia.edu', 't1.y2011.s001.cj0002.resi.st.course:columbia.edu', 't1.y2012.s001.cj0001.rsrh.st.course:columbia.edu', 't3.y2012.s001.cj0001.rsrh.st.course:columbia.edu', 't1.y2013.s001.cj0001.rsrh.st.course:columbia.edu', 't3.y2013.s001.cj0001.rsrh.st.course:columbia.edu', 't1.y2014.s001.cj0001.rsrh.st.course:columbia.edu', 't3.y2014.s001.cj0001.rsrh.st.course:columbia.edu', 't3.y2009.s001.cg8200.soci.st.course:columbia.edu']))
def test_no_ticket(self, mock_urlopen): self.assertEqual( validate_saml_ticket("", ""), (False, 'no ticketid', ''))