示例#1
0
 def _printErrorList(self, flavour, errors):
     for test, err in errors:
         self.stream.writeln(self.separator1)
         self.stream.writeln("%s: %s" %
                             (flavour, self.getDescription(test)))
         self.stream.writeln(self.separator2)
         self.stream.writeln("%s" % unicode_to_readable(err))
示例#2
0
文件: report.py 项目: toshka/ttoolly
    def _report_testcase(self, testCase, test_cases_list):
        """ Return a list with test name or desciption, status and error
            msg if fail or skip. """
        full_name = testCase.test_id
        class_doc = testCase.test_method.__class__.__doc__
        if class_doc:
            full_name += '<br>'.join([
                line.strip() for line in to_bytes(class_doc).decode(
                    'utf-8').strip('<br> ').splitlines()
            ])
        doc = getattr(testCase.test_method, '_testMethodDoc', '')
        if doc:
            full_name += '<br>  ' + '<br>  '.join([
                line.strip() for line in to_bytes(doc).decode('utf-8').replace(
                    '@note: ', '').strip('\n').splitlines()
            ])

        status = ('success', 'danger', 'warning', 'info')[testCase.outcome - 1]

        error_type = ""
        if testCase.outcome != testCase.SKIP and testCase.outcome != testCase.SUCCESS:
            error_type = testCase.err[0].__name__
            etype, value, tb = testCase.err
            error_message = ''.join([
                force_text(el) for el in traceback.format_exception(
                    etype, value, tb, limit=None)
            ])
            error_message = unicode_to_readable(error_message)
        else:
            error_message = testCase.err
        error_message = jinja2.filters.do_mark_safe('<pre>%s</pre>' %
                                                    error_message)

        test_cases_list.append([full_name, status, error_type, error_message])
示例#3
0
    def handle(self, *args, **kwargs):
        path_to_file = kwargs.get('path_to_file')

        labels = kwargs.get('labels')
        if len(labels) > 1 and kwargs.get('pks'):
            sys.exit("Multiple models labels can't be used with --pk arguments")
        objects_list = []
        for label in labels:
            app_label, model_label = label.split('.')
            obj_model = get_model(app_label, model_label)

            qs = obj_model.objects.all()
            if kwargs.get('pks'):
                qs = qs.filter(pk__in=kwargs.get('pks'))
            objects_list.extend(qs)

            if 'PolymorphicModelBase' in [b.__name__ for b in obj_model.__class__.__bases__]:
                polymorphic_model = obj_model.polymorphic_ctype.field.model
                polymorphic_model = polymorphic_model if polymorphic_model != obj_model else obj_model
                base_objects_qs = polymorphic_model.base_objects.filter(
                    pk__in=qs.values_list('pk', flat=True))
                objects_list.extend(base_objects_qs)

        text = unicode_to_readable(serializers.serialize('json',
                                                         objects_list, indent=4,
                                                         use_natural_foreign_keys=True))

        with open(path_to_file, 'ab') as f:
            f.write(text.encode('utf-8'))
示例#4
0
    def handle(self, *label, **kwargs):
        path_to_file = kwargs.get('path_to_file')
        app_label, model_label = kwargs.get('label').split('.')
        obj_model = get_model(app_label, model_label)
        obj = generate_random_obj(obj_model,
                                  filename=kwargs.get('path_to_random_file'),
                                  with_save=False)
        """Объект создается без сохранения, поэтому исключаем m2m"""
        fields = [
            f.name for f in set(obj_model._meta.fields).difference(
                obj_model._meta.many_to_many)
        ]

        text = unicode_to_readable(
            serializers.serialize('json', [
                obj,
            ],
                                  indent=4,
                                  use_natural_foreign_keys=True,
                                  fields=fields))

        if path_to_file:
            with open(path_to_file, 'ab') as f:
                f.write(text.encode('utf-8'))
        else:
            print(text)
