changeset 688:8acbfa837180 beta

Tests rewrite for 1.2 added some globals configs to make tests easier. Fixed search index_location to take from configuration files now fixed git http_user_agent bug
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 14 Nov 2010 17:24:32 +0100
parents b9442a8b5e02
children ecc566f8b69f
files rhodecode/config/environment.py rhodecode/controllers/search.py rhodecode/lib/utils.py rhodecode/tests/__init__.py rhodecode/tests/functional/test_branches.py rhodecode/tests/functional/test_changelog.py rhodecode/tests/functional/test_changeset.py rhodecode/tests/functional/test_feed.py rhodecode/tests/functional/test_files.py rhodecode/tests/functional/test_hg.py rhodecode/tests/functional/test_login.py rhodecode/tests/functional/test_repos.py rhodecode/tests/functional/test_search.py rhodecode/tests/functional/test_settings.py rhodecode/tests/functional/test_shortlog.py rhodecode/tests/functional/test_summary.py rhodecode/tests/functional/test_tags.py rhodecode/tests/functional/test_users.py rhodecode/tests/vcs_test.tar.gz rhodecode/tests/vcs_test_hg.tar.gz test.ini
diffstat 21 files changed, 205 insertions(+), 126 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/config/environment.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/config/environment.py	Sun Nov 14 17:24:32 2010 +0100
@@ -52,8 +52,9 @@
     test = os.path.split(config['__file__'])[-1] == 'test.ini'
     if test:
         from rhodecode.lib.utils import create_test_env, create_test_index
-        create_test_env('/tmp', config)
-        create_test_index('/tmp', True)
+        from rhodecode.tests import  TESTS_TMP_PATH
+        create_test_env(TESTS_TMP_PATH, config)
+        create_test_index(TESTS_TMP_PATH, True)
 
     #MULTIPLE DB configs
     # Setup the SQLAlchemy database engine
--- a/rhodecode/controllers/search.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/controllers/search.py	Sun Nov 14 17:24:32 2010 +0100
@@ -22,11 +22,11 @@
 search controller for pylons
 @author: marcink
 """
-from pylons import request, response, session, tmpl_context as c, url
+from pylons import request, response, config, session, tmpl_context as c, url
 from pylons.controllers.util import abort, redirect
 from rhodecode.lib.auth import LoginRequired
 from rhodecode.lib.base import BaseController, render
-from rhodecode.lib.indexers import IDX_LOCATION, SCHEMA, IDX_NAME, ResultWrapper
+from rhodecode.lib.indexers import SCHEMA, IDX_NAME, ResultWrapper
 from webhelpers.paginate import Page
 from webhelpers.util import update_params
 from pylons.i18n.translation import _
@@ -42,7 +42,7 @@
 
     @LoginRequired()
     def __before__(self):
-        super(SearchController, self).__before__()    
+        super(SearchController, self).__before__()
 
     def index(self, search_repo=None):
         c.repo_name = search_repo
@@ -56,15 +56,16 @@
                                       'repository':'repository'}\
                                       .get(c.cur_type, 'content')
 
-        
+
         if c.cur_query:
             cur_query = c.cur_query.lower()
-        
+
         if c.cur_query:
             p = int(request.params.get('page', 1))
             highlight_items = set()
             try:
-                idx = open_dir(IDX_LOCATION, indexname=IDX_NAME)
+                idx = open_dir(config['app_conf']['index_dir']
+                               , indexname=IDX_NAME)
                 searcher = idx.searcher()
 
                 qp = QueryParser(search_type, schema=SCHEMA)
@@ -72,7 +73,7 @@
                     cur_query = u'repository:%s %s' % (c.repo_name, cur_query)
                 try:
                     query = qp.parse(unicode(cur_query))
-                    
+
                     if isinstance(query, Phrase):
                         highlight_items.update(query.words)
                     else:
@@ -81,14 +82,14 @@
                                 highlight_items.add(i[1])
 
                     matcher = query.matcher(searcher)
-                    
+
                     log.debug(query)
                     log.debug(highlight_items)
                     results = searcher.search(query)
                     res_ln = len(results)
                     c.runtime = '%s results (%.3f seconds)' \
                         % (res_ln, results.runtime)
-                    
+
                     def url_generator(**kw):
                         return update_params("?q=%s&type=%s" \
                                            % (c.cur_query, c.cur_search), **kw)
@@ -98,8 +99,8 @@
                                               highlight_items),
                                 page=p, item_count=res_ln,
                                 items_per_page=10, url=url_generator)
-                     
-                    
+
+
                 except QueryParserError:
                     c.runtime = _('Invalid search query. Try quoting it.')
                 searcher.close()
@@ -107,6 +108,6 @@
                 log.error(traceback.format_exc())
                 log.error('Empty Index data')
                 c.runtime = _('There is no index to search in. Please run whoosh indexer')
-                        
+
         # Return a rendered template
         return render('/search/search.html')
--- a/rhodecode/lib/utils.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/lib/utils.py	Sun Nov 14 17:24:32 2010 +0100
@@ -64,7 +64,7 @@
     :param environ:
     """
     http_user_agent = environ.get('HTTP_USER_AGENT')
