tests/test-movement.vim @ 7e3c84cb5eb4

Fix TypeError when using Python 3

The error shows up on :Gundo and looks like this:

    Error detected while processing function gundo#GundoShow[1]..<SNR>116_GundoShow[4]..<SNR>116_GundoOpen[31]..<SNR>116_GundoRenderPreview:
    line    2:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/home/mg/.vim/bundle/Gundo/autoload/gundo.py", line 474, in GundoRenderPreview
        _output_preview_text(_generate_preview_diff(current, node_before, node_after))
      File "/home/mg/.vim/bundle/Gundo/autoload/gundo.py", line 382, in _generate_preview_diff
        before_time, after_time))
      File "/usr/lib/python3.5/difflib.py", line 1177, in unified_diff
        _check_types(a, b, fromfile, tofile, fromfiledate, tofiledate, lineterm)
      File "/usr/lib/python3.5/difflib.py", line 1312, in _check_types
        raise TypeError('all arguments must be str, not: %r' % (arg,))
    TypeError: all arguments must be str, not: 46
author Marius Gedminas <marius@gedmin.as>
date Thu, 24 Nov 2016 14:21:55 +0200
parents d1f332450ea3
children (none)
UTSuite [Gundo] Testing Movement

function! s:Setup()"{{{
    exec 'edit test'
    call g:Goto('test')
endfunction"}}}
function! s:Teardown()"{{{
    if bufwinnr(bufnr('__Gundo__')) != -1
        exec bufwinnr(bufnr('__Gundo__')) . 'wincmd w'
        quit
    endif
    if bufwinnr(bufnr('__Gundo_Preview__')) != -1
        exec bufwinnr(bufnr('__Gundo_Preview__')) . 'wincmd w'
        quit
    endif
    if bufnr('__Gundo__') != -1
        exec 'bwipeout! ' . bufnr('__Gundo__')
    endif
    if bufnr('__Gundo_Preview__') != -1
        exec 'bwipeout! ' . bufnr('__Gundo_Preview__')
    endif
    if bufnr('test') != -1
        exec 'bwipeout! ' . bufnr('test')
    endif
    if bufnr('test2') != -1
        exec 'bwipeout! ' . bufnr('test2')
    endif
endfunction"}}}

function! s:TestMovementBasic()"{{{
    " Make three linear changes
    call g:TypeLineDone("ONE")
    call g:TypeLineDone("TWO")
    call g:TypeLineDone("THREE")

    " Open Gundo
    GundoToggle

    " Make sure we're on the newest/current state
    Assert g:CurrentLineContains("[3]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[2]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[1]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[0]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[1]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[2]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[3]")

    " Test arrow mappings

    " Move down
    exec "normal \<down>"
    Assert g:CurrentLineContains("[2]")

    " Move down
    exec "normal \<down>"
    Assert g:CurrentLineContains("[1]")

    " Move down
    exec "normal \<down>"
    Assert g:CurrentLineContains("[0]")

    " Move up
    exec "normal \<up>"
    Assert g:CurrentLineContains("[1]")

    " Move up
    exec "normal \<up>"
    Assert g:CurrentLineContains("[2]")

    " Move up
    exec "normal \<up>"
    Assert g:CurrentLineContains("[3]")
endfunction"}}}

function! s:TestMovementLinear()"{{{
    " Make four changes:
    "
    " o    [4]
    " |
    " | o  [3]
    " | |
    " o |  [2]
    " |/
    " o    [1]
    " |
    " o    [0] (original)

    call g:TypeLineDone("ONE")
    call g:TypeLineDone("TWO")
    silent! undo
    call g:TypeLineDone("THREE")
    silent! undo 2
    call g:TypeLineDone("FOUR")

    " Open Gundo
    GundoToggle

    " Make sure we're on the newest/current state
    Assert g:CurrentLineContains("[4]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[3]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[2]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[1]")

    " Move down
    normal j
    Assert g:CurrentLineContains("[0]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[1]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[2]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[3]")

    " Move up
    normal k
    Assert g:CurrentLineContains("[4]")
endfunction"}}}