def setUp(self): self.p = SmartLinkParser({ "m": MySmartLinkConf() })
class SmartLinkParserTest(TestCase): def setUp(self): self.p = SmartLinkParser({ "m": MySmartLinkConf() }) def testRegexp(self): m = SmartLinkParser.finder self.assertEqual( m.match("[[ Mad max ]]").group('Query').strip(), "Mad max" ) self.assertEqual( m.match("ModelName"), None ) match = m.match("[[ Mad max: beyond thunderdome | Mad max 3 ]]") self.assertEqual( match.group("Query").strip(), "Mad max: beyond thunderdome" ) self.assertEqual( match.group("VerboseText").strip(), "Mad max 3" ) self.assertEqual( match.group("ModelName"), None ) match = m.match("[[ e->Mad Max ]]") self.assertEqual( match.group("ModelName").strip(), "e" ) self.assertEqual( match.group("Query").strip(), "Mad Max" ) match = m.match("[[ Event -> Mad Max | Beyond Thunderdome Fan Convention ]]") self.assertEqual( match.group("ModelName").strip(), "Event" ) self.assertEqual( match.group("Query").strip(), "Mad Max" ) self.assertEqual( match.group("VerboseText").strip(), "Beyond Thunderdome Fan Convention" ) # First slash stops the matching self.assertEqual( m.match(r"\[[ Mad Max ]]"), None ) def testParse(self): # Test bailing out. self.assertEqual( self.p.parse(SmartLinkParser.finder.match("[[ no such object ]]")), SmartLinkConf.model_unresolved_template.render( Context(dict( verbose_text="no such object", )) ) ) # Test normal running. self.assertEqual( self.p.parse(SmartLinkParser.finder.match("[[ Mad Max ]]")), SmartLinkConf.template.render( Context(dict( verbose_text="Mad Max", obj="Object: Mad Max" )) ) )