Exemple #1
0
    def test_run_should_pass_when_all_examples_pass(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        eq_(resultFailed, False)
Exemple #2
0
    def test_run_calls_run_on_each_generated_scenario(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        runner.context = Mock()

        outline.run(runner)

        for s in outline._scenarios:
            s.run.assert_called_with(runner)
Exemple #3
0
    def test_run_calls_run_on_each_generated_scenario(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        runner.context = Mock()

        outline.run(runner)

        for s in outline._scenarios:
            s.run.assert_called_with(runner)
Exemple #4
0
    def test_run_should_pass_when_all_examples_pass(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        eq_(resultFailed, False)
Exemple #5
0
    def test_run_should_fail_when_last_examples_fails(self):
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        failed = True
        # pylint: disable=protected-access
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = not failed
        outline._scenarios[1].run.return_value = failed

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        eq_(resultFailed, True)
Exemple #6
0
    def test_run_stops_on_first_failure_if_requested(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = True

        runner = Mock()
        runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        outline.run(runner)

        outline._scenarios[0].run.assert_called_with(runner)
        assert not outline._scenarios[1].run.called
Exemple #7
0
    def test_run_should_fail_when_last_examples_fails(self):
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        failed = True
        # pylint: disable=protected-access
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = not failed
        outline._scenarios[1].run.return_value = failed

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        eq_(resultFailed, True)
Exemple #8
0
    def test_run_stops_on_first_failure_if_requested(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = True

        runner = Mock()
        runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        outline.run(runner)

        outline._scenarios[0].run.assert_called_with(runner)
        assert not outline._scenarios[1].run.called
Exemple #9
0
    def test_run_should_fail_when_first_examples_fails(self):
        outline = ScenarioOutline("foo.feature", 17, u"Scenario Outline",
                                  u"foo")
        failed = True
        # pylint: disable=protected-access
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = failed
        outline._scenarios[1].run.return_value = not failed

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        assert resultFailed is True
Exemple #10
0
    def test_run_should_fail_when_first_examples_fails(self):
        outline = ScenarioOutline("foo.feature", 17, u"Scenario Outline",
                                  u"foo")
        failed = True
        # pylint: disable=protected-access
        outline._scenarios = [Mock(), Mock()]
        outline._scenarios[0].run.return_value = failed
        outline._scenarios[1].run.return_value = not failed

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        resultFailed = outline.run(runner)
        assert resultFailed is True
Exemple #11
0
    def test_run_sets_context_variable_for_outline(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        outline.run(runner)

        eq_(context._set_root_attribute.call_args_list, [
            (('active_outline', outline._scenarios[0]._row), {}),
            (('active_outline', outline._scenarios[1]._row), {}),
            (('active_outline', outline._scenarios[2]._row), {}),
            (('active_outline', None), {}),
        ])
Exemple #12
0
    def test_run_sets_context_variable_for_outline(self):
        # pylint: disable=protected-access
        outline = ScenarioOutline('foo.feature', 17, u'Scenario Outline',
                                  u'foo')
        outline._scenarios = [Mock(), Mock(), Mock()]
        for scenario in outline._scenarios:
            scenario.run.return_value = False

        runner = Mock()
        context = runner.context = Mock()
        config = runner.config = Mock()
        config.stop = True

        outline.run(runner)

        eq_(context._set_root_attribute.call_args_list, [
            (('active_outline', outline._scenarios[0]._row), {}),
            (('active_outline', outline._scenarios[1]._row), {}),
            (('active_outline', outline._scenarios[2]._row), {}),
            (('active_outline', None), {}),
        ])
Exemple #13
0
    def test_scenario_outline_status_is_collected_and_reported(
            self, stdout, format_summary):
        feature = Mock()
        scenarios = [
            ScenarioOutline(u"<string>", 0, u"scenario_outline", u"name"),
            Mock(),
            Mock(),
            Mock()
        ]
        subscenarios = [Mock(), Mock(), Mock(), Mock()]
        subscenarios[0].status = Status.passed
        subscenarios[0].__iter__ = Mock(return_value=iter([]))
        subscenarios[1].status = Status.failed
        subscenarios[1].__iter__ = Mock(return_value=iter([]))
        subscenarios[2].status = Status.failed
        subscenarios[2].__iter__ = Mock(return_value=iter([]))
        subscenarios[3].status = Status.skipped
        subscenarios[3].__iter__ = Mock(return_value=iter([]))
        scenarios[0]._scenarios = subscenarios
        scenarios[1].status = Status.failed
        scenarios[1].__iter__ = Mock(return_value=iter([]))
        scenarios[2].status = Status.skipped
        scenarios[2].__iter__ = Mock(return_value=iter([]))
        scenarios[3].status = Status.passed
        scenarios[3].__iter__ = Mock(return_value=iter([]))
        feature.status = Status.failed
        feature.duration = 12.4
        feature.__iter__ = Mock(return_value=iter(scenarios))

        config = Mock()
        sys.stdout.encoding = "UTF-8"
        reporter = SummaryReporter(config)

        reporter.feature(feature)
        reporter.end()

        expected = {
            "all": 7,
            Status.passed.name: 2,
            Status.failed.name: 3,
            Status.skipped.name: 2,
            Status.untested.name: 0,
        }
        scenario_index = 1  # -- HINT: Index for scenarios if no Rules are used.
        expected_parts = ("scenario", expected)
        assert format_summary.call_args_list[scenario_index][
            0] == expected_parts
Exemple #14
0
    def test_scenario_outline_status_is_collected_and_reported(
            self, stdout, format_summary):
        feature = Mock()
        scenarios = [
            ScenarioOutline(u"<string>", 0, u"scenario_outline", u"name"),
            Mock(),
            Mock(),
            Mock()
        ]
        subscenarios = [Mock(), Mock(), Mock(), Mock()]
        subscenarios[0].status = Status.passed
        subscenarios[0].__iter__ = Mock(return_value=iter([]))
        subscenarios[1].status = Status.failed
        subscenarios[1].__iter__ = Mock(return_value=iter([]))
        subscenarios[2].status = Status.failed
        subscenarios[2].__iter__ = Mock(return_value=iter([]))
        subscenarios[3].status = Status.skipped
        subscenarios[3].__iter__ = Mock(return_value=iter([]))
        scenarios[0]._scenarios = subscenarios
        scenarios[1].status = Status.failed
        scenarios[1].__iter__ = Mock(return_value=iter([]))
        scenarios[2].status = Status.skipped
        scenarios[2].__iter__ = Mock(return_value=iter([]))
        scenarios[3].status = Status.passed
        scenarios[3].__iter__ = Mock(return_value=iter([]))
        feature.status = Status.failed
        feature.duration = 12.4
        feature.__iter__ = Mock(return_value=iter(scenarios))

        config = Mock()
        sys.stdout.encoding = "UTF-8"
        reporter = SummaryReporter(config)

        reporter.feature(feature)
        reporter.end()

        expected = {
            Status.passed.name: 2,
            Status.failed.name: 3,
            Status.skipped.name: 2,
            Status.untested.name: 0,
        }

        eq_(format_summary.call_args_list[1][0], ('scenario', expected))
Exemple #15
0
    def test_scenario_outline_status_is_collected_and_reported(
            self, stderr, format_summary):
        feature = Mock()
        scenarios = [
            ScenarioOutline(u"<string>", 0, u"scenario_outline", u"name"),
            Mock(),
            Mock(),
            Mock()
        ]
        subscenarios = [Mock(), Mock(), Mock(), Mock()]
        subscenarios[0].status = 'passed'
        subscenarios[0].__iter__ = Mock(return_value=iter([]))
        subscenarios[1].status = 'failed'
        subscenarios[1].__iter__ = Mock(return_value=iter([]))
        subscenarios[2].status = 'failed'
        subscenarios[2].__iter__ = Mock(return_value=iter([]))
        subscenarios[3].status = 'skipped'
        subscenarios[3].__iter__ = Mock(return_value=iter([]))
        scenarios[0]._scenarios = subscenarios
        scenarios[1].status = 'failed'
        scenarios[1].__iter__ = Mock(return_value=iter([]))
        scenarios[2].status = 'skipped'
        scenarios[2].__iter__ = Mock(return_value=iter([]))
        scenarios[3].status = 'passed'
        scenarios[3].__iter__ = Mock(return_value=iter([]))
        feature.status = 'failed'
        feature.duration = 12.4
        feature.__iter__ = Mock(return_value=iter(scenarios))

        config = Mock()
        reporter = SummaryReporter(config)

        reporter.feature(feature)
        reporter.end()

        expected = {
            'passed': 2,
            'failed': 3,
            'skipped': 2,
            'untested': 0,
        }

        eq_(format_summary.call_args_list[1][0], ('scenario', expected))