Exemplo n.º 1
0
def add_file_test(isfile, getdest):
    """
    Checks that the add_file() method behaves correctly under various circumstances.
    """
    @command()
    @argument('src')
    @argument('dest')
    @option('--force', '-f', is_flag=True)
    def click_mock(src, dest, force):
        scr.add_file(method, src, dest, scr.cur_notebook, force)

    def side_effect1(*args):
        if not args[3]:
            raise OSError
        else:
            pass

    method = MagicMock()
    scr.add_file(method, 'src', 'dest', scr.cur_notebook, True)
    method.assert_called_with(scr.cur_notebook, 'src', 'dest', True)
    method = MagicMock(side_effect=side_effect1)
    runner = CliRunner()
    result = runner.invoke(click_mock, ['src', 'dest'], input='y\n')
    method.assert_any_call(scr.cur_notebook, 'src', 'dest', False)
    method.assert_called_with(scr.cur_notebook, 'src', 'dest', True)

    method = MagicMock(side_effect=(OSError('1'), None))
    isfile.side_effect = [True, False]
    getdest.return_value = 'dest'
    result = runner.invoke(click_mock, ['src', 'dest'], input='\n-\n')
    assert 'Placing this file in the notebook would' in result.output
    assert 'Provide a new filename' in result.output
    method.assert_called_with(scr.cur_notebook, 'src', 'dest', False)
    assert method.call_count == 1

    method = MagicMock(side_effect=(OSError('1'), None))
    getdest.return_value = 'dest.txt'
    isfile.side_effect = [True, False]
    result = runner.invoke(click_mock, ['src', 'dest.txt'], input='\n\n')
    method.assert_called_with(scr.cur_notebook, 'src', 'dest-1.txt', False)

    method = MagicMock(side_effect=(OSError('1'), None))
    getdest.return_value = 'dest.txt'
    isfile.side_effect = [True, False, False]
    result = runner.invoke(click_mock, ['src', 'dest.txt'],
                           input='\nthingy.txt\n')
    method.assert_called_with(scr.cur_notebook, 'src', 'thingy.txt', False)

    method = MagicMock(side_effect=(OSError('1'), None))
    getdest.return_value = 'out/dest.txt'
    isfile.side_effect = [True, False]
    result = runner.invoke(click_mock, ['src', 'out/dest.txt'], input='\n\n')
    method.assert_called_with(scr.cur_notebook, 'src', 'out/dest-1.txt', False)
Exemplo n.º 2
0
 def click_mock(src, dest, force):
     scr.add_file(method, src, dest, scr.cur_notebook, force)