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
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()
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
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)
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
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
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
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
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()
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()
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
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
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
def _formatter(self, file, config): f = formatters.get_formatter(config, file) f.uri('<string>') return f