review/tests/test_diffs.py @ 16e0bcd4f854

Switch to the new hg spanset API

This api was introduced in 3.2, and the indexation is not supported anymore (probably since
3.4)

Patch provided by David Douard
(see https://bitbucket.org/sjl/hg-review/pull-requests/8/better-handling-of-obsolescence-markers/diff#comment-8174971)
author Christophe de Vienne <christophe@cdevienne.info>
date Fri, 19 Aug 2016 18:21:28 +0200
parents bef3dce04be6
children (none)
from nose import with_setup
from util import setup_reviewed_sandbox, teardown_sandbox, review

from .. import messages

a1, a2 = (messages.REVIEW_LOG_COMMENT_AUTHOR % '|').split('|')
s1, s2 = (messages.REVIEW_LOG_SKIPPED % 1111).split('1111')

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_review_diff_default_context():
    output = review(rev='1', args=['long_file'], unified='5')

    assert ' 0:' not in output
    assert messages.REVIEW_LOG_SKIPPED % 1 in output

    for n in range(1, 20):
        assert '%2d:' % n in output

    assert '-g' in output
    assert '+X' in output
    assert '-m' in output
    assert '+Y' in output

    assert '20:' not in output
    assert messages.REVIEW_LOG_SKIPPED % 2 in output

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_review_diff_full_context():
    output = review(rev='1', args=['long_file'], unified='10000')

    assert s1 not in output
    assert s2 not in output

    for n in range(0, 21):
        assert '%2d:' % n in output

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_review_diff_small_context():
    output = review(rev='1', args=['long_file'], unified='2')

    assert ' 3:' not in output
    assert messages.REVIEW_LOG_SKIPPED % 4 in output

    assert '-g' in output
    assert '+X' in output

    assert '10:' not in output
    assert messages.REVIEW_LOG_SKIPPED % 2 in output

    assert '-m' in output
    assert '+Y' in output

    assert '17:' not in output
    assert messages.REVIEW_LOG_SKIPPED % 5 in output

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_review_diff_with_comment():
    review(comment=True, rev='1', message='Test comment one.',
        args=['long_file'], lines='6,7')

    output = review(rev='1', args=['long_file'], unified=0)

    # Make sure the comment is present at all.
    assert a1 in output
    assert a2 in output
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment one.' in output

    # Make sure it's in the correct place
    output = output.splitlines()
    for n, line in enumerate(output):
        if line.startswith('#'):
            assert output[n-1].strip().startswith('7')
            break

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_review_diff_with_skipped_comment():
    review(comment=True, rev='1', message='Test comment one.',
        args=['long_file'], lines='3')

    output = review(rev='1', args=['long_file'], unified=0)

    # Make sure the comment is present at all.
    assert a1 in output
    assert a2 in output
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment one.' in output

    # Make sure it's in the correct place
    output = output.splitlines()
    for n, line in enumerate(output):
        if line.startswith('#'):
            assert output[n-1].startswith(s1)
            assert output[n-1].endswith(s2.strip())
            break