Author: thimal
Date: Mon Aug 11 16:10:30 2014
New Revision: 1617316
URL: http://svn.apache.org/r1617316
Log:
added the test cases to plugins added (keywords suggest, duplicate ticket search
Added:
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/
- copied from r1617129, bloodhound/trunk/bloodhound_theme/bhtheme/tests/
Modified:
bloodhound/branches/bep_0013_dynamic_clientside_features/ (props changed)
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/theme.py
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/setup.py
Propchange: bloodhound/branches/bep_0013_dynamic_clientside_features/
------------------------------------------------------------------------------
Merged /bloodhound/trunk:r1617129
Modified:
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/theme.py
URL:
http://svn.apache.org/viewvc/bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/theme.py?rev=1617316&r1=1617129&r2=1617316&view=diff
==============================================================================
---
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/theme.py
(original)
+++
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/bhtheme/tests/theme.py
Mon Aug 11 16:10:30 2014
@@ -1,7 +1,7 @@
# -*- coding: UTF-8 -*-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
@@ -17,21 +17,43 @@
# specific language governing permissions and limitations
# under the License.
-from trac.test import EnvironmentStub
+import unittest
+
+from trac.test import EnvironmentStub, Mock, MockPerm
+from trac.util.datefmt import utc
from trac.web.chrome import Chrome
from bhdashboard.web_ui import DashboardModule
-from bhtheme.theme import BloodhoundTheme
+from bhtheme.theme import BloodhoundTheme, KeywordSuggestModule,
DuplicateTicketSearch, AutocompleteUsers
from bhtheme.tests import unittest
+from trac.ticket import Ticket
-class ThemeTestCase(unittest.TestCase):
+try:
+ from babel import Locale
+
+ locale_en = Locale.parse('en_US')
+except ImportError:
+ locale_en = None
+
+
+class ThemeTestCase(unittest.TestCase):
def setUp(self):
self.env = EnvironmentStub(enable=('trac.*', 'bhtheme.*'),
default_data=True)
self.bhtheme = BloodhoundTheme(self.env)
+ self.keywords_component = KeywordSuggestModule(self.env)
+ self.duplicateTicket_component = DuplicateTicketSearch(self.env)
+ self.autocompleteuser_component = AutocompleteUsers(self.env)
+
+ self.req = Mock(href=self.env.href, authname='anonymous', tz=utc,
+ args=dict(action='dummy'),
+ locale=locale_en, lc_time=locale_en,
+ chrome={'warnings': []})
+ self.req.perm = MockPerm()
+
def tearDown(self):
self.env.reset_db()
@@ -41,6 +63,78 @@ class ThemeTestCase(unittest.TestCase):
for dir in self.bhtheme.get_templates_dirs():
self.assertIn(dir, chrome.get_all_templates_dirs())
+ def test_get_users(self):
+
+ self.req.args['term'] = 'adm'
+ test_users = ['key1', 'key2', 'key3']
+
+ users = self.autocompleteuser_component._get_users(self.req)
+ self.assertEqual(test_users, users)
+
+ def test_get_keywords_string(self):
+ test_keywords = ['key1', 'key2', 'key3']
+
+ self._insert_ticket(self.env, 't1', 'key1,key2,key3')
+ self._insert_ticket(self.env, 't2', 'key1,key2')
+ self._insert_ticket(self.env, 't3', 'key1')
+ keywords = self.keywords_component._get_keywords_string(self.req)
+ self.assertEqual(test_keywords, keywords)
+
+ def test_terms_to_search_terms_4(self):
+
+ self.req.args['q'] = 'one two three four'
+ test_terms = ['one two three four', 'two three four', 'one two three']
+
+ terms = self.duplicateTicket_component._terms_to_search(self.req)
+ self.assertEqual(test_terms, terms)
+
+ def test_terms_to_search_terms_3(self):
+
+ self.req.args['q'] = 'one two three'
+ test_terms = ['one two three']
+
+ terms = self.duplicateTicket_component._terms_to_search(self.req)
+ self.assertEqual(test_terms, terms)
+
+ def test_sql_to_search_single_values(self):
+
+ db = self.env.get_db_cnx()
+ columns = ['summary']
+ terms = ['one two']
+ test_sql = "(summary LIKE %s ESCAPE '/')"
+ test_args = tuple(['%one two%'])
+
+ sql, args = self.duplicateTicket_component._sql_to_search(db, columns,
terms)
+ self.assertEqual(test_sql, sql)
+ self.assertEqual(test_args, args)
+
+ def test_sql_to_search(self):
+
+ db = self.env.get_db_cnx()
+ columns = ['summary', 'description']
+ terms = ['one two', 'one']
+ test_sql = "(summary LIKE %s ESCAPE '/'" \
+ " OR description LIKE %s ESCAPE '/')" \
+ " OR (summary LIKE %s ESCAPE '/' OR description LIKE %s
ESCAPE '/')"
+ test_args = tuple(['%one two%', '%one two%', '%one%', '%one%'])
+
+ sql, args = self.duplicateTicket_component._sql_to_search(db, columns,
terms)
+ self.assertEqual(test_sql, sql)
+ self.assertEqual(test_args, args)
+
+ @classmethod
+ def _insert_ticket(cls, env, summary, keywords, **kw):
+ """Helper for inserting a ticket into the database"""
+ ticket = Ticket(env)
+ ticket["summary"] = summary
+ ticket["keywords"] = keywords
+ for k, v in kw.items():
+ ticket[k] = v
+ return ticket.insert()
+
+ def _insert_and_load_ticket(self, summary, **kw):
+ return Ticket(self.env, self._insert_ticket(self.env, summary, **kw))
+
def suite():
suite = unittest.TestSuite()
Modified:
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/setup.py
URL:
http://svn.apache.org/viewvc/bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/setup.py?rev=1617316&r1=1617315&r2=1617316&view=diff
==============================================================================
---
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/setup.py
(original)
+++
bloodhound/branches/bep_0013_dynamic_clientside_features/bloodhound_theme/setup.py
Mon Aug 11 16:10:30 2014
@@ -56,6 +56,7 @@ setup(
'Framework :: Trac',
],
install_requires = ['BloodhoundDashboardPlugin', 'TracThemeEngine'],
+ test_suite = 'bhtheme.tests.suite',
tests_require = ['unittest2'] if sys.version_info < (2, 7) else [],
entry_points = {
'trac.plugins': [