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)
def test_read_onPredefinedMacroIsNone_setMacroToNone(self): parser = self.parse('', MACRO=None) assert parser.macros['MACRO'] == MacroDef('MACRO', None)
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)
def test_read_onPredefinedMacroIsEmptyStr_implicitlyConvertsToNone(self): parser = self.parse('', MACRO='') assert parser.macros['MACRO'] == MacroDef('MACRO', None)
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)
def test_read_onMacro_returnsParsedMacro(self): parser = self.parse('\n\n#define MACRO 3') assert parser.macros['MACRO'] \ == MacroDef('MACRO', compile('3', '<string>', 'eval'))
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
class Container: macro = MacroDef('macro', '1')
class Container: macro = MacroDef('MACRO', valid=False)
class Container: macro = MacroDef('MACRO', None)