def test_05_output(self): """ test ouput of pending messages """ Messager.warning(u'Hello warning') Messager.info(u'Hello info') Messager.debug(u'Hello debug') Messager.error(u'Hello error') output = NamedTemporaryFile("w", delete=False) try: Messager.output(output) output.close() with open(output.name, "r") as output: self.assertEqual( output.read(), u"warning : Hello warning\n" u"comment : Hello info\n" u'debug : Hello debug\n' u'error : Hello error\n') Messager.clear() with open(output.name, "w") as output: Messager.output(output) with open(output.name, "r") as output: self.assertEqual(output.read(), "") finally: os.unlink(output.name)
def test_02_info(self): """ test info level """ Messager.info(u'Hello 世界!') json_dic = {} Messager.output_json(json_dic) self.assertEqual( json_dic, {'messages': [(u'Hello \u4e16\u754c\uff01', 'comment', 3)]})
def get_configs(directory, filename, defaultstr, minconf, sections, optional_sections): if (directory, filename) not in _GET_CONFIGS_CACHE: configstr, source = __read_first_in_directory_tree(directory, filename) if configstr is None: # didn't get one; try default dir and fall back to the default configstr = __read_or_default(filename, defaultstr) if configstr == defaultstr: Messager.info( "Project configuration: no configuration file (%s) " "found, using default." % filename, 5) source = "[default]" else: source = filename # try to parse what was found, fall back to minimal config try: configs, section_labels = __parse_configs(configstr, source, sections, optional_sections) except InvalidProjectConfigException: Messager.warning( "Project configuration: Falling back to minimal default. " "Configuration is likely wrong.", 5) configs = minconf section_labels = dict([(a, a) for a in sections]) # very, very special case processing: if we have a type # "Equiv" defined in a "relations" section that doesn't # specify a "<REL-TYPE>", automatically fill "symmetric" and # "transitive". This is to support older configurations that # rely on the type "Equiv" to identify the relation as an # equivalence. if 'relations' in configs: for r in configs['relations']: if r == cst.SEPARATOR_STR: continue if (r.storage_form() == "Equiv" and "<REL-TYPE>" not in r.special_arguments): # this was way too much noise; will only add in after # at least most configs are revised. # Messager.warning('Note: "Equiv" defined in config ' # 'without "<REL-TYPE>"; assuming ' # 'symmetric and transitive. Consider ' # 'revising config to add ' # '"<REL-TYPE>:symmetric-transitive" ' # 'to definition.') r.special_arguments["<REL-TYPE>"] = [ "symmetric", "transitive" ] _GET_CONFIGS_CACHE[(directory, filename)] = (configs, section_labels) return _GET_CONFIGS_CACHE[(directory, filename)]