-    if http_user_agent.startswith('git'):
+    if http_user_agent and http_user_agent.startswith('git'):
         return True
     return False
 
@@ -455,15 +455,16 @@
     """
     from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon
     from rhodecode.lib.pidlock import DaemonLock, LockHeld
-    from rhodecode.lib.indexers import IDX_LOCATION
     import shutil
 
-    if os.path.exists(IDX_LOCATION):
-        shutil.rmtree(IDX_LOCATION)
+    index_location = os.path.join(repo_location, 'index')
+    if os.path.exists(index_location):
+        shutil.rmtree(index_location)
 
     try:
         l = DaemonLock()
-        WhooshIndexingDaemon(repo_location=repo_location)\
+        WhooshIndexingDaemon(index_location=index_location,
+                             repo_location=repo_location)\
             .run(full_index=full_index)
         l.release()
     except LockHeld:
@@ -474,6 +475,8 @@
     install test repository into tmp dir
     """
     from rhodecode.lib.db_manage import DbManage
+    from rhodecode.tests import HG_REPO, GIT_REPO, NEW_HG_REPO, NEW_GIT_REPO, \
+        HG_FORK, GIT_FORK, TESTS_TMP_PATH
     import tarfile
     import shutil
     from os.path import dirname as dn, join as jn, abspath
@@ -509,13 +512,19 @@
     dbmanage.populate_default_permissions()
 
     #PART TWO make test repo
-    log.debug('making test vcs repo')
-    if os.path.isdir('/tmp/vcs_test'):
-        shutil.rmtree('/tmp/vcs_test')
+    log.debug('making test vcs repositories')
+
+    #remove old one from previos tests
+    for r in [HG_REPO, GIT_REPO, NEW_HG_REPO, NEW_GIT_REPO, HG_FORK, GIT_FORK]:
 
+        if os.path.isdir(jn(TESTS_TMP_PATH, r)):
+            log.debug('removing %s', r)
+            shutil.rmtree(jn(TESTS_TMP_PATH, r))
+
+    #CREATE DEFAULT HG REPOSITORY
     cur_dir = dn(dn(abspath(__file__)))
-    tar = tarfile.open(jn(cur_dir, 'tests', "vcs_test.tar.gz"))
-    tar.extractall('/tmp')
+    tar = tarfile.open(jn(cur_dir, 'tests', "vcs_test_hg.tar.gz"))
+    tar.extractall(jn(TESTS_TMP_PATH, HG_REPO))
     tar.close()
 
 class UpgradeDb(command.Command):
--- a/rhodecode/tests/__init__.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/__init__.py	Sun Nov 14 17:24:32 2010 +0100
@@ -19,11 +19,12 @@
 import logging
 
 
-log = logging.getLogger(__name__) 
+log = logging.getLogger(__name__)
 
 import pylons.test
 
-__all__ = ['environ', 'url', 'TestController']
+__all__ = ['environ', 'url', 'TestController', 'TESTS_TMP_PATH', 'HG_REPO',
+           'GIT_REPO', 'NEW_HG_REPO', 'NEW_GIT_REPO', 'HG_FORK', 'GIT_FORK', ]
 
 # Invoke websetup with the current config file
 #SetupCommand('setup-app').run([config_file])
@@ -33,26 +34,39 @@
 
 environ = {}
 
