review/tests/test_init.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 __future__ import with_statement

import os

from nose import with_setup

from util import setup_reviewed_sandbox, teardown_sandbox, review, should_fail_with
from util import setup_sandbox, get_datastore_repo, get_sandbox_repo
from util import clone_sandbox_repo, sandbox_clone_path

from .. import messages
from .. import api

@with_setup(setup_sandbox, teardown_sandbox)
def test_init():
    sandbox = get_sandbox_repo()

    output = review(init=True, remote_path='/sandbox-review')
    assert messages.INIT_SUCCESS_UNCOMMITTED in output

    assert '.hgreview' not in sandbox['tip']
    assert os.path.exists('.hgreview')
    assert os.path.isdir(api.DEFAULT_DATASTORE_DIRNAME)
    assert get_datastore_repo(api.DEFAULT_DATASTORE_DIRNAME)

    with open('.hgreview', 'r') as hgrf:
        hgr = hgrf.read()
        assert 'remote = /sandbox-review' in hgr

@with_setup(setup_sandbox, teardown_sandbox)
def test_init_without_remote_path():
    should_fail_with(messages.INIT_REQUIRES_REMOTE_PATH, init=True)

@with_setup(setup_sandbox, teardown_sandbox)
def test_init_twice():
    review(init=True, remote_path='/sandbox-review')
    should_fail_with(messages.INIT_EXISTS_UNCOMMITTED, init=True, remote_path='/sandbox-review')

@with_setup(setup_reviewed_sandbox(), teardown_sandbox)
def test_init_clone():
    review(comment=True, message='Test comment one.')
    review(comment=True, rev='0', message='Test comment two.')

    clone_sandbox_repo()
    os.chdir(sandbox_clone_path)

    review(init=True)

    output = review()
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment one.' in output
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment two.' not in output

    output = review(rev='0')
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment one.' not in output
    assert messages.REVIEW_LOG_COMMENT_LINE % 'Test comment two.' in output