def testRejectLog(self): stream = StringIO() writer = ApacheLogWriter( stream, rejectLog=lambda collectedLog: getScoped( collectedLog, scopeNames=(), key='httpRequest').get( 'RequestURI') == ['/abc']) collectedLog = { 'httpRequest': { 'Headers': [{}], 'Client': [('10.11.12.13', 12345)], 'timestamp': [1468845136.824253], 'Method': ['GET'], 'RequestURI': ['/abc'], }, 'httpResponse': { 'httpStatus': ['200'], } } writer.writeLog(collectedLog) self.assertEquals('', stream.getvalue()) collectedLog['httpRequest']['RequestURI'] = ['/abcd'] writer.writeLog(collectedLog) self.assertEquals( '10.11.12.13 - - [18/Jul/2016:12:32:16 +0000] "GET /abcd HTTP/1.0" 200 - "-" "-"\n', stream.getvalue())
def fillReport(self, groups, collectedLog): httpRequest = getScoped(collectedLog, scopeNames=self._scopeNames, key='httpRequest') bodySize = getFirst(httpRequest, 'bodySize') if bodySize: self.subgroupReport(groups, 'Upload size')['size'] = { MEMORY: bodySize }
def testGetScopeForHttpRequestExample(self): collectedLog = { 'global': { 'httpRequest': { 'path': ['/path'] }, 'subscope': { 'sru': { 'numberOfRecords': [0] } } } } self.assertEquals({'path': ['/path']}, getScoped(collectedLog, scopeNames=('global', 'subscope'), key='httpRequest'))
def testGetScoped(self): collectedLog = { 'scope level 1': { 'scope level 2': { 'key': ['value'] }, 'otherkey': ['other value'], }, } self.assertEqual(['value'], getScoped(collectedLog, scopeNames=('scope level 1', 'scope level 2'), key='key')) self.assertEqual(['value'], getScoped(collectedLog, scopeNames=('scope level 1', 'scope level 2', 'scope level 3'), key='key')) self.assertEqual({}, getScoped(collectedLog, scopeNames=('scope level 1', 'scope level not here', 'scope level 2'), key='key')) self.assertEqual( None, getScoped(collectedLog, scopeNames=('scope level 1', 'scope level not here', 'scope level 2'), key='key', default=None)) self.assertEqual({'key': ['value']}, getScoped(collectedLog, scopeNames=('scope level 1', ), key='scope level 2')) self.assertEqual( { 'scope level 2': { 'key': ['value'] }, 'otherkey': ['other value'], }, getScoped(collectedLog, scopeNames=(), key='scope level 1')) self.assertEqual( 'strange', getScoped(collectedLog, scopeNames=('scope level 1', ), key=None, default='strange'))
def testRejectLog(self): stream = StringIO() writer = ApacheLogWriter(stream, rejectLog=lambda collectedLog: getScoped(collectedLog, scopeNames=(), key='httpRequest').get('RequestURI') == ['/abc']) collectedLog={ 'httpRequest': { 'Headers': [{}], 'Client': [('10.11.12.13', 12345)], 'timestamp': [1468845136.824253], 'Method': ['GET'], 'RequestURI': ['/abc'], }, 'httpResponse': { 'httpStatus': ['200'], } } writer.writeLog(collectedLog) self.assertEquals('', stream.getvalue()) collectedLog['httpRequest']['RequestURI'] = ['/abcd'] writer.writeLog(collectedLog) self.assertEquals('10.11.12.13 - - [18/Jul/2016:12:32:16 +0000] "GET /abcd HTTP/1.0" 200 - "-" "-"\n', stream.getvalue())
def testGetScoped(self): collectedLog = { 'scope level 1': { 'scope level 2': { 'key': ['value'] }, 'otherkey': ['other value'], }, } self.assertEquals(['value'], getScoped(collectedLog, scopeNames=('scope level 1', 'scope level 2'), key='key')) self.assertEquals(['value'], getScoped(collectedLog, scopeNames=('scope level 1', 'scope level 2', 'scope level 3'), key='key')) self.assertEquals({}, getScoped(collectedLog, scopeNames=('scope level 1', 'scope level not here', 'scope level 2'), key='key')) self.assertEquals(None, getScoped(collectedLog, scopeNames=('scope level 1', 'scope level not here', 'scope level 2'), key='key', default=None)) self.assertEquals({'key': ['value']}, getScoped(collectedLog, scopeNames=('scope level 1',), key='scope level 2')) self.assertEquals({ 'scope level 2': { 'key': ['value'] }, 'otherkey': ['other value'], }, getScoped(collectedLog, scopeNames=(), key='scope level 1')) self.assertEquals('strange', getScoped(collectedLog, scopeNames=('scope level 1',), key=None, default='strange'))
def _getScoped(self, collectedLog, *args, **kwargs): return getScoped(collectedLog, scopeNames=self._scopeNames, *args, **kwargs)