+#SOME GLOBALS FOR TESTS
+TESTS_TMP_PATH = '/tmp'
+
+HG_REPO = 'vcs_test_hg'
+GIT_REPO = 'vcs_test_git'
+
+NEW_HG_REPO = 'vcs_test_hg_new'
+NEW_GIT_REPO = 'vcs_test_git_new'
+
+HG_FORK = 'vcs_test_hg_fork'
+GIT_FORK = 'vcs_test_git_fork'
+
 class TestController(TestCase):
 
     def __init__(self, *args, **kwargs):
         wsgiapp = pylons.test.pylonsapp
         config = wsgiapp.config
+
         self.app = TestApp(wsgiapp)
         url._push_object(URLGenerator(config['routes.map'], environ))
         self.sa = meta.Session
-
+        self.index_location = config['app_conf']['index_dir']
         TestCase.__init__(self, *args, **kwargs)
-    
+
     def log_user(self, username='test_admin', password='test12'):
         response = self.app.post(url(controller='login', action='index'),
                                  {'username':username,
                                   'password':password})
         print response
-        
+
         if 'invalid user name' in response.body:
             assert False, 'could not login using %s %s' % (username, password)
-        
+
         assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status
         assert response.session['rhodecode_user'].username == username, 'wrong logged in user got %s expected %s' % (response.session['rhodecode_user'].username, username)
         return response.follow()
--- a/rhodecode/tests/functional/test_branches.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_branches.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,5 +4,15 @@
 
     def test_index(self):
         self.log_user()
-        response = self.app.get(url(controller='branches', action='index',repo_name='vcs_test'))
+        response = self.app.get(url(controller='branches', action='index', repo_name=HG_REPO))
+
+        assert """<a href="/%s/changeset/27cd5cce30c96924232dffcd24178a07ffeb5dfc">default</a>""" % HG_REPO in response.body, 'wrong info about default branch'
+        assert """<a href="/%s/changeset/97e8b885c04894463c51898e14387d80c30ed1ee">git</a>""" % HG_REPO in response.body, 'wrong info about default git'
+        assert """<a href="/%s/changeset/2e6a2bf9356ca56df08807f4ad86d480da72a8f4">web</a>""" % HG_REPO in response.body, 'wrong info about default web'
+
+
+
+
+
+
         # Test response...
--- a/rhodecode/tests/functional/test_changelog.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_changelog.py	Sun Nov 14 17:24:32 2010 +0100
@@ -2,30 +2,35 @@
 
 class TestChangelogController(TestController):
 
-    def test_index(self):
+    def test_index_hg(self):
         self.log_user()
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'))
-        
-        print response
-        assert """<div id="chg_20" class="container">""" in response.body, 'wrong info about number ofchanges'
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO))
+
+        assert """<div id="chg_20" class="container">""" in response.body, 'wrong info about number of changes'
         assert """Small update at simplevcs app""" in response.body, 'missing info about commit message'
-        assert """<span class="removed" title="removed">0</span>""" in response.body, 'wrong info about removed nodes'
-        assert """<span class="changed" title="changed">2</span>""" in response.body, 'wrong info about changed nodes'
-        assert """<span class="added" title="added">1</span>""" in response.body, 'wrong info about added nodes'
-        
+        assert """<span class="removed" title="removed: ">0</span>""" in response.body, 'wrong info about removed nodes'
+        assert """<span class="changed" title="changed: hg.py | models.py">2</span>""" in response.body, 'wrong info about changed nodes'
+        assert """<span class="added" title="added: managers.py">1</span>""" in response.body, 'wrong info about added nodes'
+
         #pagination
-        
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':1})
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':2})
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':3})
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':4})
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':5})
-        response = self.app.get(url(controller='changelog', action='index', repo_name='vcs_test'), {'page':6})
+
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':1})
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':2})
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':3})
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':4})
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':5})
+        response = self.app.get(url(controller='changelog', action='index', repo_name=HG_REPO), {'page':6})
+
         # Test response after pagination...
 
-        assert """<span class="removed" title="removed">20</span>"""in response.body, 'wrong info about number of removed'
-        assert """<span class="changed" title="changed">1</span>"""in response.body, 'wrong info about number of changes'
-        assert """<span class="added" title="added">0</span>"""in response.body, 'wrong info about number of added'
         assert """<div class="date">commit 64: 46ad32a4f974@2010-04-20 00:33:21</div>"""in response.body, 'wrong info about commit 64'
