test_vcs.py
86 lines
| 2.6 KiB
| text/x-python
|
PythonLexer
r2451 | from __future__ import with_statement | |||
r3797 | import os | |||
import shutil | ||||
r2451 | from rhodecode.lib.vcs import VCSError, get_repo, get_backend | |||
from rhodecode.lib.vcs.backends.hg import MercurialRepository | ||||
from rhodecode.lib.vcs.utils.compat import unittest | ||||
r3797 | from rhodecode.tests.vcs.conf import TEST_HG_REPO, TEST_GIT_REPO, TEST_TMP_PATH | |||
r2451 | ||||
class VCSTest(unittest.TestCase): | ||||
""" | ||||
Tests for main module's methods. | ||||
""" | ||||
def test_get_backend(self): | ||||
hg = get_backend('hg') | ||||
self.assertEqual(hg, MercurialRepository) | ||||
def test_alias_detect_hg(self): | ||||
alias = 'hg' | ||||
path = TEST_HG_REPO | ||||
backend = get_backend(alias) | ||||
repo = backend(path) | ||||
self.assertEqual('hg',repo.alias) | ||||
def test_alias_detect_git(self): | ||||
alias = 'git' | ||||
path = TEST_GIT_REPO | ||||
backend = get_backend(alias) | ||||
repo = backend(path) | ||||
self.assertEqual('git',repo.alias) | ||||
def test_wrong_alias(self): | ||||
alias = 'wrong_alias' | ||||
self.assertRaises(VCSError, get_backend, alias) | ||||
def test_get_repo(self): | ||||
alias = 'hg' | ||||
path = TEST_HG_REPO | ||||
backend = get_backend(alias) | ||||
repo = backend(path) | ||||
self.assertEqual(repo.__class__, get_repo(path, alias).__class__) | ||||
self.assertEqual(repo.path, get_repo(path, alias).path) | ||||
def test_get_repo_autoalias_hg(self): | ||||
alias = 'hg' | ||||
path = TEST_HG_REPO | ||||
backend = get_backend(alias) | ||||
repo = backend(path) | ||||
self.assertEqual(repo.__class__, get_repo(path).__class__) | ||||
self.assertEqual(repo.path, get_repo(path).path) | ||||
def test_get_repo_autoalias_git(self): | ||||
alias = 'git' | ||||
path = TEST_GIT_REPO | ||||
backend = get_backend(alias) | ||||
repo = backend(path) | ||||
self.assertEqual(repo.__class__, get_repo(path).__class__) | ||||
self.assertEqual(repo.path, get_repo(path).path) | ||||
def test_get_repo_err(self): | ||||
blank_repo_path = os.path.join(TEST_TMP_PATH, 'blank-error-repo') | ||||
if os.path.isdir(blank_repo_path): | ||||
shutil.rmtree(blank_repo_path) | ||||
os.mkdir(blank_repo_path) | ||||
self.assertRaises(VCSError, get_repo, blank_repo_path) | ||||
self.assertRaises(VCSError, get_repo, blank_repo_path + 'non_existing') | ||||
def test_get_repo_multialias(self): | ||||
multialias_repo_path = os.path.join(TEST_TMP_PATH, 'hg-git-repo') | ||||
if os.path.isdir(multialias_repo_path): | ||||
shutil.rmtree(multialias_repo_path) | ||||
os.mkdir(multialias_repo_path) | ||||
os.mkdir(os.path.join(multialias_repo_path, '.git')) | ||||
os.mkdir(os.path.join(multialias_repo_path, '.hg')) | ||||
self.assertRaises(VCSError, get_repo, multialias_repo_path) | ||||