def test(): """ Exercise a non-fatal firewall channel with a realistic example """ # get the trash can from journal.ext.journal import Trash as trash # and the channel from journal.ext.journal import Firewall as firewall # make a firewall channel channel = firewall(name="tests.journal.firewall") # make it non-fatal channel.fatal = False # send the output to trash channel.device = trash() # add some metadata channel.notes["time"] = "now" # carefully try: # inject channel.line("firewall:") channel.log(" a nasty bug was detected") # if any exception was raised except channel.FirewallError as error: # shouldn't get here assert False, "unreachable" # all done return
def test(): """ Verify the channel initial state """ # access from journal.ext.journal import Firewall as firewall # make a channel channel = firewall(name="tests.journal.firewall") # verify the channel name assert channel.name == "tests.journal.firewall" # the detail should be at the default level assert channel.detail == 1 # the channel should be active assert channel.active is True # and fatal assert channel.fatal is True # the page should be empty assert tuple(channel.page) == () # verify the metadata assert channel.notes["application"] == "journal" assert channel.notes["channel"] == channel.name assert channel.notes["severity"] == channel.severity # all done return
def test(): """ Verify that channel buffers reset correctly after a flush """ # get the channel from journal.ext.journal import Firewall as firewall # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = firewall(name="test.journal.firewall") # send the output to trash channel.device = trash() # carefully try: # inject channel.log("hello world!") # shouldn't get here assert False, "unreachable" # if the correct exception was raised except channel.FirewallError as error: # no problem pass # verify that the buffer is empty after the flush assert len(channel.page) == 0 # all done return
def test(): """ Exercise the common use case """ # get the channel from journal.ext.journal import Firewall as firewall # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = firewall(name="test.journal.firewall") # send the output to trash channel.device = trash() # add some metadata channel.notes["time"] = "now" # carefully try: # inject channel.line("firewall:") channel.log(" a nasty bug was detected") # shouldn't get here assert False, "unreachable" # if the correct exception was raised except channel.FirewallError as error: # check the description assert str(error) == "test.journal.firewall: FIREWALL BREACHED!" # all done return
def test(): """ Verify that we can suppress all channel output """ # get the channel from journal.ext.journal import Firewall as firewall # suppress all output firewall.quiet() # make a channel channel = firewall(name="test.journal.firewall") # add some metadata channel.notes["time"] = "now" # carefully try: # inject channel.line("firewall:") channel.log(" a nasty bug was detected") # shouldn't get here assert False, "unreachable" # if the correct exception was raised except channel.FirewallError as error: # check the description assert str(error) == "test.journal.firewall: FIREWALL BREACHED!" # all done return
def test(): """ Send all output to a log file """ # get the channel from journal.ext.journal import Firewall as firewall # send output to a log file firewall.logfile(name="firewall_file_mode.log", mode="a") # make a channel channel = firewall(name="test.journal.firewall") # add some metadata channel.notes["time"] = "now" # carefully try: # inject channel.line("firewall:") channel.log(" a nasty bug was detected") # shouldn't get here assert False, "unreachable" # if the correct exception was raised except channel.FirewallError as error: # check the description assert str(error) == "test.journal.firewall: FIREWALL BREACHED!" # all done return
def test(): """ Exercise adding multiple lines at once """ # get the channel from journal.ext.journal import Firewall as firewall # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = firewall(name="test.journal.firewall") # activate it channel.activate() # but send the output to trash channel.device = trash() # content in a tuple reptuple = ( "report from tuple:", " tuple line 1", " tuple line 2", ) # content in a list replist = [ "report from list:", " list line 1", " list line 2", ] # content in a generator def repgen(): yield "report from generator:" yield " generator line 1" yield " generator line 2" return # carefully try: # inject channel.report(report=reptuple) channel.report(report=replist) channel.report(report=repgen()) # flush channel.log() # shouldn't get here assert False, "unreachable" # if the correct exception was raised except channel.FirewallError as error: # check the description assert str(error) == "test.journal.firewall: FIREWALL BREACHED!" # all done return
def test(): """ Exercise the simplest use case """ # get the channel from journal.ext.journal import Firewall as firewall # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = firewall(name="test.journal.firewall") # send the output to trash channel.device = trash() # make the firewall non-fatal channel.fatal = False # inject channel.log("hello world!") # all done return
def test(): """ Verify that repeated use of the same instance works correctly """ # get the channel from journal.ext.journal import Firewall as firewall # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = firewall(name="test.journal.firewall") # make it non-fatal channel.fatal = False # send the output to trash channel.device = trash() # a few times for _ in range(10): # inject channel.log("hello world!") # all done return