-        assert """<div class="message"><a href="/vcs_test/changeset/46ad32a4f974">Merge with 2e6a2bf9356ca56df08807f4ad86d480da72a8f4</a></div>"""in response.body, 'wrong info about commit 64 is a merge'
-        
+        assert """<span class="removed" title="removed: api.rst">1</span>"""in response.body, 'wrong info about number of removed'
+        assert """<span class="changed" title="changed: .hgignore | README.rst | conf.py | index.rst | setup.py | test_hg.py | test_nodes.py | __init__.py | __init__.py | base.py | hg.py | nodes.py | __init__.py">13</span>"""in response.body, 'wrong info about number of changes'
+        assert """<span class="added" title="added: hg.rst | index.rst | index.rst | nodes.rst | index.rst | simplevcs.rst | installation.rst | quickstart.rst | setup.cfg | baseui_config.py | web.py | __init__.py | exceptions.py | __init__.py | exceptions.py | middleware.py | models.py | settings.py | utils.py | views.py">20</span>"""in response.body, 'wrong info about number of added'
+        assert """<div class="message"><a href="/%s/changeset/46ad32a4f974e45472a898c6b0acb600320579b1">Merge with 2e6a2bf9356ca56df08807f4ad86d480da72a8f4</a></div>""" % HG_REPO in response.body, 'wrong info about commit 64 is a merge'
+
+
+
+    #def test_index_git(self):
+    #    self.log_user()
+    #    response = self.app.get(url(controller='changelog', action='index', repo_name=GIT_REPO))
--- a/rhodecode/tests/functional/test_changeset.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_changeset.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,5 +4,5 @@
 
     def test_index(self):
         response = self.app.get(url(controller='changeset', action='index',
-                                    repo_name='vcs_test',revision='tip'))
+                                    repo_name=HG_REPO,revision='tip'))
         # Test response...
--- a/rhodecode/tests/functional/test_feed.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_feed.py	Sun Nov 14 17:24:32 2010 +0100
@@ -5,11 +5,11 @@
     def test_rss(self):
         self.log_user()
         response = self.app.get(url(controller='feed', action='rss',
-                                    repo_name='vcs_test'))
+                                    repo_name=HG_REPO))
         # Test response...
 
     def test_atom(self):
         self.log_user()
         response = self.app.get(url(controller='feed', action='atom',
-                                    repo_name='vcs_test'))
+                                    repo_name=HG_REPO))
         # Test response...
\ No newline at end of file
--- a/rhodecode/tests/functional/test_files.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_files.py	Sun Nov 14 17:24:32 2010 +0100
@@ -5,7 +5,7 @@
     def test_index(self):
         self.log_user()
         response = self.app.get(url(controller='files', action='index',
-                                    repo_name='vcs_test',
+                                    repo_name=HG_REPO,
                                     revision='tip',
                                     f_path='/'))
         # Test response...
--- a/rhodecode/tests/functional/test_hg.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_hg.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,8 +4,8 @@
 
     def test_index(self):
         self.log_user()
-        response = self.app.get(url(controller='hg', action='index'))
+        response = self.app.get(url(controller='home', action='index'))
         #if global permission is set
         assert 'ADD NEW REPOSITORY' in response.body, 'Wrong main page'
-        assert 'href="/vcs_test/summary"' in response.body, ' mising repository in list'
+        assert 'href="/%s/summary"' % HG_REPO in response.body, ' mising repository in list'
         # Test response...
--- a/rhodecode/tests/functional/test_login.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_login.py	Sun Nov 14 17:24:32 2010 +0100
@@ -17,7 +17,7 @@
         assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status
         assert response.session['rhodecode_user'].username == 'test_admin', 'wrong logged in user'
         response = response.follow()
-        assert 'vcs_test repository' in response.body
+        assert '%s repository' % HG_REPO in response.body
 
     def test_login_regular_ok(self):
         response = self.app.post(url(controller='login', action='index'),
@@ -27,7 +27,7 @@
         assert response.status == '302 Found', 'Wrong response code from login got %s' % response.status
         assert response.session['rhodecode_user'].username == 'test_regular', 'wrong logged in user'
         response = response.follow()
-        assert 'vcs_test repository' in response.body
+        assert '%s repository' % HG_REPO in response.body
         assert '<a title="Admin" href="/_admin">' not in response.body
 
     def test_login_ok_came_from(self):
--- a/rhodecode/tests/functional/test_repos.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_repos.py	Sun Nov 14 17:24:32 2010 +0100
@@ -11,34 +11,61 @@
     def test_index_as_xml(self):
         response = self.app.get(url('formatted_repos', format='xml'))
 
-    def test_create(self):
+    def test_create_hg(self):
         self.log_user()
-        repo_name = 'vcs_test_new'
+        repo_name = NEW_HG_REPO
         description = 'description for newly created repo'
         private = False
         response = self.app.post(url('repos'), {'repo_name':repo_name,
-                                               'description':description,
-                                               'private':private})
+                                                'repo_type':'hg',
+                                                'description':description,
+                                                'private':private})
 
         print response
