Esempio n. 1
0
 def _formatter(self, stream, config, tag_counts=None):
     if tag_counts is None: tag_counts = {}
     f = formatters.get_formatter(config, stream)
     f.uri('<string>')
     f = tag_count.TagCountFormatter(f, tag_counts)
     f.uri('<string>')
     return f
Esempio n. 2
0
    def run_with_paths(self):
        """
        overloading this so i can use HackedContext
        """
        self.context = HackedContext(self)
        self.context.listeners = self.listeners
        self.context.webdriver_url = self.webdriver_url
        self.context.webdriver_processor = self.webdriver_processor
        self.load_hooks()
        self.load_step_definitions()

        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        # self.setup_capture()
        # self.run_hook('before_all', self.context)

        # -- STEP: Parse all feature files (by using their file location).
        feature_locations = [filename for filename in self.feature_locations()
                             if not self.config.exclude(filename)]
        features = parse_features(feature_locations, language=self.config.lang)
        self.features.extend(features)

        # -- STEP: Run all features.
        stream_openers = self.config.outputs
        self.formatters = formatters.get_formatter(self.config, stream_openers)
        return self.run_model()
Esempio n. 3
0
 def _formatter(self, stream, config, tag_counts=None):
     if tag_counts is None: tag_counts = {}
     f = formatters.get_formatter(config, stream)
     f.uri('<string>')
     f = tag_count.TagCountFormatter(f, tag_counts)
     f.uri('<string>')
     return f
Esempio n. 4
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()
        context = self.context = Context(self)
        assert not self.aborted
        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        self.setup_capture()
        stream_openers = self.config.outputs
        failed_count = 0

        self.run_hook('before_all', context)

        # -- STEP: Parse all feature files (by using their file location).
        feature_locations = [ filename for filename in self.feature_locations()
                                    if not self.config.exclude(filename) ]
        features = parse_features(feature_locations, language=self.config.lang)
        self.features.extend(features)

        # -- STEP: Run all features.
        self.formatters = formatters.get_formatter(self.config, stream_openers)
        undefined_steps_initial_size = len(self.undefined)
        run_feature = True
        for feature in features:
            if run_feature:
                try:
                    self.feature = feature
                    for formatter in self.formatters:
                        formatter.uri(feature.filename)

                    failed = feature.run(self)
                    if failed:
                        failed_count += 1
                        if self.config.stop or self.aborted:
                            # -- FAIL-EARLY: After first failure.
                            run_feature = False
                except KeyboardInterrupt:
                    self.aborted = True
                    failed_count += 1
                    run_feature = False
        
            # -- ALWAYS: Report run/not-run feature to reporters.
            # REQUIRED-FOR: Summary to keep track of untested features.
            for reporter in self.config.reporters:
                reporter.feature(feature)

        # -- AFTER-ALL:
        if self.aborted:
            print "\nABORTED: By user."
        for formatter in self.formatters:
            formatter.close()
        self.run_hook('after_all', context)
        for reporter in self.config.reporters:
            reporter.end()
        # if self.aborted:
        #     print "\nABORTED: By user."

        failed = ((failed_count > 0) or self.aborted or
                  (len(self.undefined) > undefined_steps_initial_size))
        return failed
Esempio n. 5
0
    def worker(self, proc_number):
        while 1:
            try:
                joblist_index = self.joblist_index_queue.get_nowait()
            except (RuntimeError, TypeError, NameError):

                break
            current_job = self.joblist[joblist_index]
            writebuf = StringIO.StringIO()
            self.setfeature(current_job)
            self.config.outputs = []
            self.config.outputs.append(StreamOpener(stream=writebuf))

            stream_openers = self.config.outputs

            self.formatters = formatters.get_formatter(self.config,
                                                       stream_openers)

            for formatter in self.formatters:
                formatter.uri(current_job.filename)

            start_time = time.strftime("%Y-%m-%d %H:%M:%S")
            current_job.run(self)
            end_time = time.strftime("%Y-%m-%d %H:%M:%S")

            sys.stderr.write(current_job.status[0] + " ")

            if current_job.type == 'feature':
                for reporter in self.config.reporters:
                    reporter.feature(current_job)

            job_report_text = self.generatereport(proc_number, current_job,
                                                  start_time, end_time,
                                                  writebuf)

            if job_report_text:
                results = {}
                results['steps_passed'] = 0
                results['steps_failed'] = 0
                results['steps_skipped'] = 0
                results['steps_undefined'] = 0
                results['steps_untested'] = 0
                results['jobtype'] = current_job.type
                results['reportinginfo'] = job_report_text
                results['status'] = current_job.status
                if current_job.type != 'feature':
                    results['uniquekey'] = \
                        current_job.filename + current_job.feature.name
                else:
                    results['scenarios_passed'] = 0
                    results['scenarios_failed'] = 0
                    results['scenarios_skipped'] = 0
                    self.countscenariostatus(current_job, results)
                self.countstepstatus(current_job, results)
                if current_job.type != 'feature' and \
                        getattr(self.config, 'junit'):
                    results['junit_report'] = \
                        self.generate_junit_report(current_job, writebuf)
                self.resultsqueue.put(results)
