コード例 #1
0
ファイル: test_log.py プロジェクト: gxela/kiwi-gtk
class LogTest(unittest.TestCase):
    def setUp(self):
        self.filename = tempfile.mktemp()
        self.log = Logger('log')

    def tearDown(self):
        if os.path.exists(self.filename):
            try:
                os.unlink(self.filename)
            except OSError: # win32 permission error
                pass

    def testSetLogFile(self):
        set_log_file(self.filename, 'log')
        self.log.info("sliff")
        lines = open(self.filename).readlines()
        self.assertEqual(len(lines), 1)
        self.failUnless('sliff' in lines[0])

    def testStdErr(self):
        root = logging.getLogger()
        stream = root.handlers[0]
        fd = cStringIO.StringIO()
        stream.stream = fd
        self.log.warning("this is a warning")
        stream.stream = sys.stderr
        fd.seek(0)
        lines = fd.readlines()
        self.assertEqual(len(lines), 1)
        self.failUnless('this is a warning' in lines[0])
コード例 #2
0
ファイル: cookie.py プロジェクト: romaia/stoq
        data = cookiedata.split(":", 1)
        try:
            return data[0], binascii.a2b_base64(data[1])
        except binascii.Error:
            raise CookieError("invalid format")

    def clear(self):
        try:
            os.remove(self._filename)
            log.info("Removed cookie %s" % self._filename)
        except OSError, e:
            log.info("Could not remove file %s: %r" % (self._filename, e))

    def store(self, username, password):
        if not username:
            raise CookieError("a username is required")

        try:
            fd = open(self._filename, "w")
        except IOError, e:
            raise CookieError("Could open file %s: %r" % (
                self._filename, e))

        # obfuscate password to avoid it being easily identified when
        # editing file on screen. this is *NOT* encryption!
        fd.write("%s:%s" % (username, binascii.b2a_base64(password or '')))
        fd.close()

        log.info("Saved cookie %s" % self._filename)
コード例 #3
0
ファイル: login.py プロジェクト: romaia/stoq
            try:
                user = self._check_user(username, password)
            except (LoginError, UserProfileError), e:
                # We don't hide the dialog here; it's kept open so the
                # next loop we just can call run() and display the error
                cookie = get_utility(ICookieFile, None)
                if cookie:
                    cookie.clear()
                retry += 1
                retry_msg = str(e)
            except DatabaseError, e:
                if dialog:
                    dialog.destroy()
                self._abort(str(e))
            else:
                log.info("Authenticated user %s" % username)
                self._force_username = None

                if dialog.remember.get_active():
                    get_utility(ICookieFile).store(user.username,
                                                   user.pw_hash)

                if dialog:
                    dialog.destroy()

                return user

        if dialog:
            dialog.destroy()
        raise LoginError(_("Depleted attempts of authentication"))