-        
+
         #test if we have a message for that repository
         print '-' * 100
         print response.session
         assert '''created repository %s''' % (repo_name) in response.session['flash'][0], 'No flash message about new repo'
-                      
+
         #test if the fork was created in the database
         new_repo = self.sa.query(Repository).filter(Repository.repo_name == repo_name).one()
-        
+
         assert new_repo.repo_name == repo_name, 'wrong name of repo name in db'
         assert new_repo.description == description, 'wrong description'
-        
+
         #test if repository is visible in the list ?
         response = response.follow()
-        
+
         assert repo_name in response.body, 'missing new repo from the main repos list'
-        
-                
+
+    def test_create_git(self):
+        self.log_user()
+        repo_name = NEW_GIT_REPO
+        description = 'description for newly created repo'
+        private = False
+        response = self.app.post(url('repos'), {'repo_name':repo_name,
+                                                'repo_type':'git',
+                                                'description':description,
+                                                'private':private})
+
+        print response
+
+        #test if we have a message for that repository
+        print '-' * 100
+        print response.session
+        assert '''created repository %s''' % (repo_name) in response.session['flash'][0], 'No flash message about new repo'
+
+        #test if the fork was created in the database
+        new_repo = self.sa.query(Repository).filter(Repository.repo_name == repo_name).one()
+
+        assert new_repo.repo_name == repo_name, 'wrong name of repo name in db'
+        assert new_repo.description == description, 'wrong description'
+
+        #test if repository is visible in the list ?
+        response = response.follow()
+
+        assert repo_name in response.body, 'missing new repo from the main repos list'
 
 
     def test_new(self):
@@ -49,10 +76,10 @@
         response = self.app.get(url('formatted_new_repo', format='xml'))
 
     def test_update(self):
-        response = self.app.put(url('repo', repo_name='vcs_test'))
+        response = self.app.put(url('repo', repo_name=HG_REPO))
 
     def test_update_browser_fakeout(self):
-        response = self.app.post(url('repo', repo_name='vcs_test'), params=dict(_method='put'))
+        response = self.app.post(url('repo', repo_name=HG_REPO), params=dict(_method='put'))
 
     def test_delete(self):
         self.log_user()
@@ -60,54 +87,55 @@
         description = 'description for newly created repo'
         private = False
         response = self.app.post(url('repos'), {'repo_name':repo_name,
+                                                'repo_type':'hg',
                                                'description':description,
                                                'private':private})
 
         print response
-        
+
         #test if we have a message for that repository
         print '-' * 100
         print response.session
         assert '''created repository %s''' % (repo_name) in response.session['flash'][0], 'No flash message about new repo'
-                      
+
         #test if the repo was created in the database
         new_repo = self.sa.query(Repository).filter(Repository.repo_name == repo_name).one()
-        
+
         assert new_repo.repo_name == repo_name, 'wrong name of repo name in db'
         assert new_repo.description == description, 'wrong description'
-        
+
         #test if repository is visible in the list ?
         response = response.follow()
-        
+
         assert repo_name in response.body, 'missing new repo from the main repos list'
-        
-                
+
+
         response = self.app.delete(url('repo', repo_name=repo_name))
-        
+
         print '-' * 100
         print response.session
         assert '''deleted repository %s''' % (repo_name) in response.session['flash'][0], 'No flash message about delete repo'
-                
+
         response.follow()
-        
+
         #check if repo was deleted from db
         deleted_repo = self.sa.query(Repository).filter(Repository.repo_name == repo_name).scalar()
-        
+
         assert deleted_repo is None, 'Deleted repository was found in db'
-        
+
 
     def test_delete_browser_fakeout(self):
-        response = self.app.post(url('repo', repo_name='vcs_test'), params=dict(_method='delete'))
+        response = self.app.post(url('repo', repo_name=HG_REPO), params=dict(_method='delete'))
 
     def test_show(self):
         self.log_user()
