# HG changeset patch # User Marcin Kuzminski # Date 2012-09-07 16:00:31 # Node ID 1670ee0aded7af7eb5fc0e5a8816d49de66bb534 # Parent 9c90be87ae052c5862a5cad13aa7d2d72b45bccc fixed issue #559 fixed bug in routing that mapped repo names with _ in name as if it was a request to url by repository ID diff --git a/rhodecode/config/routing.py b/rhodecode/config/routing.py --- a/rhodecode/config/routing.py +++ b/rhodecode/config/routing.py @@ -34,7 +34,7 @@ def make_map(config): try: by_id = repo_name.split('_') - if len(by_id) == 2 and by_id[1].isdigit(): + if len(by_id) == 2 and by_id[1].isdigit() and by_id[0] == '': repo_name = Repository.get(by_id[1]).repo_name match_dict['repo_name'] = repo_name except: diff --git a/rhodecode/tests/functional/test_summary.py b/rhodecode/tests/functional/test_summary.py --- a/rhodecode/tests/functional/test_summary.py +++ b/rhodecode/tests/functional/test_summary.py @@ -1,6 +1,9 @@ from rhodecode.tests import * from rhodecode.model.db import Repository from rhodecode.lib.utils import invalidate_cache +from rhodecode.model.repo import RepoModel +from rhodecode.tests.models.common import _make_repo +from rhodecode.model.meta import Session class TestSummaryController(TestController): @@ -82,6 +85,20 @@ class TestSummaryController(TestControll """title="public repository" alt="public """ """repository" src="/images/icons/lock_open.png"/>""") + def test_index_by_repo_having_id_path_in_name_hg(self): + self.log_user() + _make_repo(name='repo_1') + Session().commit() + response = self.app.get(url(controller='summary', + action='index', + repo_name='repo_1')) + + try: + response.mustcontain("""repo_1""") + finally: + RepoModel().delete(Repository.get_by_repo_name('repo_1')) + Session().commit() + def test_index_by_id_git(self): self.log_user() ID = Repository.get_by_repo_name(GIT_REPO).repo_id