示例#5
0
    def _report_testcase(self, testCase, test_cases_list):
        """ Return a list with test name or desciption, status and error
            msg if fail or skip. """
        full_name = testCase.test_id
        class_doc = testCase.test_method.__class__.__doc__
        if class_doc:
            full_name += '<br>'.join([line.strip() for line in
                                      to_bytes(class_doc).decode('utf-8').strip('<br> ').splitlines()])
        doc = getattr(testCase.test_method, '_testMethodDoc', '')
        if doc:
            full_name += '<br>  ' + '<br>  '.join([line.strip() for line in
                                                   to_bytes(doc).decode('utf-8').replace('@note: ', '').strip('\n').splitlines()])

        status = ('success', 'danger', 'warning', 'info')[testCase.outcome - 1]

        error_type = ""
        if testCase.outcome != testCase.SKIP and testCase.outcome != testCase.SUCCESS:
            error_type = testCase.err[0].__name__
            etype, value, tb = testCase.err
            error_message = ''.join([force_text(el) for el in traceback.format_exception(etype, value, tb, limit=None)])
            error_message = unicode_to_readable(error_message)
        else:
            error_message = testCase.err
        error_message = jinja2.filters.do_mark_safe('<pre>%s</pre>' % error_message)

        test_cases_list.append([full_name, status, error_type, error_message])
示例#6
0
 def handle(self, *label, **kwargs):
     path_to_file = kwargs.get('path_to_file')
     app_label, model_label = label[0].split('.')
     obj_model = get_model(app_label, model_label)
     text = unicode_to_readable(serializers.serialize('json',
                 obj_model.objects.all(), indent=4, use_natural_keys=True))
     f = open(path_to_file, 'a')
     f.write(text)
     f.close()
示例#7
0
 def handle(self, *label, **kwargs):
     path_to_file = kwargs.get('path_to_file')
     app_label, model_label = label[0].split('.')
     obj_model = get_model(app_label, model_label)
     text = unicode_to_readable(
         serializers.serialize('json',
                               obj_model.objects.all(),
                               indent=4,
                               use_natural_keys=True))
     f = open(path_to_file, 'a')
     f.write(text)
     f.close()
 def handle(self, *label, **kwargs):
     path_to_file = kwargs.get('path_to_file')
     app_label, model_label = label[0].split('.')
     obj_model = get_model(app_label, model_label)
     obj = generate_random_obj(obj_model, filename=kwargs.get('path_to_random_file'), with_save=False)
     text = unicode_to_readable(serializers.serialize('json', [obj, ], indent=4, use_natural_keys=True))
     if path_to_file:
         f = open(path_to_file, 'a')
         f.write(text)
         f.close()
     else:
         print text
    def handle(self, *label, **kwargs):
        path_to_file = kwargs.get('path_to_file')
        app_label, model_label = kwargs.get('label').split('.')
        obj_model = get_model(app_label, model_label)
        obj = generate_random_obj(obj_model, filename=kwargs.get('path_to_random_file'), with_save=False)

        """Объект создается без сохранения, поэтому исключаем m2m"""
        fields = [f.name for f in set(obj_model._meta.fields).difference(obj_model._meta.many_to_many)]

        text = unicode_to_readable(
            serializers.serialize('json', [obj, ], indent=4, use_natural_foreign_keys=True, fields=fields))

        if path_to_file:
            with open(path_to_file, 'ab') as f:
                f.write(text.encode('utf-8'))
        else:
            print(text)
示例#10
0
    def handle(self, *label, **kwargs):
        path_to_file = kwargs.get('path_to_file')
        app_label, model_label = kwargs.get('label').split('.')
        obj_model = get_model(app_label, model_label)

        qs = obj_model.objects.all()
        if kwargs.get('pks'):
            qs = qs.filter(pk__in=kwargs.get('pks'))
        objects_list = list(qs)

        if 'PolymorphicModelBase' in [b.__name__ for b in obj_model.__class__.__bases__]:
            polymorphic_model = obj_model.polymorphic_ctype.field.model
            polymorphic_model = polymorphic_model if polymorphic_model != obj_model else obj_model
            base_objects_qs = polymorphic_model.base_objects.filter(
                pk__in=qs.values_list('pk', flat=True))
            objects_list.extend(base_objects_qs)
        text = unicode_to_readable(serializers.serialize('json',
                                                         objects_list, indent=4,
                                                         use_natural_foreign_keys=True))

        with open(path_to_file, 'ab') as f:
            f.write(text.encode('utf-8'))