Mercurial > kallithea
diff rhodecode/tests/vcs/__init__.py @ 2451:402a96fcfa22 beta
Added vcs testsuite for better integration tests + added fetching
of two new repos into test env for rhodecode
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 13 Jun 2012 23:27:33 +0200 |
parents | |
children | 9492ab68331f |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rhodecode/tests/vcs/__init__.py Wed Jun 13 23:27:33 2012 +0200 @@ -0,0 +1,56 @@ +""" +Unit tests for vcs_ library. + +In order to run tests we need to prepare our environment first. Tests would be +run for each engine listed at ``conf.SCM_TESTS`` - keys are aliases from +``vcs.backends.BACKENDS``. + +For each SCM we run tests for, we need some repository. We would use +repositories location from system environment variables or test suite defaults +- see ``conf`` module for more detail. We simply try to check if repository at +certain location exists, if not we would try to fetch them. At ``test_vcs`` or +``test_common`` we run unit tests common for each repository type and for +example specific mercurial tests are located at ``test_hg`` module. + +Oh, and tests are run with ``unittest.collector`` wrapped by ``collector`` +function at ``tests/__init__.py``. + +.. _vcs: http://bitbucket.org/marcinkuzminski/vcs +.. _unittest: http://pypi.python.org/pypi/unittest + +""" +import os +from rhodecode.lib import vcs +from rhodecode.lib.vcs.utils.compat import unittest +from rhodecode.tests import * +from utils import VCSTestError, SCMFetcher + + +def setup_package(): + """ + Prepares whole package for tests which mainly means it would try to fetch + test repositories or use already existing ones. + """ + fetchers = { + 'hg': { + 'alias': 'hg', + 'test_repo_path': TEST_HG_REPO, + 'remote_repo': HG_REMOTE_REPO, + 'clone_cmd': 'hg clone', + }, + 'git': { + 'alias': 'git', + 'test_repo_path': TEST_GIT_REPO, + 'remote_repo': GIT_REMOTE_REPO, + 'clone_cmd': 'git clone --bare', + }, + } + try: + for scm, fetcher_info in fetchers.items(): + fetcher = SCMFetcher(**fetcher_info) + fetcher.setup() + except VCSTestError, err: + raise RuntimeError(str(err)) + +start_dir = os.path.abspath(os.path.dirname(__file__)) +unittest.defaultTestLoader.discover(start_dir)