You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by rj...@apache.org on 2014/01/09 09:15:20 UTC
svn commit: r1556758 - in /bloodhound/trunk/bloodhound_multiproduct:
multiproduct/product_admin.py multiproduct/web_ui.py
tests/functional/__init__.py tests/functional/admin.py
tests/functional/product.py
Author: rjollos
Date: Thu Jan 9 08:15:19 2014
New Revision: 1556758
URL: http://svn.apache.org/r1556758
Log:
0.8dev: Use the authenticated user as the author of the change when renaming a product. Refs #671.
Initial patch and functional test case from Olemis.
Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py
bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py
bloodhound/trunk/bloodhound_multiproduct/tests/functional/product.py
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1556758&r1=1556757&r2=1556758&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Thu Jan 9 08:15:19 2014
@@ -27,7 +27,7 @@ from trac.config import *
from trac.perm import PermissionSystem
from trac.resource import ResourceNotFound
from trac.ticket.admin import TicketAdminPanel, _save_config
-from trac.util import lazy
+from trac.util import getuser, lazy
from trac.util.text import print_table, to_unicode, printerr, printout
from trac.util.translation import _, N_, gettext, ngettext
from trac.web.api import HTTPNotFound, IRequestFilter, IRequestHandler
@@ -94,7 +94,7 @@ class ProductAdminPanel(TicketAdminPanel
if req.args.get('save'):
req.perm.require('PRODUCT_MODIFY')
prod.update_field_dict(field_data)
- prod.update()
+ prod.update(req.authname)
add_notice(req, _('Your changes have been saved.'))
req.redirect(req.href.admin(cat, page))
elif req.args.get('cancel'):
@@ -188,7 +188,7 @@ class ProductAdminPanel(TicketAdminPanel
def _do_product_chown(self, prefix, owner):
product = self.load_product(prefix)
product._data['owner'] = owner
- product.update()
+ product.update(getuser())
def _do_product_list(self):
if not isinstance(self.env, ProductEnvironment):
@@ -202,7 +202,7 @@ class ProductAdminPanel(TicketAdminPanel
def _do_product_rename(self, prefix, newname):
product = self.load_product(prefix)
product._data['name'] = newname
- product.update()
+ product.update(getuser())
#--------------------------
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py?rev=1556758&r1=1556757&r2=1556758&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/web_ui.py Thu Jan 9 08:15:19 2014
@@ -161,7 +161,7 @@ class ProductModule(Component):
def warn(msg):
add_warning(req, msg)
warnings.append(msg)
-
+
if product._exists:
if name != product.name and Product.select(self.env,
where={'name': name}):
@@ -172,7 +172,7 @@ class ProductModule(Component):
else:
req.perm.require('PRODUCT_MODIFY')
product.update_field_dict(field_data)
- product.update()
+ product.update(req.authname)
add_notice(req, _('Your changes have been saved.'))
else:
req.perm.require('PRODUCT_CREATE')
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py?rev=1556758&r1=1556757&r2=1556758&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py Thu Jan 9 08:15:19 2014
@@ -750,7 +750,7 @@ class BloodhoundFunctionalTester(Functio
tc.formvalue('edit', 'description', desc)
tc.submit()
tc.find('The product "%s" has been added' % (prefix,))
- return prefix
+ return prefix, name
def go_to_dashboard(self):
"""Surf to the dashboard page."""
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py?rev=1556758&r1=1556757&r2=1556758&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py Thu Jan 9 08:15:19 2014
@@ -35,16 +35,16 @@ class TestAdminProductDefault(Multiprodu
FunctionalTwillTestCaseSetup):
def runTest(self):
"""Admin set default product"""
- name = self._tester.create_product()
+ prefix, name = self._tester.create_product()
products_url = self._tester.url + '/admin/ticket/products'
tc.go(products_url)
- tc.formvalue('product_table', 'default', name)
+ tc.formvalue('product_table', 'default', prefix)
tc.submit('apply')
tc.find('type="radio" name="default" value="%s" checked="checked"'
- % name)
+ % prefix)
tc.go(self._tester.url + '/newticket')
tc.find('<option selected="selected" value="%s">%s</option>'
- % (name, name))
+ % (prefix, prefix))
# Test the "Clear default" button
tc.go(products_url)
tc.submit('clear', 'product_table')
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/functional/product.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/functional/product.py?rev=1556758&r1=1556757&r2=1556758&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/functional/product.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/functional/product.py Thu Jan 9 08:15:19 2014
@@ -17,9 +17,13 @@
# specific language governing permissions and limitations
# under the License.
+from uuid import uuid4
+
from trac.tests.functional import FunctionalTwillTestCaseSetup
from trac.tests.functional.tester import tc
+from tests.functional import MultiproductFunctionalTestCase
+
#----------------
# Functional test cases for products
#----------------
@@ -27,7 +31,7 @@ from trac.tests.functional.tester import
class TestNewProduct(FunctionalTwillTestCaseSetup):
def runTest(self):
"""Setup new product"""
- prefix = self._tester.create_product()
+ prefix, name = self._tester.create_product()
base_url = self._testenv.get_env_href(prefix=prefix)
tc.url(base_url())
@@ -43,12 +47,41 @@ class TestNewProduct(FunctionalTwillTest
tc.find('<a[^>]*>Index by Title')
+class TestProductRenameAuthor(MultiproductFunctionalTestCase,
+ FunctionalTwillTestCaseSetup):
+ def runTest(self):
+ """Check for correct author in ticket comments on product rename
+ https://issues.apache.org/bloodhound/ticket/671
+ """
+ prefix, name = self._tester.create_product()
+ with self.in_product(prefix) as (testenv, tester):
+ t1 = tester.create_ticket()
+ t2 = tester.create_ticket()
+ new_name = '%s%s' % (name, str(uuid4()).split('-')[0])
+
+ tc.go(self._tester.url + '/products')
+ tc.follow('.*/products/' + prefix + r'\?action=edit$')
+ tc.find('Edit Product')
+ tc.find(prefix)
+ tc.formvalue('edit', 'name', new_name)
+ tc.submit()
+ tc.find('Your changes have been saved')
+
+ with self.in_product(prefix) as (testenv, tester):
+ tester.go_to_ticket(t1)
+ comment = 'Product %s renamed to %s' % (name, new_name)
+ tc.find(comment)
+ tester.go_to_ticket(t2)
+ tc.find(comment)
+
+
def functionalSuite(suite=None):
if not suite:
import tests.functional
suite = tests.functional.functionalSuite()
suite.addTest(TestNewProduct())
+ # suite.addTest(TestProductRenameAuthor())
return suite
if __name__ == '__main__':