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 __init__(self, directory): # debugging (note: latter test for windows paths) if directory[:1] != "/" and not re.search(r'^[a-zA-Z]:\\', directory): Messager.debug( "Project config received relative directory ('%s'), " "configuration may not be found." % directory, duration=-1) self.directory = directory
def test_04_debug(self): """ test debug level """ Messager.debug(u'Hello 世界!') json_dic = {} Messager.output_json(json_dic) self.assertEqual( json_dic, {'messages': [(u'Hello \u4e16\u754c\uff01', 'debug', 3)]})
def __init__(self, terms, args=None): if args is None: args = [] self.terms, self.args = terms, args if not terms or len([t for t in terms if t == ""]) != 0: Messager.debug("Empty term in configuration", duration=-1) raise InvalidProjectConfigException # unused if any of the terms marked with "!" self.unused = False for i in range(len(self.terms)): if self.terms[i][0] == "!": self.terms[i] = self.terms[i][1:] self.unused = True self.children = [] # The first of the listed terms is used as the primary term for # storage (excepting for "special" config-only types). Due to # format restrictions, this form must not have e.g. space or # various special characters. if self.terms[0] not in cst.SPECIAL_RELATION_TYPES: self.__primary_term = normalize_to_storage_form(self.terms[0]) else: self.__primary_term = self.terms[0] # TODO: this might not be the ideal place to put this warning if self.__primary_term != self.terms[0]: Messager.warning( "Note: in configuration, term '%s' is not " "appropriate for storage (should match " "'^[a-zA-Z0-9_-]*$'), using '%s' instead. " "(Revise configuration file to get rid of " "this message. Terms other than the first are " "not subject to this restriction.)" % (self.terms[0], self.__primary_term), -1) self.terms[0] = self.__primary_term # TODO: cleaner and more localized parsing self.arguments = {} self.special_arguments = {} self.arg_list = [] self.arg_min_count = {} self.arg_max_count = {} self.keys_by_type = {} for a in self.args: self._process_arg(a, args)