Mercurial > kallithea
changeset 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 | 62c04c5cc971 |
children | a7efcee0f399 |
files | rhodecode/tests/test_hg_operations.py rhodecode/tests/test_hg_operations.sh |
diffstat | 2 files changed, 118 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/tests/test_hg_operations.py Thu Dec 30 18:14:37 2010 +0100 @@ -0,0 +1,118 @@ +# -*- 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() +
--- a/rhodecode/tests/test_hg_operations.sh Wed Dec 29 17:50:47 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -#!/bin/bash -repo=/tmp/vcs_test_hg_clone -repo_name=vcs_test_hg -user=test_admin -password=test12 -echo 'removing repo '$repo -rm -rf '$repo' -hg clone http://$user:$password@127.0.0.1:5000/$repo_name $repo -cd $repo -echo 'some' >> $repo/setup.py && hg ci -m 'ci1' && \ -echo 'some' >> $repo/setup.py && hg ci -m 'ci2' && \ -echo 'some' >> $repo/setup.py && hg ci -m 'ci3' && \ -echo 'some' >> $repo/setup.py && hg ci -m 'ci4' && \ -hg push - -echo 'new file' >> $repo/new_file.py -hg add $repo/new_file.py - -for i in {1..15} -do - echo "line $i" >> $repo/new_file.py && hg ci -m "autocommit $i" -done - -hg push \ No newline at end of file