annotate rhodecode/tests/vcs/__init__.py @ 3872:2b9da8749065 beta

Use unittest2 for testing
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 19 May 2013 15:42:08 +0200
parents d7488551578e
children 7e5f8c12a3fc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2451
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 """
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 Unit tests for vcs_ library.
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4 In order to run tests we need to prepare our environment first. Tests would be
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5 run for each engine listed at ``conf.SCM_TESTS`` - keys are aliases from
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6 ``vcs.backends.BACKENDS``.
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8 For each SCM we run tests for, we need some repository. We would use
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9 repositories location from system environment variables or test suite defaults
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
10 - see ``conf`` module for more detail. We simply try to check if repository at
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 certain location exists, if not we would try to fetch them. At ``test_vcs`` or
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12 ``test_common`` we run unit tests common for each repository type and for
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
13 example specific mercurial tests are located at ``test_hg`` module.
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
15 Oh, and tests are run with ``unittest.collector`` wrapped by ``collector``
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
16 function at ``tests/__init__.py``.
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
17
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18 .. _vcs: http://bitbucket.org/marcinkuzminski/vcs
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
19 .. _unittest: http://pypi.python.org/pypi/unittest
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
20
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
21 """
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
22 from rhodecode.lib.vcs.utils.compat import unittest
3797
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
23 from rhodecode.tests.vcs.conf import *
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
24 from rhodecode.tests.vcs.utils import VCSTestError, SCMFetcher
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
25
2451
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
26 from rhodecode.tests import *
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
27
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
28
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
29 def setup_package():
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
30 """
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31 Prepares whole package for tests which mainly means it would try to fetch
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
32 test repositories or use already existing ones.
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33 """
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
34 fetchers = {
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
35 'hg': {
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 'alias': 'hg',
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37 'test_repo_path': TEST_HG_REPO,
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
38 'remote_repo': HG_REMOTE_REPO,
3797
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
39 'clone_cmd': 'hg clone --insecure',
2451
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
40 },
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
41 'git': {
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
42 'alias': 'git',
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43 'test_repo_path': TEST_GIT_REPO,
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44 'remote_repo': GIT_REMOTE_REPO,
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
45 'clone_cmd': 'git clone --bare',
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46 },
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
47 }
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
48 try:
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
49 for scm, fetcher_info in fetchers.items():
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
50 fetcher = SCMFetcher(**fetcher_info)
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
51 fetcher.setup()
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
52 except VCSTestError, err:
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
53 raise RuntimeError(str(err))
402a96fcfa22 Added vcs testsuite for better integration tests + added fetching
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
54
3797
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
55
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
56 def collector():
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
57 setup_package()
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
58 start_dir = os.path.abspath(os.path.dirname(__file__))
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
59 return unittest.defaultTestLoader.discover(start_dir)
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
60
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
61
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
62 def main():
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
63 collector()
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
64 unittest.main()
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
65
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
66 #if __name__ == '__main__':
d7488551578e synced vcs with upstream
Marcin Kuzminski <marcin@python-works.com>
parents: 2527
diff changeset
67 # main()