def _report_traceback(self, exc_info, tb_label='traceback'): id_gen = self._traceback_id_gens.setdefault( tb_label, itertools.count(0)) tb_id = advance_iterator(id_gen) if tb_id: tb_label = '%s-%d' % (tb_label, tb_id) self.addDetail(tb_label, content.TracebackContent(exc_info, self))
def getUniqueInteger(self): """Get an integer unique to this test. Returns an integer that is guaranteed to be unique to this instance. Use this when you need an arbitrary integer in your test, or as a helper for custom anonymous factory methods. """ return advance_iterator(self._unique_id_gen)
def combine_details(source_details, target_details): """Add every value from source to target deduping common keys.""" for name, content_object in source_details.items(): new_name = name disambiguator = itertools.count(1) while new_name in target_details: new_name = '%s-%d' % (name, advance_iterator(disambiguator)) name = new_name target_details[name] = content_object
def _report_traceback(self, exc_info, tb_label='traceback'): id_gen = self._traceback_id_gens.setdefault( tb_label, itertools.count(0)) while True: tb_id = advance_iterator(id_gen) if tb_id: tb_label = '%s-%d' % (tb_label, tb_id) if tb_label not in self.getDetails(): break self.addDetail(tb_label, content.TracebackContent( exc_info, self, capture_locals=getattr( self, '__testtools_tb_locals__', False)))
def gather_details(source_dict, target_dict): """Merge the details from `source_dict` into `target_dict`. :param source_dict: A dictionary of details will be gathered. :param target_dict: A dictionary into which details will be gathered. """ for name, content_object in source_dict.items(): new_name = name disambiguator = itertools.count(1) while new_name in target_dict: new_name = "%s-%d" % (name, advance_iterator(disambiguator)) name = new_name target_dict[name] = _copy_content(content_object)
def gather_details(source_dict, target_dict): """Merge the details from ``source_dict`` into ``target_dict``. :param source_dict: A dictionary of details will be gathered. :param target_dict: A dictionary into which details will be gathered. """ for name, content_object in source_dict.items(): new_name = name disambiguator = itertools.count(1) while new_name in target_dict: new_name = '%s-%d' % (name, advance_iterator(disambiguator)) name = new_name target_dict[name] = _copy_content(content_object)
def _gather_details(self, getDetails): """Merge the details from getDetails() into self.getDetails().""" details = getDetails() my_details = self.getDetails() for name, content_object in details.items(): new_name = name disambiguator = itertools.count(1) while new_name in my_details: new_name = '%s-%d' % (name, advance_iterator(disambiguator)) name = new_name content_bytes = list(content_object.iter_bytes()) content_callback = lambda:content_bytes self.addDetail(name, content.Content(content_object.content_type, content_callback))
def gather_details(source_dict, target_dict): """Merge the details from ``source_dict`` into ``target_dict``. ``gather_details`` evaluates all details in ``source_dict``. Do not use it if the details are not ready to be evaluated. :param source_dict: A dictionary of details will be gathered. :param target_dict: A dictionary into which details will be gathered. """ for name, content_object in source_dict.items(): new_name = name disambiguator = itertools.count(1) while new_name in target_dict: new_name = '%s-%d' % (name, advance_iterator(disambiguator)) name = new_name target_dict[name] = _copy_content(content_object)
def gather_details(source_dict, target_dict): """Merge the details from ``source_dict`` into ``target_dict``. ``gather_details`` evaluates all details in ``source_dict``. Do not use it if the details are not ready to be evaluated. :param source_dict: A dictionary of details will be gathered. :param target_dict: A dictionary into which details will be gathered. """ for name, content_object in source_dict.items(): new_name = name disambiguator = itertools.count(1) while new_name in target_dict: new_name = "%s-%d" % (name, advance_iterator(disambiguator)) name = new_name target_dict[name] = _copy_content(content_object)