Exemple #1
0
    def test_it_records_success_run_to_formatter(self, Benchmark):
        instance = Benchmark.return_value = MagicMock()
        formatter = Mock()

        example = ExampleGroup((), None, None)
        subject = ExampleRunner(example, formatter)
        subject.execute()

        formatter.start_example_group.assert_called_once_with(example)
        formatter.end_example_group.assert_called_once_with(example)
Exemple #2
0
    def test_it_records_raised_errors(self, Benchmark):
        Benchmark.return_value = MagicMock()

        def testfn():
            raise IOError("muhaha")

        example = Example(testfn, [], [])
        subject = ExampleRunner(example, Mock())
        subject.execute()

        self.assertEqual(example.error.message, "muhaha")
        self.assertTrue(isinstance(example.error, IOError))
Exemple #3
0
    def test_it_records_std_streams(self, Benchmark):
        Benchmark.return_value = MagicMock()

        def testfn():
            print 'hello world'
            print >>sys.stderr, "hello from stderr"

        example = Example(testfn, [], [])
        subject = ExampleRunner(example, Mock())
        subject.execute()

        self.assertEqual(example.stderr.getvalue(), "hello from stderr\n")
        self.assertEqual(example.stdout.getvalue(), "hello world\n")
Exemple #4
0
    def test_it_records_basic_stats(self, Benchmark):
        testfn, before, after = Mock(), Mock(), Mock()
        Benchmark.return_value = MagicMock()

        example = Example(testfn, [before], [after])
        subject = ExampleRunner(example, Mock())
        self.assertFalse(subject.has_ran)

        subject.execute()

        self.assertTrue(subject.has_ran)
        testfn.assert_called_once_with()
        before.assert_called_once_with()
        after.assert_called_once_with()
Exemple #5
0
    def test_it_records_success_run_to_formatter(self, Benchmark):
        instance = Benchmark.return_value = MagicMock()
        instance.total_time = 2

        formatter = Mock()

        def testfn():
            pass

        example = Example(testfn, [], [])
        subject = ExampleRunner(example, formatter)
        subject.execute()

        formatter.record_example.assert_called_once_with(example)
Exemple #6
0
    def test_it_records_failed_run_to_formatter(self, Benchmark):
        instance = Benchmark.return_value = MagicMock()

        formatter = Mock()
        error = TypeError('idk')

        def testfn():
            raise error

        example = Example(testfn, [], [])
        subject = ExampleRunner(example, formatter)
        subject.execute()

        traceback_cmp = MagicMock()
        traceback_cmp.__eq__ = lambda s, o: 'Traceback' in o and 'line' in o

        formatter.record_example.assert_called_once_with(example)
Exemple #7
0
    def test_it_executes_all_its_examples(self, Benchmark, lff):
        before, after = Mock(), Mock()
        example = Example(Mock(), [], [])
        Benchmark.return_value = MagicMock()
        lff.return_value = {}

        examplegroup = ExampleGroup(before, after, examples=[example])
        subject = ExampleRunner(examplegroup, Mock())
        self.assertTrue(subject.execute(stdout=sys.stdout))

        self.assertNotEqual(example.stdout, None)
        self.assertNotEqual(example.stderr, None)