Esempio n. 6
0
    def run_with_paths(self):
        context = self.context = Context(self)
        self.load_hooks()
        self.load_step_definitions()
        assert not self.aborted
        stream_openers = self.config.outputs
        failed_count = 0

        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        self.setup_capture()
        self.run_hook('before_all', context)

        # -- STEP: Parse all feature files (by using their file location).
        feature_locations = [ filename for filename in self.feature_locations()
                                    if not self.config.exclude(filename) ]
        features = parse_features(feature_locations, language=self.config.lang)
        self.features.extend(features)

        # -- STEP: Run all features.
        self.formatters = formatters.get_formatter(self.config, stream_openers)
        undefined_steps_initial_size = len(self.undefined)
        run_feature = True
        for feature in features:
            if run_feature:
                try:
                    self.feature = feature
                    for formatter in self.formatters:
                        formatter.uri(feature.filename)

                    failed = feature.run(self)
                    if failed:
                        failed_count += 1
                        if self.config.stop or self.aborted:
                            # -- FAIL-EARLY: After first failure.
                            run_feature = False
                except KeyboardInterrupt:
                    self.aborted = True
                    failed_count += 1
                    run_feature = False

            # -- ALWAYS: Report run/not-run feature to reporters.
            # REQUIRED-FOR: Summary to keep track of untested features.
            for reporter in self.config.reporters:
                reporter.feature(feature)

        # -- AFTER-ALL:
        if self.aborted:
            print "\nABORTED: By user."
        for formatter in self.formatters:
            formatter.close()
        self.run_hook('after_all', context)
        for reporter in self.config.reporters:
            reporter.end()
        # if self.aborted:
        #     print "\nABORTED: By user."

        failed = ((failed_count > 0) or self.aborted or
                  (len(self.undefined) > undefined_steps_initial_size))
        return failed
Esempio n. 7
0
 def _formatter(self, file, config, counts=None):
     # pylint: disable=W0613,W0622
     #   W0613   Unused argumnet (counts, needed by derived class)
     #   W0622   Redefining built-in file
     __pychecker__ = "unusednames=counts"
     f = formatters.get_formatter(config, file)
     f.uri('<string>')
     return f
Esempio n. 8
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()

        context = self.context = Context(self)
        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        self.setup_capture()
        stream = self.config.output
        failed_count = 0

        self.run_hook('before_all', context)

        # -- STEP: Parse all feature files.
        features = self.parse_features(self.feature_files())
        self.features.extend(features)

        # -- STEP: Run all features.
        undefined_steps_initial_size = len(self.undefined)
        run_feature = True
        for feature in features:
            if run_feature:
                self.feature = feature
                self.formatter = formatters.get_formatter(self.config, stream)
                self.formatter.uri(feature.filename)

                failed = feature.run(self)
                if failed:
                    failed_count += 1
                    if self.config.stop:
                        # -- FAIL-EARLY: After first failure.
                        run_feature = False

                self.formatter.close()

            # -- ALWAYS: Report run/not-run feature to reporters.
            # REQUIRED-FOR: Summary to keep track of untested features.
            for reporter in self.config.reporters:
                reporter.feature(feature)

        self.run_hook('after_all', context)
        for reporter in self.config.reporters:
            reporter.end()

        failed = ((failed_count > 0) or
                  (len(self.undefined) > undefined_steps_initial_size))
        return failed
Esempio n. 9
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()

        context = self.context = Context(self)
        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        self.setup_capture()
        stream = self.config.output
        failed_count = 0

        self.run_hook('before_all', context)

        # -- STEP: Parse all feature files.
        features = self.parse_features(self.feature_files())
        self.features.extend(features)

        # -- STEP: Run all features.
        undefined_steps_initial_size = len(self.undefined)
        run_feature = True
        for feature in features:
            if run_feature:
                self.feature = feature
                self.formatter = formatters.get_formatter(self.config, stream)
                self.formatter.uri(feature.filename)

                failed = feature.run(self)
                if failed:
                    failed_count += 1
                    if self.config.stop:
                        # -- FAIL-EARLY: After first failure.
                        run_feature = False

                self.formatter.close()

            # -- ALWAYS: Report run/not-run feature to reporters.
            # REQUIRED-FOR: Summary to keep track of untested features.
            for reporter in self.config.reporters:
                reporter.feature(feature)

        self.run_hook('after_all', context)
        for reporter in self.config.reporters:
            reporter.end()

        failed = ((failed_count > 0)
                  or (len(self.undefined) > undefined_steps_initial_size))
        return failed
