def test_parse_function_multi_params(self): self.assertEqual( Pipeline.parse('#plus(1, 2)'), Message([ Function(name='plus', messages=[ Message([PlainText(name='1')]), Message([PlainText(name='2')]) ]) ]) )
def test_str_function_multi_params(self): self.assertEqual( str( Message([ Function(name='plus', messages=[ Message([PlainText(name='1')]), Message([PlainText(name='2')]) ]) ]) ), '3' )
def test_parse_mix(self): self.assertEqual( Pipeline.parse('Alive Device: #alives() / #devices()'), Message([ PlainText(name='Alive Device: '), Function(name='alives', messages=[ Message([]) ]), PlainText(name=' / '), Function(name='devices', messages=[ Message([]) ]) ]) )
def test_parse_escaped(self): self.assertEqual( Pipeline.parse('\\\\\\#\\#Hello\\\\world!\\#\\#'), # means '\\\#\#Hello\\world!\#\#' Message(tokens=[ PlainText(name='\\##Hello\\world!##') # means '\##Hello\world!##' ]) )
def test_str_deep(self): """ Note: This testcase only succeeds within 24 hours from initialization of DB. (Because of 'alives' function) """ self.assertEqual( str( Message([ PlainText(name='Alive Device Ratio: '), Function(name='divide', messages=[ Message([ Function(name='alives', messages=[ Message([]) ]), ]), Message([ Function(name='devices', messages=[ Message([]) ]), ]), ]) ]) ), 'Alive Device Ratio: 0.75' )
def test_parse_normal(self): self.assertEqual( Pipeline.parse('Hello!'), Message(tokens=[ PlainText(name='Hello!') ]) )
def test_str_normal(self): self.assertEqual( str( Message(tokens=[ PlainText(name='Hello!') ]) ), 'Hello!' )
def test_str_escaped(self): self.assertEqual( str( Message(tokens=[ PlainText(name='\\##Hello\\world!##') # means '\##Hello\world!##' ]) ), '\\##Hello\\world!##' # means '\##Hello\world!##' )
def test_parse_function_report(self): self.assertEqual( Pipeline.parse('#report(GPU480)'), Message([ Function(name='report', messages=[ Message([ PlainText(name='GPU480') ]) ]) ]) )
def test_extra_param_error(self): self.assertRaises( FunctionParamUnmatchError, str, Message([ Function(name='devices', messages=[ Message([ PlainText(name='extra_word') ]) ]) ]) )
def test_str_function_report(self): self.assertEqual( str( Message([ Function(name='report', messages=[ Message([ PlainText(name='GPU480') ]) ]) ]) ), 'GPU Information Here.' )
def test_parse_deep(self): """ Note: This testcase only succeeds within 24 hours from initialization of DB. (Because of 'alives' function) """ self.assertEqual( Pipeline.parse('Alive Device Ratio: #divide(#alives(), #devices())'), Message([ PlainText(name='Alive Device Ratio: '), Function(name='divide', messages=[ Message([ Function(name='alives', messages=[ Message([]) ]), ]), Message([ Function(name='devices', messages=[ Message([]) ]), ]), ]) ]) )