Beispiel #1
0
    def auth_test(self,username=None,password=None):
        u = username or self.username
        if not u:
            raise LoginException("missing username",bank=self)
        p = password or self.password
        if not u:
            raise LoginException("missing password",bank=self)

        builder = Builder(self)
        query = builder.authQuery(username=u,password=p)
        res = builder.doQuery(query)
        ofx = BeautifulStoneSoup(res)

        try:
            sonrs = ofx.find('sonrs')
            code = int(sonrs.find('code').contents[0].strip())
        except:
            raise LoginException("parse error: %s" % res,bank=self)

        try:
            status = sonrs.find('message').contents[0].strip()
        except Exception:
            status = ''

        if code == 0:
            return 1

        security.set_password(
            self.keyring_id(),
            ''
        )
        raise LoginException(status,code=code,bank=self)