review/tests/test_init.py @ 467dacbab7d6

Move the review output into messages, and add a no-comments test.
author Steve Losh <steve@stevelosh.com>
date Sun, 04 Oct 2009 19:41:58 -0400
parents 94b4bdc4a60c
children ac51c0878e04
from nose import *
from util import *

import os
from .. import messages
from mercurial import util as hgutil


@with_setup(setup_sandbox, teardown_sandbox)
def test_init():
    sandbox = get_sandbox_repo()
    
    gather_output()
    review(init=True)
    output = grab_output()
    
    assert messages.INIT_SUCCESS in output
    
    assert '.hgreview' not in sandbox['tip']
    assert os.path.exists('.hgreview')
    assert os.path.isdir('.review')
    assert get_datastore_repo('.review')
    
    with open('.hgreview', 'r') as hgrf:
        hgr = hgrf.read()
        assert 'local = .review' in hgr
        assert 'remote = ../sandbox-review' in hgr


@with_setup(setup_sandbox, teardown_sandbox)
def test_init_with_local_path():
    sandbox = get_sandbox_repo()
    
    gather_output()
    review(init=True, local_path='codereview')
    output = grab_output()
    
    assert messages.INIT_SUCCESS in output
    
    assert '.hgreview' not in sandbox['tip']
    assert os.path.exists('.hgreview')
    assert os.path.isdir('codereview')
    assert get_datastore_repo('codereview')
    
    with open('.hgreview', 'r') as hgrf:
        hgr = hgrf.read()
        assert 'local = codereview' in hgr
        assert 'remote = ../sandbox-review' in hgr


@with_setup(setup_sandbox, teardown_sandbox)
def test_init_with_remote_path():
    sandbox = get_sandbox_repo()
    
    gather_output()
    review(init=True, remote_path='../code-review')
    output = grab_output()
    
    assert messages.INIT_SUCCESS in output
    
    assert '.hgreview' not in sandbox['tip']
    assert os.path.exists('.hgreview')
    assert os.path.isdir('.review')
    assert get_datastore_repo('.review')
    
    with open('.hgreview', 'r') as hgrf:
        hgr = hgrf.read()
        assert 'local = .review' in hgr
        assert 'remote = ../code-review' in hgr


@with_setup(setup_sandbox, teardown_sandbox)
def test_init_with_both_paths():
    sandbox = get_sandbox_repo()
    
    gather_output()
    review(init=True, local_path='codereview', remote_path='../code-review')
    output = grab_output()
    
    assert messages.INIT_SUCCESS in output
    
    assert '.hgreview' not in sandbox['tip']
    assert os.path.exists('.hgreview')
    assert os.path.isdir('codereview')
    assert get_datastore_repo('codereview')
    
    with open('.hgreview', 'r') as hgrf:
        hgr = hgrf.read()
        assert 'local = codereview' in hgr
        assert 'remote = ../code-review' in hgr


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