Changeset 1333 for TI05-delivery


Ignore:
Timestamp:
27/07/06 11:56:03 (13 years ago)
Author:
spascoe
Message:

Moved python logging code into pybbftp.server

Location:
TI05-delivery/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/trunk/lib/python/pybbftp/server.py

    r1289 r1333  
    5656     
    5757 
     58# Import all LOG_* levels from syslog. 
     59import syslog 
     60for x in dir(syslog): 
     61    if x[:4] == 'LOG_': 
     62        globals()[x] = getattr(syslog, x) 
     63 
    5864#-------------------------------------------------------------------------------------------------------------- 
    5965 
     
    135141        raise NotImplementedError 
    136142 
     143    def log(self, priority, msg): 
     144        """Send a message to the bbftpd logger. 
     145 
     146        @param priority one of server.LOG_* 
     147        @param msg the message to log 
     148        """ 
     149        bbftpd.log(priority, msg) 
     150 
    137151 
    138152class AuthzHandler(object): 
     
    172186 
    173187        raise NotImplementedError 
    174      
     188 
     189    def log(self, priority, msg): 
     190        """Send a message to the bbftpd logger. 
     191 
     192        @param priority one of server.LOG_* 
     193        @param msg the message to log 
     194        """ 
     195        bbftpd.log(priority, msg) 
     196 
    175197 
    176198#-------------------------------------------------------------------------------------------------------------- 
  • TI05-delivery/trunk/test/test_embedded.py

    r1332 r1333  
    88 
    99import unittest 
    10 import sys, os, signal, time, syslog, stat 
     10import sys, os, signal, time, stat 
    1111from glob import glob 
    1212import re, tempfile, getopt 
     
    3737 
    3838        msg = self.recv() 
    39         self.logMessage('AuthContext received Auth message: %s' % msg) 
     39        self.log(server.LOG_DEBUG, 'AuthContext received Auth message: %s' % msg) 
    4040                 
    4141        self.send(NDG_HANDSHAKE) 
    4242 
    4343        privatestr = self.recv() 
    44         self.logMessage("AuthContext received privatestr: %s" % privatestr) 
     44        self.log(server.LOG_DEBUG, "AuthContext received privatestr: %s" % privatestr) 
    4545         
    4646        return self.makeAuthzHandler(msg, "TestCaseUser") 
     
    4949        return TestAuthzHandler(msg, "TestCaseUser") 
    5050 
    51     def logMessage(self, msg): 
    52         server.bbftpd.log(syslog.LOG_DEBUG, msg) 
    5351 
    5452class TestAuthzHandler(server.LiberalAuthzHandler): 
     
    7472 
    7573    def authzControl(self, msgcode, transferopt, path): 
    76         server.bbftpd.log(syslog.LOG_DEBUG, 'TestPermAuthzHandler.authzControl: msgcode = %s' % hex(msgcode)) 
     74        self.log(server.LOG_DEBUG, 'TestPermAuthzHandler.authzControl: msgcode = %s' % hex(msgcode)) 
    7775        return self.authzPath(path) 
    7876 
     
    8684        mode = stat.S_IMODE(os.stat(path)[stat.ST_MODE]) 
    8785        if (mode & 0004): 
    88             server.bbftpd.log(syslog.LOG_DEBUG, 'TestPermAuthzHandler OK') 
     86            self.log(server.LOG_DEBUG, 'TestPermAuthzHandler OK') 
    8987            return True 
    9088        else: 
    91             server.bbftpd.log(syslog.LOG_DEBUG, 'TestPermAuthzHandler FAIL') 
     89            self.log(server.LOG_DEBUG, 'TestPermAuthzHandler FAIL') 
    9290            raise server.AuthorisationFailure, "TestPermAuthzHandler: no read perms" 
    9391 
     
    9896 
    9997    def setUp(self): 
    100         # We want to mark the beginning of this test case in syslog 
    101         #syslog.openlog('test_embedded.py', 0, syslog.LOG_LOCAL0) 
    102         #syslog.syslog(syslog.LOG_DEBUG, 'Starting TestCase') 
    103  
    10498        self._clearLog() 
    10599        self._startServer() 
     
    107101    def tearDown(self): 
    108102        self._stopServer() 
    109         #syslog.syslog(syslog.LOG_DEBUG, 'Ended TestCase') 
    110         #syslog.closelog() 
    111103 
    112104    #---------------------------------------------------------------------------------- 
     
    121113        os.kill(self.pid, signal.SIGTERM) 
    122114        os.waitpid(self.pid, 0) 
    123         #syslog.syslog(syslog.LOG_DEBUG, 'Stopping server') 
    124115 
    125116 
     
    148139        return open(logfile).read() 
    149140     
    150  
    151     def _readSyslog(self, logfile="/var/log/bbftpd/bbftpd.log"): 
    152         """Get all bbftpd messages from syslog for this test case. 
    153  
    154         @note: This requires read access to the logfile 
    155         """ 
    156  
    157         # Read the logfile into a buffer 
    158         log = open(logfile).readlines() 
    159  
    160         # Find the latest testcase marker 
    161         start_i = 0 
    162         for i in xrange(len(log)-1, -1, -1): 
    163             if re.search('test_embedded.py: Starting TestCase', log[i]): 
    164                 start_i = i+1 
    165                 break 
    166         if not start_i: 
    167             raise RuntimeError, "Can't find test case entry in syslog" 
    168  
    169         filtered_log = [] 
    170         for line in log[start_i:]: 
    171             if re.search(r'test_bbftpd.py:|bbftpd .*:', line): 
    172                 filtered_log.append(line) 
    173  
    174         return ''.join(filtered_log) 
    175141 
    176142 
     
    203169    def testStartup(self): 
    204170        lines = self._readLog() 
    205         # Give syslog time to flush it's logs. 
    206         time.sleep(1) 
    207171        self.assertLines(['.*Starting bbftpd'], lines) 
    208172 
     
    264228        os.remove(tmp) 
    265229 
    266         # Check syslog 
     230        # Check log 
    267231        lines = self._readLog() 
    268232        self.assertLines(['.*Authz: RETR .*/foo', '.*GET TestCaseUser .*/foo.*'], lines) 
     
    287251        os.remove(dest) 
    288252 
    289         # Check syslog 
     253        # Check log 
    290254        lines = self._readLog() 
    291255        self.assertLines(['.*Authz: STORE .*/new_bar', '.*PUT TestCaseUser .*/new_bar.*'], lines) 
Note: See TracChangeset for help on using the changeset viewer.