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))')
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)