Mercurial > kallithea
view rhodecode/tests/test_hg_operations.py @ 896:af65ca7e5c2b beta
changed mercurial test operations script
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 30 Dec 2010 18:14:37 +0100 |
parents | rhodecode/tests/test_hg_operations.sh@7b18e7ca66da |
children | a7efcee0f399 |
line wrap: on
line source
# -*- coding: utf-8 -*- """ rhodecode.tests.test_hg_operations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Test suite for making push/pull operations :created_on: Dec 30, 2010 :copyright: (c) 2010 by marcink. :license: LICENSE_NAME, see LICENSE_FILE for more details. """ import os import shutil import logging from subprocess import Popen, PIPE from os.path import join as jn from rhodecode.tests import TESTS_TMP_PATH, NEW_HG_REPO, HG_REPO USER = 'test_admin' PASS = 'test12' HOST = '127.0.0.1:5000' log = logging.getLogger(__name__) def __execute_cmd(cmd, *args): """Runs command on the system with given ``args``. """ command = cmd + ' ' + ' '.join(args) log.debug('Executing %s' % command) print command p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE) stdout, stderr = p.communicate() print stdout, stderr return stdout, stderr #=============================================================================== # TESTS #=============================================================================== def test_clone(): #rm leftovers try: log.debug('removing old directory') shutil.rmtree(jn(TESTS_TMP_PATH, HG_REPO)) except OSError: pass clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s %(dest)s' % \ {'user':USER, 'pass':PASS, 'host':HOST, 'cloned_repo':HG_REPO, 'dest':jn(TESTS_TMP_PATH, HG_REPO)} stdout, stderr = __execute_cmd('hg clone', clone_url) def test_pull(): pass def test_push(): modified_file = jn(TESTS_TMP_PATH, HG_REPO, 'setup.py') for i in xrange(5): cmd = """echo 'added_line%s' >> %s""" % (i, modified_file) __execute_cmd(cmd) cmd = """hg ci -m 'changed file %s' %s """ % (i, modified_file) __execute_cmd(cmd) __execute_cmd('hg push %s' % jn(TESTS_TMP_PATH, HG_REPO)) def test_push_new_file(): added_file = jn(TESTS_TMP_PATH, HG_REPO, 'setup.py') __execute_cmd('touch %s' % added_file) __execute_cmd('hg addremove %s' % added_file) for i in xrange(15): cmd = """echo 'added_line%s' >> %s""" % (i, added_file) __execute_cmd(cmd) cmd = """hg ci -m 'commited new %s' %s """ % (i, added_file) __execute_cmd(cmd) __execute_cmd('hg push %s' % jn(TESTS_TMP_PATH, HG_REPO)) def test_push_wrong_credentials(): clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s' % \ {'user':USER + 'xxx', 'pass':PASS, 'host':HOST, 'cloned_repo':HG_REPO, 'dest':jn(TESTS_TMP_PATH, HG_REPO)} modified_file = jn(TESTS_TMP_PATH, HG_REPO, 'setup.py') for i in xrange(5): cmd = """echo 'added_line%s' >> %s""" % (i, modified_file) __execute_cmd(cmd) cmd = """hg ci -m 'commited %s' %s """ % (i, modified_file) __execute_cmd(cmd) __execute_cmd('hg push %s' % clone_url) if __name__ == '__main__': test_push_wrong_credentials() #test_clone() #test_push_new_file()