tests/util.py @ 91bec91479bc

Fixed hg help screen for prompt

hg help would report "(no help text available)" for the prompt plugin
because the package comment was located after the future import. This
patch fixes that problem by relocating the future import to after the
package comment.
author Chris Mansley <chris.mansley@us.bosch.com>
date Fri, 20 Jan 2012 10:17:56 -0800
parents 705378546da2
children 869146b8b9fb
"""Utilities for writing unit tests for hg-prompt."""

import os, shutil, sys
from mercurial import cmdutil, commands, hg, ui

pkg_path = os.path.realpath(__file__)
sys.path =[os.path.split(os.path.split(pkg_path)[0])[0]] + sys.path
from prompt import prompt as _prompt

_ui = ui.ui()
def prompt(fs=''):
    _ui.pushbuffer()
    _prompt(_ui, get_sandbox_repo(), fs=fs)
    output = _ui.popbuffer()
    
    print output
    return output


sandbox_path = os.path.join(os.path.realpath('.'), 'sandbox')

def setup_sandbox():
    os.mkdir(sandbox_path)
    os.chdir(sandbox_path)
    
    commands.init(_ui)

def teardown_sandbox():
    os.chdir(os.path.realpath(os.path.join(sandbox_path, os.pardir)))
    shutil.rmtree(sandbox_path)

def get_sandbox_repo():
    return hg.repository(_ui, sandbox_path)

def get_sandbox_ui():
    return _ui


# Mercurial command wrappers

def hg_branch(branch='test'):
    commands.branch(_ui, get_sandbox_repo(), branch)

def hg_update(rev):
    opts = { 'rev': str(rev), }
    commands.update(_ui, get_sandbox_repo(), **opts)

def hg_merge(rev):
    opts = { 'rev': str(rev) }
    commands.merge(_ui, get_sandbox_repo(), **opts)

def hg_commit(filename='text.txt'):
    with open(os.path.join(sandbox_path, filename), 'a') as test_file:
        test_file.writelines(['test', '.'])
    
    opts = { 'addremove': True, 'date': None, 'user': 'Prompt Tester',
             'logfile': None, 'message': "Sandbox commit." }
    commands.commit(get_sandbox_ui(), get_sandbox_repo(), **opts)

def hg_log():
    opts = { 'template': '{rev} {desc}\n', 'rev': None, 'date': None, 'user': None }
    
    _ui.pushbuffer()
    commands.log(_ui, get_sandbox_repo(), **opts)
    output = _ui.popbuffer()
    
    return output