예제 #1
0
 def setUp(self):
     self.p = SmartLinkParser({
         "m": MySmartLinkConf()
     })
예제 #2
0
 def setUp(self):
     self.p = SmartLinkParser({
         "m": MySmartLinkConf()
     })
예제 #3
0
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"
                ))
            )
        )