-        response = self.app.get(url('repo', repo_name='vcs_test'))
+        response = self.app.get(url('repo', repo_name=HG_REPO))
 
     def test_show_as_xml(self):
-        response = self.app.get(url('formatted_repo', repo_name='vcs_test', format='xml'))
+        response = self.app.get(url('formatted_repo', repo_name=HG_REPO, format='xml'))
 
     def test_edit(self):
-        response = self.app.get(url('edit_repo', repo_name='vcs_test'))
+        response = self.app.get(url('edit_repo', repo_name=HG_REPO))
 
     def test_edit_as_xml(self):
-        response = self.app.get(url('formatted_edit_repo', repo_name='vcs_test', format='xml'))
+        response = self.app.get(url('formatted_edit_repo', repo_name=HG_REPO, format='xml'))
--- a/rhodecode/tests/functional/test_search.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_search.py	Sun Nov 14 17:24:32 2010 +0100
@@ -1,5 +1,4 @@
 from rhodecode.tests import *
-from rhodecode.lib.indexers import IDX_LOCATION
 import os
 from nose.plugins.skip import SkipTest
 
@@ -13,26 +12,25 @@
         # Test response...
 
     def test_empty_search(self):
-        
-        if os.path.isdir(IDX_LOCATION):
+        if os.path.isdir(self.index_location):
             raise SkipTest('skipped due to existing index')
         else:
             self.log_user()
-            response = self.app.get(url(controller='search', action='index'), {'q':'vcs_test'})
+            response = self.app.get(url(controller='search', action='index'), {'q':HG_REPO})
             assert 'There is no index to search in. Please run whoosh indexer' in response.body, 'No error message about empty index'
-        
+
     def test_normal_search(self):
         self.log_user()
         response = self.app.get(url(controller='search', action='index'), {'q':'def repo'})
         print response.body
         assert '10 results' in response.body, 'no message about proper search results'
         assert 'Permission denied' not in response.body, 'Wrong permissions settings for that repo and user'
-        
-    
+
+
     def test_repo_search(self):
         self.log_user()
-        response = self.app.get(url(controller='search', action='index'), {'q':'repository:vcs_test def test'})
+        response = self.app.get(url(controller='search', action='index'), {'q':'repository:%s def test' % HG_REPO})
         print response.body
         assert '4 results' in response.body, 'no message about proper search results'
         assert 'Permission denied' not in response.body, 'Wrong permissions settings for that repo and user'
-        
+
--- a/rhodecode/tests/functional/test_settings.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_settings.py	Sun Nov 14 17:24:32 2010 +0100
@@ -6,40 +6,38 @@
     def test_index(self):
         self.log_user()
         response = self.app.get(url(controller='settings', action='index',
-                                    repo_name='vcs_test'))
+                                    repo_name=HG_REPO))
         # Test response...
-    
+
     def test_fork(self):
         self.log_user()
         response = self.app.get(url(controller='settings', action='fork',
-                                    repo_name='vcs_test'))
-        
+                                    repo_name=HG_REPO))
+
 
     def test_fork_create(self):
         self.log_user()
-        fork_name = 'vcs_test_fork'
+        fork_name = HG_FORK
         description = 'fork of vcs test'
-        repo_name = 'vcs_test'
+        repo_name = HG_REPO
         response = self.app.post(url(controller='settings', action='fork_create',
                                     repo_name=repo_name),
                                     {'fork_name':fork_name,
+                                     'repo_type':'hg',
                                      'description':description,
                                      'private':'False'})
-        
-        
-        print response
-        
+
         #test if we have a message that fork is ok
         assert 'fork %s repository as %s task added' \
                       % (repo_name, fork_name) in response.session['flash'][0], 'No flash message about fork'
-                      
+
         #test if the fork was created in the database
         fork_repo = self.sa.query(Repository).filter(Repository.repo_name == fork_name).one()
-        
+
         assert fork_repo.repo_name == fork_name, 'wrong name of repo name in new db fork repo'
         assert fork_repo.fork.repo_name == repo_name, 'wrong fork parrent'
-        
-        
+
+
         #test if fork is visible in the list ?
         response = response.follow()
 
@@ -47,9 +45,6 @@
         #check if fork is marked as fork
         response = self.app.get(url(controller='summary', action='index',
                                     repo_name=fork_name))
