def test_cached_assertion(self):
        assertion = '32lj432j4.some.really.long.string.23k4j23l4j'
        email = '*****@*****.**'
        audience = 'example.com'
        cur = self.db_conn.cursor()
        insert_session_row(cur, assertion, email)
        cur.close()

        sasl_creds = browserid(assertion, audience)

        slapd.wait_for_jane()

        self.ldap_conn.sasl_interactive_bind_s("", sasl_creds)

        expected_dn = "dn:uid=%s,dc=example,dc=com" % email
        self.assertEqual(expected_dn, self.ldap_conn.whoami_s())
    def test_cached_assertion_unknown_user(self):
        assertion = '32lj432j4.some_other.really.long.string.23k4j23l4j'
        email = '*****@*****.**'
        audience = 'example.com'
        cur = self.db_conn.cursor()
        insert_session_row(cur, assertion, email)
        cur.close()

        sasl_creds = browserid(assertion, audience)

        # we don't need name, but let directory get loaded
        slapd.wait_for_jane()

        self.ldap_conn.sasl_interactive_bind_s("", sasl_creds)

        expected_dn = "dn:uid=%s,cn=browser-id,cn=auth" % email
        self.assertEqual(expected_dn, self.ldap_conn.whoami_s())