def setup(self): runner = self.runner feature = self.feature scenario = self.scenario tags = feature.tags + scenario.tags row = getattr(scenario, '_row', None) if row is not None: runner.context._set_root_attribute('active_outline', row) runner.context._push() runner.context.scenario = scenario # current tags as a set runner.context.tags = set(tags) with runner.fixture_context(self._request): # Ensure scoped fixtures are run in the correct behave context self._setup_fixtures() for tag in scenario.tags: runner.run_hook('before_tag', runner.context, tag) runner.run_hook('before_scenario', runner.context, scenario) for step in scenario: step.match = runner.step_registry.find_match(step) if step.match is None: self.undefined.append(step) step.status = 'undefined'
def teardown(self): runner = self.runner feature = self.feature with runner.fixture_context(self._request): runner.run_hook('after_feature', runner.context, feature) for tag in feature.tags: runner.run_hook('after_tag', runner.context, tag) runner.context._pop()
def teardown(self): runner = self.runner scenario = self.scenario #for step in self.undefined: # runner.undefined.append(step) with runner.fixture_context(self._request): runner.run_hook('after_scenario', runner.context, scenario) for tag in scenario.tags: runner.run_hook('after_tag', runner.context, tag) runner.context._pop() runner.context._set_root_attribute('active_outline', None)
def setup(self): runner = self.runner feature = self.feature runner.feature = feature with runner.fixture_context(self._request): # Ensure that before_all / after_all get called runner.getfixture('context') self._setup_fixtures('session') runner.context._push() runner.context.feature = feature # current tags as a set runner.context.tags = set(feature.tags) with runner.fixture_context(self._request): # Ensure scoped fixtures are run in the correct behave context self._setup_fixtures() for tag in feature.tags: runner.run_hook('before_tag', runner.context, tag) runner.run_hook('before_feature', runner.context, feature)
def context(request): runner = request.session.config.pluginmanager.getplugin('bdd') context = runner.context # Hooks are called here so they only run when bdd tests are selected @request.addfinalizer def after_all(): with runner.fixture_context(request): runner.run_hook('after_all', context) with runner.fixture_context(request): runner.run_hook('before_all', context) return context
def runtest(self): runner = self.runner step = self.step match = step.match if step.text: runner.context.text = step.text if step.table: runner.context.table = step.table try: with runner.fixture_context(self._request): match.run(runner.context) step.status = 'passed' except Exception: step.status = 'failed' self.parent.run_steps = False runner.context._set_root_attribute('failed', True) raise
def setup(self): runner = self.runner step = self.step match = step.match runner.context.step = step if match is None: self.parent.run_steps = False pytest.skip('No match') return if not self.parent.run_steps: pytest.skip('Skipped') return with runner.fixture_context(self._request): self._setup_fixtures() runner.run_hook('before_step', runner.context, self)
def teardown(self): runner = self.runner step = self.step with runner.fixture_context(self._request): runner.run_hook('after_step', runner.context, step)
def after_all(): with runner.fixture_context(request): runner.run_hook('after_all', context)