-        
-        
-        print response
-        
+
         assert 'Fork of %s' % repo_name in response.body, 'no message about that this repo is a fork'
-        
+
--- a/rhodecode/tests/functional/test_shortlog.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_shortlog.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,5 +4,5 @@
 
     def test_index(self):
         self.log_user()
-        response = self.app.get(url(controller='shortlog', action='index',repo_name='vcs_test'))
+        response = self.app.get(url(controller='shortlog', action='index',repo_name=HG_REPO))
         # Test response...
--- a/rhodecode/tests/functional/test_summary.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_summary.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,8 +4,14 @@
 
     def test_index(self):
         self.log_user()
-        response = self.app.get(url(controller='summary', action='index', repo_name='vcs_test'))
-        print response
-        assert """<img style="margin-bottom:2px" class="icon" title="public repository" alt="public" src="/images/icons/lock_open.png"/>""" in response.body
-        
-        # Test response...
+        response = self.app.get(url(controller='summary', action='index', repo_name=HG_REPO))
+
+        #repo type
+        assert """<img style="margin-bottom:2px" class="icon" title="Mercurial repository" alt="Mercurial repository" src="/images/icons/hgicon.png"/>""" in response.body
+        assert """<img style="margin-bottom:2px" class="icon" title="public repository" alt="public repository" src="/images/icons/lock_open.png"/>""" in response.body
+
+        #codes stats
+        assert """var data = {"text/x-python": 42, "text/plain": 12};""" in response.body, 'wrong info about % of codes stats'
+
+        # clone url...
+        assert """<input type="text" id="clone_url" readonly="readonly" value="hg clone http://test_admin@localhost:80/%s" size="70"/>""" % HG_REPO in response.body
--- a/rhodecode/tests/functional/test_tags.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_tags.py	Sun Nov 14 17:24:32 2010 +0100
@@ -4,5 +4,10 @@
 
     def test_index(self):
         self.log_user()
-        response = self.app.get(url(controller='tags', action='index',repo_name='vcs_test'))
+        response = self.app.get(url(controller='tags', action='index', repo_name=HG_REPO))
+        assert """<a href="/%s/changeset/27cd5cce30c96924232dffcd24178a07ffeb5dfc">tip</a>""" % HG_REPO, 'wrong info about tip tag'
+        assert """<a href="/%s/changeset/fd4bdb5e9b2a29b4393a4ac6caef48c17ee1a200">0.1.4</a>""" % HG_REPO, 'wrong info about 0.1.4 tag'
+        assert """<a href="/%s/changeset/17544fbfcd33ffb439e2b728b5d526b1ef30bfcf">0.1.3</a>""" % HG_REPO, 'wrong info about 0.1.3 tag'
+        assert """<a href="/%s/changeset/a7e60bff65d57ac3a1a1ce3b12a70f8a9e8a7720">0.1.2</a>""" % HG_REPO, 'wrong info about 0.1.2 tag'
+        assert """<a href="/%s/changeset/eb3a60fc964309c1a318b8dfe26aa2d1586c85ae">0.1.1</a>""" % HG_REPO, 'wrong info about 0.1.1 tag'
         # Test response...
--- a/rhodecode/tests/functional/test_users.py	Sun Nov 14 01:30:02 2010 +0100
+++ b/rhodecode/tests/functional/test_users.py	Sun Nov 14 17:24:32 2010 +0100
@@ -10,7 +10,13 @@
         response = self.app.get(url('formatted_users', format='xml'))
 
     def test_create(self):
-        response = self.app.post(url('users'))
+        self.log_user()
+#        user_name = 'new_user'
+#        response = self.app.post(url('users'),{'repo_name':user_name,
+#                                                'repo_type':'hg',
+#                                               'description':description,
+#                                               'private':private})
+
 
     def test_new(self):
         response = self.app.get(url('new_user'))
Binary file rhodecode/tests/vcs_test.tar.gz has changed
Binary file rhodecode/tests/vcs_test_hg.tar.gz has changed
--- a/test.ini	Sun Nov 14 01:30:02 2010 +0100
+++ b/test.ini	Sun Nov 14 17:24:32 2010 +0100
@@ -43,6 +43,7 @@
 static_files = true
 lang=en
 cache_dir = %(here)s/data
+index_dir = /tmp/index
 
 ####################################
 ###         BEAKER CACHE        ####