##// END OF EJS Templates
Added force https option into config files
Added force https option into config files

File last commit:

r910:811fa5d4 beta
r914:110a00c1 beta
Show More
test_hg_operations.py
228 lines | 6.3 KiB | text/x-python | PythonLexer
/ rhodecode / tests / test_hg_operations.py
changed mercurial test operations script
r896 # -*- 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'
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 DEBUG = True
changed mercurial test operations script
r896 log = logging.getLogger(__name__)
fixed hg operations test script
r909
class Command(object):
def __init__(self, cwd):
self.cwd = cwd
changed mercurial test operations script
r896
fixed hg operations test script
r909 def execute(self, cmd, *args):
"""Runs command on the system with given ``args``.
"""
command = cmd + ' ' + ' '.join(args)
log.debug('Executing %s' % command)
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 if DEBUG:
print command
fixed hg operations test script
r909 p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE, cwd=self.cwd)
stdout, stderr = p.communicate()
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 if DEBUG:
print stdout, stderr
fixed hg operations test script
r909 return stdout, stderr
changed mercurial test operations script
r896
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 #==============================================================================
changed mercurial test operations script
r896 # TESTS
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 #==============================================================================
changed mercurial test operations script
r896 def test_clone():
fixed hg operations test script
r909 cwd = path = jn(TESTS_TMP_PATH, HG_REPO)
changed mercurial test operations script
r896 try:
fixed hg operations test script
r909 shutil.rmtree(path, ignore_errors=True)
os.makedirs(path)
#print 'made dirs %s' % jn(path)
changed mercurial test operations script
r896 except OSError:
fixed hg operations test script
r909 raise
changed mercurial test operations script
r896
clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s %(dest)s' % \
{'user':USER,
'pass':PASS,
'host':HOST,
'cloned_repo':HG_REPO,
fixed hg operations test script
r909 'dest':path}
stdout, stderr = Command(cwd).execute('hg clone', clone_url)
assert """adding file changes""" in stdout, 'no messages about cloning'
assert """abort""" not in stderr , 'got error from clone'
def test_clone_anonymous_ok():
cwd = path = jn(TESTS_TMP_PATH, HG_REPO)
try:
shutil.rmtree(path, ignore_errors=True)
os.makedirs(path)
#print 'made dirs %s' % jn(path)
except OSError:
raise
clone_url = 'http://%(host)s/%(cloned_repo)s %(dest)s' % \
{'user':USER,
'pass':PASS,
'host':HOST,
'cloned_repo':HG_REPO,
'dest':path}
changed mercurial test operations script
r896
fixed hg operations test script
r909 stdout, stderr = Command(cwd).execute('hg clone', clone_url)
print stdout, stderr
assert """adding file changes""" in stdout, 'no messages about cloning'
assert """abort""" not in stderr , 'got error from clone'
def test_clone_wrong_credentials():
cwd = path = jn(TESTS_TMP_PATH, HG_REPO)
try:
shutil.rmtree(path, ignore_errors=True)
os.makedirs(path)
#print 'made dirs %s' % jn(path)
except OSError:
raise
clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s %(dest)s' % \
{'user':USER + 'error',
'pass':PASS,
'host':HOST,
'cloned_repo':HG_REPO,
'dest':path}
stdout, stderr = Command(cwd).execute('hg clone', clone_url)
assert """abort: authorization failed""" in stderr , 'no error from wrong credentials'
changed mercurial test operations script
r896
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)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
cmd = """hg ci -m 'changed file %s' %s """ % (i, modified_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
fixed hg operations test script
r909 Command(cwd).execute('hg push %s' % jn(TESTS_TMP_PATH, HG_REPO))
changed mercurial test operations script
r896
def test_push_new_file():
fixed hg operations test script
r909
test_clone()
changed mercurial test operations script
r896
fixed hg operations test script
r909 cwd = path = jn(TESTS_TMP_PATH, HG_REPO)
added_file = jn(path, 'setup.py')
changed mercurial test operations script
r896
fixed hg operations test script
r909 Command(cwd).execute('touch %s' % added_file)
Command(cwd).execute('hg add %s' % added_file)
changed mercurial test operations script
r896
for i in xrange(15):
cmd = """echo 'added_line%s' >> %s""" % (i, added_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
cmd = """hg ci -m 'commited new %s' %s """ % (i, added_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
fixed hg operations test script
r909 push_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s' % \
{'user':USER,
'pass':PASS,
'host':HOST,
'cloned_repo':HG_REPO,
'dest':jn(TESTS_TMP_PATH, HG_REPO)}
Command(cwd).execute('hg push %s' % push_url)
changed mercurial test operations script
r896
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)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
cmd = """hg ci -m 'commited %s' %s """ % (i, modified_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
changed mercurial test operations script
r896
fixed hg operations test script
r909 Command(cwd).execute('hg push %s' % clone_url)
changed mercurial test operations script
r896
updated mercurial test operations script
r897 def test_push_wrong_path():
fixed hg operations test script
r909 cwd = path = jn(TESTS_TMP_PATH, HG_REPO)
added_file = jn(path, 'somefile.py')
changed mercurial test operations script
r896
updated mercurial test operations script
r897 try:
fixed hg operations test script
r909 shutil.rmtree(path, ignore_errors=True)
os.makedirs(path)
print 'made dirs %s' % jn(path)
updated mercurial test operations script
r897 except OSError:
fixed hg operations test script
r909 raise
updated mercurial test operations script
r897
fixed hg operations test script
r909 Command(cwd).execute("""echo '' > %s""" % added_file)
Command(cwd).execute("""hg init %s""" % path)
Command(cwd).execute("""hg add %s""" % added_file)
updated mercurial test operations script
r897
for i in xrange(2):
cmd = """echo 'added_line%s' >> %s""" % (i, added_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
updated mercurial test operations script
r897
cmd = """hg ci -m 'commited new %s' %s """ % (i, added_file)
fixed hg operations test script
r909 Command(cwd).execute(cmd)
updated mercurial test operations script
r897
fixed hg operations test script
r909 clone_url = 'http://%(user)s:%(pass)s@%(host)s/%(cloned_repo)s' % \
{'user':USER,
'pass':PASS,
'host':HOST,
'cloned_repo':HG_REPO + '_error',
'dest':jn(TESTS_TMP_PATH, HG_REPO)}
stdout, stderr = Command(cwd).execute('hg push %s' % clone_url)
assert """abort: HTTP Error 403: Forbidden""" in stderr
changed mercurial test operations script
r896
if __name__ == '__main__':
updated mercurial test operations script
r897 test_clone()
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910
#test_clone_wrong_credentials()
fixed hg operations test script
r909 ##test_clone_anonymous_ok()
Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users....
r910 test_pull()
fixed hg operations test script
r909 #test_push_new_file()
#test_push_wrong_path()
#test_push_wrong_credentials()