def test_pull_api(self): try: from cStringIO import StringIO except ImportError: from io import StringIO from vcstool.commands.pull import main stdout_stderr = StringIO() # change and restore cwd cwd_bck = os.getcwd() os.chdir(TEST_WORKSPACE) try: # change and restore USE_COLOR flag from vcstool import executor use_color_bck = executor.USE_COLOR executor.USE_COLOR = False try: # change and restore os.environ env_bck = os.environ os.environ = dict(os.environ) os.environ.update( LANG='en_US.UTF-8', PYTHONPATH=(os.path.dirname(os.path.dirname(__file__)) + os.pathsep + os.environ.get('PYTHONPATH', ''))) try: rc = main(args=['--workers', '1'], stdout=stdout_stderr, stderr=stdout_stderr) finally: os.environ = env_bck finally: executor.USE_COLOR = use_color_bck finally: os.chdir(cwd_bck) assert rc == 0 # replace message from older git versions output = stdout_stderr.getvalue().replace( 'anch. Please specify which\nbranch you want to merge with. See', 'anch.\nPlease specify which branch you want to merge with.\nSee') # newer git versions warn on pull with default config if GitClient.get_git_version() >= [2, 27, 0]: pull_warning = """ warning: Pulling without specifying how to reconcile divergent branches is discouraged. You can squelch this message by running one of the following commands sometime before your next pull: git config pull.rebase false # merge (the default strategy) git config pull.rebase true # rebase git config pull.ff only # fast-forward only You can replace "git config" with "git config --global" to set a default preference for all repositories. You can also pass --rebase, --no-rebase, or --ff-only on the command line to override the configured default per invocation. """ output = output.replace(pull_warning, '') expected = get_expected_output('pull').decode() assert output == expected
def test_pull_api(self): try: from cStringIO import StringIO except ImportError: from io import StringIO from vcstool.commands.pull import main stdout_stderr = StringIO() # change and restore cwd cwd_bck = os.getcwd() os.chdir(TEST_WORKSPACE) try: # change and restore USE_COLOR flag from vcstool import executor use_color_bck = executor.USE_COLOR executor.USE_COLOR = False try: # change and restore os.environ env_bck = os.environ os.environ = dict(os.environ) os.environ.update( LANG='en_US.UTF-8', PYTHONPATH=(os.path.dirname(os.path.dirname(__file__)) + os.pathsep + os.environ.get('PYTHONPATH', ''))) try: rc = main(args=['--workers', '1'], stdout=stdout_stderr, stderr=stdout_stderr) finally: os.environ = env_bck finally: executor.USE_COLOR = use_color_bck finally: os.chdir(cwd_bck) assert rc == 1 # replace message from older git versions output = stdout_stderr.getvalue().replace( 'anch. Please specify which\nbranch you want to merge with. See', 'anch.\nPlease specify which branch you want to merge with.\nSee') expected = get_expected_output('pull').decode() assert output == expected