コード例 #1
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_only_non_nested_simple_phrases(self):

        results = self.parser.parse("<abc>\n <def>")[1]

        self.assertEqual(len(results), 2)

        expected = [parser.Phrase(0, 4, "abc"), parser.Phrase(7, 11, "def")]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #2
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_non_nested_simple_and_argument_phrases(self):

        results = self.parser.parse("<(0)abc> <def> <(-1, -2!)ghi>")[1]

        self.assertEqual(len(results), 3)

        expected = [
            parser.Phrase(0, 4, "abc", args=[0]),
            parser.Phrase(6, 10, "def"),
            parser.Phrase(12, 16, "ghi", args=[-1, -2], override=True)
        ]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #3
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_only_non_nested_argument_phrases(self):

        results = self.parser.parse("<(+)abc><(1,2,3)def><(-1, -2!)ghi>")[1]

        self.assertEqual(len(results), 3)

        expected = [
            parser.Phrase(0, 4, "abc", increment=True),
            parser.Phrase(5, 9, "def", args=[1, 2, 3]),
            parser.Phrase(10, 14, "ghi", args=[-1, -2], override=True)
        ]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #4
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_only_nested_argument_phrases(self):

        results = self.parser.parse("<(+)<(-1!)abc> <(12345)def> ghi>")[1]

        self.assertEqual(len(results), 1)

        self.assertEqual(len(results[0].nested), 2)

        expected = [parser.Phrase(0, 16, "<abc> <def> ghi", increment=True)]

        expected[0].nested = [
            parser.Phrase(0, 4, "abc", args=[-1], override=True),
            parser.Phrase(6, 10, "def", args=[12345])
        ]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #5
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_only_nested_simple_phrase(self):

        results = self.parser.parse("<<abc> <def> ghi>")[1]

        self.assertEqual(len(results), 1)

        self.assertEqual(len(results[0].nested), 2)

        results = [results[0], results[0].nested[0], results[0].nested[1]]

        expected = [
            parser.Phrase(0, 16, "<abc> <def> ghi"),
            parser.Phrase(0, 4, "abc"),
            parser.Phrase(6, 10, "def")
        ]

        expected[0].nested = expected[1:]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #6
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_parses_nested_simple_and_argument_phrases(self):

        results = self.parser.parse("jkl < <(0) <(-1!)abc> <def> ghi> >")[1]

        self.assertEqual(len(results), 1)

        self.assertEqual(len(results[0].nested), 1)

        self.assertEqual(len(results[0].nested[0].nested), 2)

        expected = [parser.Phrase(4, 25, " < <abc> <def> ghi> ")]

        expected[0].nested = [
            parser.Phrase(1, 18, " <abc> <def> ghi", args=[0])
        ]

        expected[0].nested[0].nested = [
            parser.Phrase(1, 5, "abc", args=[-1], override=True),
            parser.Phrase(7, 11, "def")
        ]

        for phrase, wanted in zip(results, expected):
            self.assertEqual(phrase, wanted)
コード例 #7
0
ファイル: test_parser.py プロジェクト: chubbymaggie/ecstasy
    def test_recognizes_invalid_argument(self):

        self.assertRaises(errors.EcstasyError, self.parser.get_flags,
                          [parser.Phrase()])

        self.assertRaises(errors.EcstasyError, self.parser.get_flags, [None])