Changeset 14785
- Timestamp:
- Jul 11, 2015, 2:53:25 PM (9 years ago)
- Location:
- tagsplugin/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
tagsplugin/trunk/changelog
r14153 r14785 8 8 * #11950: The tag TracLink doesn't allow trailing arguments 9 9 by supporting the 'realm' attribute in tag query expressions 10 * #12292: AssertionError: Page 5 out of range 10 11 11 12 new features -
tagsplugin/trunk/tractags/macros.py
r14159 r14785 3 3 # Copyright (C) 2006 Alec Thomas <alec@swapoff.org> 4 4 # Copyright (C) 2011 Itamar Ostricher <itamarost@gmail.com> 5 # Copyright (C) 2011-2014 Steffen Hoffmann <hoff.st@web.de> 5 # Copyright (C) 2011-2015 Steffen Hoffmann <hoff.st@web.de> 6 # Copyright (C) 2015 Ryan J Ollos <ryan.j.ollos@gmail.com> 6 7 # 7 8 # This software is licensed as described in the file COPYING, which … … 15 16 16 17 from trac.config import BoolOption, ListOption, Option 17 from trac.core import Component, implements18 from trac.core import Component, TracError, implements 18 19 from trac.resource import Resource, get_resource_description, \ 19 20 get_resource_url, render_resource_link … … 357 358 continue 358 359 if ul: 359 # Found new tag for cloud; now add previously prepared one. 360 # Found new tag for cloud; now add previously prepared one. 360 361 ul('\n', li) 361 362 else: … … 372 373 def _paginate(self, req, results, realms): 373 374 query = req.args.get('q', None) 374 current_page = as_int(req.args.get('listtagged_page'), 1) 375 items_per_page = as_int(req.args.get('listtagged_per_page'), None) 376 if items_per_page is None: 375 current_page = as_int(req.args.get('listtagged_page'), 1, min=1) 376 items_per_page = as_int(req.args.get('listtagged_per_page'), 377 self.items_per_page) 378 if items_per_page < 1: 377 379 items_per_page = self.items_per_page 378 result = Paginator(results, current_page - 1, items_per_page) 380 try: 381 result = Paginator(results, current_page - 1, items_per_page) 382 except (AssertionError, TracError), e: 383 self.log.warn("ListTagged macro: %s", e) 384 current_page = 1 385 result = Paginator(results, current_page - 1, items_per_page) 379 386 380 387 pagedata = [] -
tagsplugin/trunk/tractags/tests/macros.py
r14154 r14785 4 4 # Copyright (C) 2012-2014 Steffen Hoffmann <hoff.st@web.de> 5 5 # Copyright (C) 2014 Jun Omae <jun66j5@gmail.com> 6 # Copyright (C) 2015 Ryan J Ollos <ryan.j.ollos@gmail.com> 6 7 # 7 8 # This software is licensed as described in the file COPYING, which … … 50 51 % self.db.like(), ('TAGS_%',)) 51 52 53 def _insert_tags(self, tagspace, name, tags): 54 cursor = self.db.cursor() 55 args = [(tagspace, name, tag) for tag in tags] 56 cursor.executemany("INSERT INTO tags (tagspace,name,tag) " 57 "VALUES (%s,%s,%s)", args) 58 52 59 53 60 class TagTemplateProviderTestCase(_BaseTestCase): … … 65 72 66 73 class ListTaggedMacroTestCase(_BaseTestCase): 67 74 68 75 def setUp(self): 69 76 _BaseTestCase.setUp(self) … … 82 89 str(self.tag_twm.expand_macro(formatter, 83 90 'ListTagged', ''))) 91 92 def _test_listtagged_paginate(self, page, per_page=2): 93 self._insert_tags('wiki', 'InterTrac', ('blah',)) 94 self._insert_tags('wiki', 'InterWiki', ('blah',)) 95 self._insert_tags('wiki', 'WikiStart', ('blah',)) 96 self.req.args['listtagged_per_page'] = per_page 97 self.req.args['listtagged_page'] = page 98 context = Mock(env=self.env, href=Href('/'), req=self.req) 99 formatter = Mock(context=context, req=self.req) 100 result = \ 101 unicode(self.tag_twm.expand_macro(formatter, 'ListTagged', 'blah')) 102 return result 103 104 def test_listtagged_paginate_page1(self): 105 """Paginate results for page 1 has two items.""" 106 result = self._test_listtagged_paginate(1) 107 self.assertTrue('InterTrac' in result) 108 self.assertTrue('InterWiki' in result) 109 self.assertFalse('WikiStart' in result) 110 111 def test_listtagged_paginate_page2(self): 112 """Paginate results for page 2 has one item.""" 113 result = self._test_listtagged_paginate(2) 114 self.assertFalse('InterTrac' in result) 115 self.assertFalse('InterWiki' in result) 116 self.assertTrue('WikiStart' in result) 117 118 def test_listtagged_paginate_page_out_of_range(self): 119 """Out of range page defaults to 1.""" 120 result = self._test_listtagged_paginate(3) 121 self.assertTrue('InterTrac' in result) 122 self.assertTrue('InterWiki' in result) 123 self.assertFalse('WikiStart' in result) 124 125 def test_listtagged_paginate_page_invalid(self): 126 """Invalid page default to 1.""" 127 result = self._test_listtagged_paginate(-1) 128 self.assertTrue('InterTrac' in result) 129 self.assertTrue('InterWiki' in result) 130 self.assertFalse('WikiStart' in result) 131 132 def test_listtagged_paginate_per_page_invalid(self): 133 """Invalid per_page defaults to items_per_page (100).""" 134 result = self._test_listtagged_paginate(2, -1) 135 self.assertTrue('InterTrac' in result) 136 self.assertTrue('InterWiki' in result) 137 self.assertTrue('WikiStart' in result) 84 138 85 139 … … 102 156 def _expand_macro(self, content): 103 157 return self.tag_twm.expand_macro(self.formatter, 'TagCloud', content) 104 105 def _insert_tags(self, tagspace, name, tags):106 cursor = self.db.cursor()107 args = [(tagspace, name, tag) for tag in tags]108 cursor.executemany("INSERT INTO tags (tagspace,name,tag) "109 "VALUES (%s,%s,%s)", args)110 158 111 159 # Tests
Note: See TracChangeset
for help on using the changeset viewer.