def test(): """ Exercise a fatal info 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 Informational as info # make an info channel channel = info(name="tests.journal.info") # make it fatal channel.fatal = True # send the output to trash channel.device = trash() # add some metadata channel.notes["time"] = "now" # we asked for this to be fatal, so carefully try: # to inject something channel.line("info channel:") channel.log(" hello world!") # this should be unreachable assert False, "unreachable" # if all goes well except channel.ApplicationError: # all good pass # all done return
def test(): """ Verify that empty log messages get handled properly """ # get the channel from journal.ext.journal import Informational as info # make an info channel channel = info(name="tests.journal.info") # inject an empty message channel.log() # all done return
def test(): """ Exercise adding multiple lines at once """ # get the channel from journal.ext.journal import Informational as info # and the trash can from journal.ext.journal import Trash as trash # make a channel channel = info(name="test.journal.info") # 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 # inject channel.report(report=reptuple) channel.report(report=replist) channel.report(report=repgen()) # flush channel.log() # all done return
def test(): """ Exercise the simplest use case """ # get the trash can from journal.ext.journal import Trash as trash # and the channel from journal.ext.journal import Informational as info # make an info channel channel = info(name="tests.journal.info") # send the output to trash channel.device = trash() # inject channel.log("hello world!") # all done return
def test(): """ Verify we can suppress all channel output """ # get the channel from journal.ext.journal import Informational as info # suppress all output info.quiet() # make an info channel channel = info(name="tests.journal.info") # add some metadata channel.notes["time"] = "now" # inject channel.line("info channel:") channel.log(" hello world!") # all done return
def test(): """ Send info channel output to a log file """ # get the channel from journal.ext.journal import Informational as info # send all output to a file info.logfile("info_file.log") # make an info channel channel = info(name="tests.journal.info") # add some metadata channel.notes["time"] = "now" # inject channel.line("info channel:") channel.log(" hello world!") # all done return
def test(): """ Verify that repeated access to the same channel does not accumulate extraneous material """ # get the trash can from journal.ext.journal import Trash as trash # and the channel from journal.ext.journal import Informational as info # make an info channel channel = info(name="tests.journal.info") # send the output to trash channel.device = trash() # a few times for _ in range(10): # inject channel.log("hello world!") # all done return
def test(): """ Verify that the channel buffers get flushed properly after {log} """ # get the trash can from journal.ext.journal import Trash as trash # and the channel from journal.ext.journal import Informational as info # make an info channel channel = info(name="tests.journal.info") # send the output to trash channel.device = trash() # inject channel.log("hello world!") # verify that the buffer is empty after the flush assert len(channel.page) == 0 # all done return
def test(): """ Sanity check: verify that the channel is accessible """ # get the channel from journal.ext.journal import Informational as info # make a channel channel = info(name="tests.journal.info") # verify the channel name assert channel.name == "tests.journal.info" # the detail should be at the default level assert channel.detail == 1 # the page should be empty assert list(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(): """ Exercise the info 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 Informational as info # make an info channel channel = info(name="tests.journal.info") # send the output to trash channel.device = trash() # add some metadata channel.notes["time"] = "now" # inject channel.line("info channel:") channel.log(" hello world!") # all done return