Files
@ af65ca7e5c2b
Branch filter:
Location: kallithea/rhodecode/tests/test_hg_operations.py
af65ca7e5c2b
3.1 KiB
text/x-python
changed mercurial test operations script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 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()
|