review/tests/test_signoff.py @ 789e5765c9ff

Start adding some documentation to the internals of the API.

I also managed to sneak a doctest in there which found a bug.
The bug is now fixed.
Awesome.
author Steve Losh <steve@stevelosh.com>
date Wed, 07 Oct 2009 23:38:30 -0400
parents ab4cc556087d
children 8d14fdcfb92d
from nose import *
from util import *
from .. import messages

import os
from mercurial import util as hgutil


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_no_signoffs():
    sandbox = get_sandbox_repo()
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (0, 0, 0, 0) in output


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_blank_signoff():
    sandbox = get_sandbox_repo()
    
    try:
        review(signoff=True)
    except hgutil.Abort, e:
        error = str(e)
        assert messages.SIGNOFF_REQUIRES_MESSAGE in error
    else:
        assert False, 'The correct error message was not printed.'


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_signoff_on_parent_rev():
    sandbox = get_sandbox_repo()
    
    review(signoff=True, message='Test signoff one.')
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (1, 0, 0, 1) in output


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_signoff_on_specific_rev():
    sandbox = get_sandbox_repo()
    
    review(signoff=True, message='Test signoff one.', rev='0')
    
    output = review(rev='0')
    assert messages.REVIEW_LOG_SIGNOFFS % (1, 0, 0, 1) in output
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (0, 0, 0, 0) in output


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_multiple_signoffs():
    sandbox = get_sandbox_repo()
    
    review(signoff=True, message='Test signoff one.')
    
    try:
        review(signoff=True, message='Test signoff two.')
    except hgutil.Abort, e:
        error = str(e)
        assert messages.SIGNOFF_EXISTS in error
    else:
        assert False, 'The correct error message was not printed.'
    
    review(signoff=True, message='Test signoff two.', force=True)
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (1, 0, 0, 1) in output


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_signoff_yes():
    sandbox = get_sandbox_repo()
    
    review(signoff=True, yes=True, message='Test signoff one.')
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (1, 1, 0, 0) in output


@with_setup(setup_reviewed_sandbox, teardown_sandbox)
def test_signoff_no():
    sandbox = get_sandbox_repo()
    
    review(signoff=True, no=True, message='Test signoff one.')
    
    output = review()
    assert messages.REVIEW_LOG_SIGNOFFS % (1, 0, 1, 0) in output