Пример #1
0
    def test_filter_context_4(self):
        
        db = LatexContextDb()
        db.set_unknown_macro_spec(MacroSpec('<macro unknown>'))
        db.set_unknown_environment_spec(EnvironmentSpec('<env unknown>'))
        db.add_context_category('cat1',
                                [ std_macro('aaa', '{'), std_macro('bbb', '[{[') ],
                                [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ])
        db.add_context_category('cat2',
                                [ std_macro('aaa', '[{'), std_macro('ccc', None) ],
                                [ std_environment('eaaa', '[{'), std_environment('eccc', None) ])
        db.add_context_category('cat3',
                                [ std_macro('ccc', '*{'), std_macro('ddd', '{{[') ],
                                [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ],
                                prepend=True)
        
        db2 = db.filter_context(keep_categories=['cat1', 'cat3'], exclude_categories=['cat3'],
                                keep_which=['environments'])
        # no macros should exist any longer
        self.assertEqual(db2.get_macro_spec('aaa').macroname, '<macro unknown>')
        self.assertEqual(db2.get_macro_spec('aaa').args_parser.argspec, '')
        self.assertEqual(db2.get_macro_spec('ddd').macroname, '<macro unknown>')
        self.assertEqual(db2.get_macro_spec('ddd').args_parser.argspec, '')

        # this should give 'eaaa' from cat1
        self.assertEqual(db2.get_environment_spec('eaaa').environmentname, 'eaaa')
        self.assertEqual(db2.get_environment_spec('eaaa').args_parser.argspec, '{')
        # this should no longer exist
        self.assertEqual(db2.get_environment_spec('eddd').environmentname, '<env unknown>')
        self.assertEqual(db2.get_environment_spec('eddd').args_parser.argspec, '')
Пример #2
0
    def test_filter_context_0(self):
        
        db = LatexContextDb()
        db.set_unknown_macro_spec(MacroSpec('<macro unknown>'))
        db.set_unknown_environment_spec(EnvironmentSpec('<env unknown>'))
        db.add_context_category('cat1',
                                [ std_macro('aaa', '{'), std_macro('bbb', '[{[') ],
                                [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ])
        db.add_context_category('cat2',
                                [ std_macro('aaa', '[{'), std_macro('ccc', None) ],
                                [ std_environment('eaaa', '[{'), std_environment('eccc', None) ])
        db.add_context_category('cat3',
                                [ std_macro('ccc', '*{'), std_macro('ddd', '{{[') ],
                                [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ],
                                prepend=True)
        
        db2 = db.filter_context(keep_categories=['cat1', 'cat2'])
        # this should give 'ccc' from cat2, not cat3
        self.assertEqual(db2.get_macro_spec('ccc').macroname, 'ccc')
        self.assertEqual(db2.get_macro_spec('ccc').args_parser.argspec, '')
        # this should no longer exist
        self.assertEqual(db2.get_macro_spec('ddd').macroname, '<macro unknown>')
        self.assertEqual(db2.get_macro_spec('ddd').args_parser.argspec, '')

        # this should give 'eccc' from cat2, not cat3
        self.assertEqual(db2.get_environment_spec('eccc').environmentname, 'eccc')
        self.assertEqual(db2.get_environment_spec('eccc').args_parser.argspec, '')
        # this should no longer exist
        self.assertEqual(db2.get_environment_spec('eddd').environmentname, '<env unknown>')
        self.assertEqual(db2.get_environment_spec('eddd').args_parser.argspec, '')

        # "unknowns" should be preserved
        self.assertEqual(db2.unknown_macro_spec, db.unknown_macro_spec)
        self.assertEqual(db2.unknown_environment_spec, db.unknown_environment_spec)
        self.assertEqual(db2.unknown_specials_spec, db.unknown_specials_spec)
Пример #3
0
    def test_can_get_environment_spec(self):

        db = LatexContextDb()
        db.set_unknown_environment_spec(EnvironmentSpec('<unknown>'))
        db.add_context_category('cat1', [],
                                [ std_environment('eaaa', '{'), std_environment('ebbb', '[{[') ])
        db.add_context_category('cat2', [],
                                [ std_environment('eaaa', '[{'), std_environment('eccc', None) ])
        db.add_context_category('cat3', [],
                                [ std_environment('eccc', '*{'), std_environment('eddd', '{{[') ],
                                prepend=True)
        
        self.assertEqual(list(db.categories()), ['cat3', 'cat1', 'cat2'])

        self.assertEqual(db.get_environment_spec('eaaa').environmentname, 'eaaa')
        self.assertEqual(db.get_environment_spec('eaaa').args_parser.argspec, '{')

        self.assertEqual(db.get_environment_spec('ebbb').environmentname, 'ebbb')
        self.assertEqual(db.get_environment_spec('ebbb').args_parser.argspec, '[{[')

        self.assertEqual(db.get_environment_spec('eccc').environmentname, 'eccc')
        self.assertEqual(db.get_environment_spec('eccc').args_parser.argspec, '*{')

        self.assertEqual(db.get_environment_spec('eddd').environmentname, 'eddd')
        self.assertEqual(db.get_environment_spec('eddd').args_parser.argspec, '{{[')

        # default for unknown
        self.assertEqual(db.get_environment_spec('nonexistent').environmentname, '<unknown>')
        self.assertEqual(db.get_environment_spec('nonexistent').args_parser.argspec, '')
Пример #4
0
 def test_idiom_4(self):
     spec = std_environment(
         std_environment('environ', '{*{{{', is_math_mode=True))
     self.assertEqual(spec.environmentname, 'environ')
     self.assertEqual(spec.args_parser.argspec, '{*{{{')
     self.assertEqual(spec.is_math_mode, True)
Пример #5
0
 def test_idiom_3b(self):
     spec = std_environment(('environ', None, '{{{{'), )
     self.assertEqual(spec.environmentname, 'environ')
     self.assertEqual(spec.args_parser.argspec, '{{{{')
     self.assertEqual(spec.is_math_mode, False)
Пример #6
0
 def test_idiom_0c(self):
     spec = std_environment('environ', '[{')
     self.assertEqual(spec.environmentname, 'environ')
     self.assertEqual(spec.args_parser.argspec, '[{')
     self.assertEqual(spec.is_math_mode, False)