コード例 #1
0
    def test_main_run(self, capsys):
        r = cg_test.Runner(Task1)
        r.run('task_name', None)

        def task_func(arg1, arg2, arg3):
            return []

        r.run(task_func, 'value1', 'value2', 'value3')

        open_ = mock.mock_open(read_data='answer_data')
        time_time = mock.Mock(side_effect=range(0, 100, 2))

        with mock.patch('builtins.open', open_):
            with mock.patch('os.system', mock.Mock()) as os_system:
                with mock.patch('time.time', time_time):
                    os_system.return_value = 0
                    with pytest.raises(SystemExit):
                        r.main([])

            assert open_.call_args_list == [
                mock.call('tmp/in', 'w'),
                mock.call('tmp/out', 'r'),
                mock.call('tmp/in', 'w'),
                mock.call('tmp/out', 'r')
            ]
            open_().write.call_args_list == []

        captured = capsys.readouterr()
        assert captured.out == \
            'task_name T(15) / 2.000 = 30 \n' + \
            'task_func_value1_value2_value3 T(15) / 2.000 = 30 \n'
コード例 #2
0
    def test_run(self):
        r = cg_test.Runner(None)
        r.run('task_name', ['task', 'data'])

        def task_func(arg1, arg2, arg3):
            return ['data', 'of', 'task', arg1, arg2, arg3]

        r.run(task_func, 'value1', 'value2', 'value3')

        r.run(('task_func_name', lambda *a: ('data', 'of', 'task') + a),
              'value1', 'value2', 'value3')

        task1, task2, task3 = r._tasks

        name, f = task1
        assert name == 'task_name'
        assert f() == ['task', 'data']

        name, f = task2
        assert name == 'task_func_value1_value2_value3'
        assert f() == ['data', 'of', 'task', 'value1', 'value2', 'value3']

        name, f = task3
        assert name == 'task_func_name_value1_value2_value3'
        assert f() == ('data', 'of', 'task', 'value1', 'value2', 'value3')
コード例 #3
0
    def test_main_list(self, capsys):
        r = cg_test.Runner(None)
        r.run('task_name', None)

        def task_func(arg1, arg2, arg3):
            return []

        r.run(task_func, 'value1', 'value2', 'value3')
        with pytest.raises(SystemExit):
            r.main(['--list'])
        captured = capsys.readouterr()
        assert captured.out == 'task_name\ntask_func_value1_value2_value3\n'
コード例 #4
0
 def test_main_help(self, capsys):
     r = cg_test.Runner(None)
     with pytest.raises(SystemExit):
         r.main(['--help'])
     captured = capsys.readouterr()
     assert captured.out.startswith('usage: pytest')
コード例 #5
0
 def test_init(self):
     o = object()
     r = cg_test.Runner(o)
     assert r._task_class == o
     assert r._tasks == []