示例#1
0
 def assert_create_as(self,
                      srccode,
                      exp_expr=None,
                      exp_params=None,
                      exp_valid=True,
                      exp_name='MACRO'):
     pyexpr = compile(exp_expr, '<string>', 'eval') if exp_expr else None
     assert MacroDef.create_from_srccode(srccode) \
            == MacroDef(exp_name, pyexpr, exp_params, exp_valid)
示例#2
0
 def test_read_onMacro_returnsParsedMacro(self):
     parser = self.parse('\n\n#define MACRO 3')
     assert parser.macros['MACRO'] \
            == MacroDef('MACRO', compile('3', '<string>', 'eval'))
示例#3
0
        class Container:
            macro = MacroDef.create_from_srccode('macro  sub_macro(3)')

            def sub_macro(cls, param):
                return param + 2
示例#4
0
 def test_init_setsAttrs(self):
     macro = MacroDef('NAME', '1 + 2', (), False)
     assert macro.name == 'NAME'
     assert macro.code == '1 + 2'
     assert macro.params == ()
     assert not macro.valid
示例#5
0
 class Container:
     strct_ptr = Mock()
     macro = MacroDef.create_from_srccode('macro strct_ptr->member')
示例#6
0
 class Container:
     macro = MacroDef.create_from_srccode('macro  constant')
     constant = 9
示例#7
0
 class Container:
     macro = MacroDef('macro', '1')
示例#8
0
 def test_read_onNonStrPredefinedMacro_implicitlyConvertToStr(self):
     parser = self.parse('', MACRO=1)
     code_obj = compile("1", '<string>', 'eval')
     assert parser.macros['MACRO'] \
            == MacroDef('MACRO', code_obj)
示例#9
0
 class Container:
     macro = MacroDef('MACRO', None)
示例#10
0
 class Container:
     macro = MacroDef('MACRO', valid=False)
示例#11
0
 class Container:
     enum = Mock()
     macro = MacroDef.create_from_srccode('macro (enum name)1')
示例#12
0
 class Container:
     union = Mock()
     macro = MacroDef.create_from_srccode('macro (union name *)1')
示例#13
0
 class Container:
     struct = Mock()
     macro = MacroDef.create_from_srccode('macro (struct name *)1')
示例#14
0
 def test_read_onPredefinedMacros_makeThemAvailableLikeUsualMacros(self):
     parser = self.parse('', MACRO='a')
     code_obj = compile("self.a", '<string>', 'eval')
     assert parser.macros['MACRO'] == MacroDef('MACRO', code_obj)
示例#15
0
 class Container:
     macro = MacroDef.create_from_srccode('macro(a, b)')
示例#16
0
 def test_read_onPredefinedMacroIsEmptyStr_implicitlyConvertsToNone(self):
     parser = self.parse('', MACRO='')
     assert parser.macros['MACRO'] == MacroDef('MACRO', None)
示例#17
0
 class Container:
     int = MagicMock()
     macro = MacroDef.create_from_srccode('macro (int*)1 * 2')
示例#18
0
 def test_read_onPredefinedMacroIsNone_setMacroToNone(self):
     parser = self.parse('', MACRO=None)
     assert parser.macros['MACRO'] == MacroDef('MACRO', None)
示例#19
0
 def test_createFromSrcCode_onStringMacroWithEscapeSeq_mustNotGenerateAnyKindOfWarning(
         self):
     with warnings.catch_warnings(record=True) as warning_list:
         MacroDef.create_from_srccode(r'MACRO  "\n"')
     assert not warning_list