view rhodecode/tests/functional/test_summary.py @ 1366:9c0f5d558789 beta

fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached to db repository instance, and then fetched from cache. Also made all current test work.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 07 Jun 2011 17:58:51 +0200
parents 6832ef664673
children 04027bdb876c
line wrap: on
line source

from rhodecode.tests import *
from rhodecode.model.db import Repository
from rhodecode.lib.utils import invalidate_cache

class TestSummaryController(TestController):

    def test_index(self):
        self.log_user()
        response = self.app.get(url(controller='summary',
                                    action='index', repo_name=HG_REPO))

        #repo type
        self.assertTrue("""<img style="margin-bottom:2px" class="icon" """
                        """title="Mercurial repository" alt="Mercurial """
                        """repository" src="/images/icons/hgicon.png"/>"""
                        in response.body)
        self.assertTrue("""<img style="margin-bottom:2px" class="icon" """
                        """title="public repository" alt="public """
                        """repository" src="/images/icons/lock_open.png"/>"""
                        in response.body)

        #codes stats
        self._enable_stats()


        invalidate_cache('get_repo_cached_%s' % HG_REPO)
        response = self.app.get(url(controller='summary', action='index',
                                    repo_name=HG_REPO))

        self.assertTrue("""var data = {"py": {"count": 42, "desc": """
                        """["Python"]}, "rst": {"count": 11, "desc": """
                        """["Rst"]}, "sh": {"count": 2, "desc": ["Bash"]}, """
                        """"makefile": {"count": 1, "desc": ["Makefile", """
                        """"Makefile"]}, "cfg": {"count": 1, "desc": ["Ini"]},"""
                        """ "css": {"count": 1, "desc": ["Css"]}, "bat": """
                        """{"count": 1, "desc": ["Batch"]}};"""
                        in response.body)

        # clone url...
        self.assertTrue("""<input type="text" id="clone_url" readonly="readonly" value="hg clone http://test_admin@localhost:80/%s" size="70"/>""" % HG_REPO in response.body)


    def _enable_stats(self):
        r = Repository.by_repo_name(HG_REPO)
        r.enable_statistics = True
        self.sa.add(r)
        self.sa.commit()