<s> import re <EOL> from twisted . trial import unittest <EOL> from nagcat import notify <EOL> import coil <EOL> ENVIRONMENT_HOST = { <EOL> '<STR_LIT>' : "<STR_LIT:localhost>" , <EOL> '<STR_LIT>' : "<STR_LIT:localhost>" , <EOL> '<STR_LIT>' : "<STR_LIT:localhost>" , <EOL> '<STR_LIT>' : "<STR_LIT:127.0.0.1>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:1>" , <EOL> '<STR_LIT>' : "<STR_LIT:3>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:1>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:localhost>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:root>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:root>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:1>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT:1>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> } <EOL> ENVIRONMENT_SERVICE = { <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:2>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:2>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:3>" , <EOL> '<STR_LIT>' : "<STR_LIT:3>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT:0>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> '<STR_LIT>' : "<STR_LIT>" , <EOL> } <EOL> ENVIRONMENT_SERVICE . update ( ENVIRONMENT_HOST ) <EOL> class MacrosTestCase ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . macros = notify . Macros ( ENVIRONMENT_SERVICE ) <EOL> def testPrefix ( self ) : <EOL> for key in self . macros : <EOL> self . failIf ( key . startswith ( "<STR_LIT>" ) ) <EOL> def testNewlines ( self ) : <EOL> for key , value in self . macros . iteritems ( ) : <EOL> if key == "<STR_LIT>" : <EOL> self . assert_ ( len ( value . splitlines ( ) ) > <NUM_LIT:1> ) <EOL> else : <EOL> self . assert_ ( not value or len ( value . splitlines ( ) ) == <NUM_LIT:1> ) <EOL> def testMissing ( self ) : <EOL> self . assertRaises ( notify . MissingMacro , <EOL> lambda : self . macros [ '<STR_LIT>' ] ) <EOL> class NotificationTest ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . macros = { <EOL> '<STR_LIT:host>' : notify . Macros ( ENVIRONMENT_HOST ) , <EOL> '<STR_LIT>' : notify . Macros ( ENVIRONMENT_SERVICE ) } <EOL> self . config = coil . parse ( notify . DEFAULT_CONFIG ) <EOL> def testSubject ( self ) : <EOL> for t in ( '<STR_LIT:host>' , '<STR_LIT>' ) : <EOL> obj = notify . Notification ( t , self . macros [ t ] , self . config ) <EOL> self . assert_ ( obj . subject ( ) ) <EOL> def testBody ( self ) : <EOL> for t in ( '<STR_LIT:host>' , '<STR_LIT>' ) : <EOL> obj = notify . Notification ( t , self . macros [ t ] , self . config ) <EOL> long = obj . body ( ) <EOL> self . assert_ ( long ) <EOL> self . failIf ( re . search ( '<STR_LIT>' , long ) ) <EOL> obj . format = "<STR_LIT>" <EOL> short = obj . body ( ) <EOL> self . assert_ ( short ) <EOL> self . failIf ( re . search ( '<STR_LIT>' , short ) ) <EOL> self . assert_ ( len ( short ) < len ( long ) ) <EOL> def testURLs ( self ) : <EOL> config = self . config . copy ( ) <EOL> config [ '<STR_LIT>' ] = "<STR_LIT>" <EOL> config [ '<STR_LIT>' ] = "<STR_LIT>" <EOL> for t in ( '<STR_LIT:host>' , '<STR_LIT>' ) : <EOL> obj = notify . Notification ( t , self . macros [ t ] , config ) <EOL> urls = obj . urls ( ) <EOL> self . assert_ ( urls [ '<STR_LIT>' ] . startswith ( config [ '<STR_LIT>' ] ) ) <EOL> self . assert_ ( urls [ '<STR_LIT>' ] . startswith ( config [ '<STR_LIT>' ] ) ) </s>
