예제 #1
0
  def testFSMValue(self):
    # Check basic line is parsed.
    line = r'Value beer (\S+)'
    v = textfsm.TextFSMValue()
    v.Parse(line)
    self.assertEqual(v.name, 'beer')
    self.assertEqual(v.regex, r'(\S+)')
    self.assertEqual(v.template, r'(?P<beer>\S+)')
    self.assertFalse(v.options)

    # Test options
    line = r'Value Filldown,Required beer (\S+)'
    v = textfsm.TextFSMValue(options_class=textfsm.TextFSMOptions)
    v.Parse(line)
    self.assertEqual(v.name, 'beer')
    self.assertEqual(v.regex, r'(\S+)')
    self.assertEqual(v.OptionNames(), ['Filldown', 'Required'])

    # Multiple parenthesis.
    v = textfsm.TextFSMValue(options_class=textfsm.TextFSMOptions)
    v.Parse('Value Required beer (boo(hoo))')
    self.assertEqual(v.name, 'beer')
    self.assertEqual(v.regex, '(boo(hoo))')
    self.assertEqual(v.template, '(?P<beer>boo(hoo))')
    self.assertEqual(v.OptionNames(), ['Required'])

    # regex must be bounded by parenthesis.
    self.assertRaises(textfsm.TextFSMTemplateError,
                      v.Parse,
                      'Value beer (boo(hoo)))boo')
    self.assertRaises(textfsm.TextFSMTemplateError,
                      v.Parse,
                      'Value beer boo(boo(hoo)))')
    self.assertRaises(textfsm.TextFSMTemplateError,
                      v.Parse,
                      'Value beer (boo)hoo)')

    # String function.
    v = textfsm.TextFSMValue(options_class=textfsm.TextFSMOptions)
    v.Parse('Value Required beer (boo(hoo))')
    self.assertEqual(str(v), 'Value Required beer (boo(hoo))')
    v = textfsm.TextFSMValue(options_class=textfsm.TextFSMOptions)
    v.Parse(
        r'Value Required,Filldown beer (bo\S+(hoo))')
    self.assertEqual(str(v), r'Value Required,Filldown beer (bo\S+(hoo))')
예제 #2
0
 def testFSMValue(self):
     # Check basic line is parsed.
     line = 'Value beer (\\S+Δ)'
     v = textfsm.TextFSMValue()
     v.Parse(line)
     self.assertEqual(v.name, 'beer')
     self.assertEqual(v.regex, '(\\S+Δ)')
     self.assertEqual(v.template, '(?P<beer>\\S+Δ)')
     self.assertFalse(v.options)