Esempio n. 10
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()

        context = self.context = Context(self)
        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        self.setup_capture()
        stream = self.config.output
        failed = False
        failed_count = 0

        self.run_hook('before_all', context)

        for filename in self.feature_files():
            if self.config.exclude(filename):
                continue

            feature = parser.parse_file(os.path.abspath(filename),
                                        language=self.config.lang)
            if not feature:
                # -- CORNER-CASE: Feature file without any feature(s).
                continue
            self.features.append(feature)
            self.feature = feature

            self.formatter = formatters.get_formatter(self.config, stream)
            self.formatter.uri(filename)

            failed = feature.run(self)
            if failed:
                failed_count += 1

            self.formatter.close()
            for reporter in self.config.reporters:
                reporter.feature(feature)

            if failed and self.config.stop:
                break

        self.run_hook('after_all', context)
        for reporter in self.config.reporters:
            reporter.end()

        failed = (failed_count > 0)
        return failed
Esempio n. 11
0
    def run_with_paths(self):
        self.context = Context(self)
        self.load_hooks()
        self.load_step_definitions()

        # -- ENSURE: context.execute_steps() works in weird cases (hooks, ...)
        # self.setup_capture()
        # self.run_hook('before_all', self.context)

        # -- STEP: Parse all feature files (by using their file location).
        feature_locations = [ filename for filename in self.feature_locations()
                                    if not self.config.exclude(filename) ]
        features = parse_features(feature_locations, language=self.config.lang)
        self.features.extend(features)

        # -- STEP: Run all features.
        stream_openers = self.config.outputs
        self.formatters = formatters.get_formatter(self.config, stream_openers)
        return self.run_model()
Esempio n. 12
0
    def run(self):

        self.context = Context(self)
        self.load_steps()

        #Parse all features
        scenarios = models.Scenario.list()

        features = []
        for scenario in scenarios:
            feature = parser.parse_feature(scenario.code, language=self.config.lang)
            features.append(feature)

        self.features.extend(features)

        #Run all features
        stream_openers = self.config.outputs
        self.formatters = formatters.get_formatter(self.config, stream_openers)
        return self.run_model()
Esempio n. 13
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()

        context = self.context = Context(self)
        stream = self.config.output
        failed = False

        self.run_hook('before_all', context)

        for filename in self.feature_files():
            if self.config.exclude(filename):
                continue

            feature = parser.parse_file(os.path.abspath(filename),
                                        language=self.config.lang)

            self.features.append(feature)
            self.feature = feature

            self.formatter = formatters.get_formatter(self.config, stream)
            self.formatter.uri(filename)

            failed |= feature.run(self)

            self.formatter.close()
            stream.write('\n')

            [reporter.feature(feature) for reporter in self.config.reporters]

            if failed and self.config.stop:
                break

        self.run_hook('after_all', context)

        [reporter.end() for reporter in self.config.reporters]

        return failed
Esempio n. 14
0
    def run_with_paths(self):
        self.load_hooks()
        self.load_step_definitions()

        context = self.context = Context(self)
        stream = self.config.output
        failed = False

        self.run_hook('before_all', context)

        for filename in self.feature_files():
            if self.config.exclude(filename):
                continue

            feature = parser.parse_file(os.path.abspath(filename),
                                        language=self.config.lang)

            self.features.append(feature)
            self.feature = feature

            self.formatter = formatters.get_formatter(self.config, stream)
            self.formatter.uri(filename)

            failed = feature.run(self)

            self.formatter.close()
            stream.write('\n')

            [reporter.feature(feature) for reporter in self.config.reporters]

            if failed and self.config.stop:
                break

        self.run_hook('after_all', context)

        [reporter.end() for reporter in self.config.reporters]

        return failed
Esempio n. 15
0
 def _formatters(self, file, config):
     stream_opener = StreamOpener(stream=file)
     fs = formatters.get_formatter(config, [stream_opener])
     for f in fs:
         f.uri('<string>')
     return fs
Esempio n. 16
0
 def _formatter(self, file, config):
     f = formatters.get_formatter(config, file)
     f.uri('<string>')
     return f
Esempio n. 17
0
 def _formatter(self, file, config):
     f = formatters.get_formatter(config, file)
     f.uri('<string>')
     return f
Esempio n. 18
0
 def _formatters(self, file, config):
     stream_opener = StreamOpener(stream=file)
     fs = formatters.get_formatter(config, [stream_opener])
     for f in fs:
         f.uri('<string>')
     return fs