Changeset - 86e087bd75ce
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 13 years ago 2012-12-07 01:04:17
marcin@python-works.com
fixed tests, made the journal filter consistent accross different databases
2 files changed with 26 insertions and 5 deletions:
0 comments (0 inline, 0 general)
rhodecode/controllers/admin/admin.py
Show inline comments
 
@@ -30,7 +30,7 @@ from sqlalchemy.orm import joinedload
 
from webhelpers.paginate import Page
 
from whoosh.qparser.default import QueryParser
 
from whoosh import query
 
from sqlalchemy.sql.expression import or_, and_
 
from sqlalchemy.sql.expression import or_, and_, func
 

	
 
from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator
 
from rhodecode.lib.base import BaseController, render
 
@@ -63,12 +63,12 @@ def _journal_filter(user_log, search_ter
 
        if wc_term.startswith('*') and not wc_term.endswith('*'):
 
            #postfix == endswith
 
            wc_term = remove_prefix(wc_term, prefix='*')
 
            return getattr(col, 'endswith')(wc_term)
 
            return func.lower(col).endswith(wc_term)
 
        elif wc_term.startswith('*') and wc_term.endswith('*'):
 
            #wildcard == ilike
 
            wc_term = remove_prefix(wc_term, prefix='*')
 
            wc_term = remove_suffix(wc_term, suffix='*')
 
            return getattr(col, 'contains')(wc_term)
 
            return func.lower(col).contains(wc_term)
 

	
 
    def get_filterion(field, val, term):
 

	
 
@@ -88,10 +88,10 @@ def _journal_filter(user_log, search_ter
 
        if isinstance(term, query.Wildcard):
 
            return wildcard_handler(field, val)
 
        elif isinstance(term, query.Prefix):
 
            return field.startswith(val)
 
            return func.lower(field).startswith(func.lower(val))
 
        elif isinstance(term, query.DateRange):
 
            return and_(field >= val[0], field <= val[1])
 
        return field == val
 
        return func.lower(field) == func.lower(val)
 

	
 
    if isinstance(qry, (query.And, query.Term, query.Prefix, query.Wildcard,
 
                        query.DateRange)):
rhodecode/tests/functional/test_admin.py
Show inline comments
 
@@ -24,6 +24,9 @@ class TestAdminController(TestController
 
                    v = safe_unicode(v)
 
                    if k == 'action_date':
 
                        v = datetime.datetime.strptime(v, '%Y-%m-%d %H:%M:%S.%f')
 
                    if k in ['user_id', 'repository_id']:
 
                        #nullable due to FK problems
 
                        v = None
 
                    setattr(ul, k, v)
 
                Session().add(ul)
 
            Session().commit()
 
@@ -49,6 +52,12 @@ class TestAdminController(TestController
 
                                    filter='repository:rhodecode'))
 
        response.mustcontain('3 entries')
 

	
 
    def test_filter_journal_filter_exact_match_on_repository_CamelCase(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
 
                                    filter='repository:RhodeCode'))
 
        response.mustcontain('3 entries')
 

	
 
    def test_filter_journal_filter_wildcard_on_repository(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
 
@@ -61,6 +70,12 @@ class TestAdminController(TestController
 
                                    filter='repository:test*'))
 
        response.mustcontain('257 entries')
 

	
 
    def test_filter_journal_filter_prefix_on_repository_CamelCase(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
 
                                    filter='repository:Test*'))
 
        response.mustcontain('257 entries')
 

	
 
    def test_filter_journal_filter_prefix_on_repository_and_user(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
 
@@ -79,6 +94,12 @@ class TestAdminController(TestController
 
                                    filter='username:demo'))
 
        response.mustcontain('1087 entries')
 

	
 
    def test_filter_journal_filter_exact_match_on_username_camelCase(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
 
                                    filter='username:DemO'))
 
        response.mustcontain('1087 entries')
 

	
 
    def test_filter_journal_filter_wildcard_on_username(self):
 
        self.log_user()
 
        response = self.app.get(url(controller='admin/admin', action='index',
0 comments (0 inline, 0 general)