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/14 07:20:13 UTC
svn commit: r1557944 - in
/bloodhound/trunk/bloodhound_multiproduct/tests/functional: __init__.py
admin.py
Author: rjollos
Date: Tue Jan 14 06:20:13 2014
New Revision: 1557944
URL: http://svn.apache.org/r1557944
Log:
0.8dev: Added functional tests for renaming product from admin page and console. Refs #671.
Modified:
bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py
bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py?rev=1557944&r1=1557943&r2=1557944&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/functional/__init__.py Tue Jan 14 06:20:13 2014
@@ -736,6 +736,7 @@ class BloodhoundFunctionalTester(Functio
self.tester.url = self.prev_url
def create_product(self, prefix=None, name=None, desc=None):
+ """Create a product from the product list page."""
products_url = self.url + '/products'
tc.go(products_url)
tc.find('Products')
@@ -743,7 +744,7 @@ class BloodhoundFunctionalTester(Functio
tc.find('New Product')
prefix = prefix or random_word()
- name = prefix or random_sentence()
+ name = name or random_sentence()
desc = desc or random_paragraph()
tc.formvalue('edit', 'prefix', prefix)
@@ -753,6 +754,27 @@ class BloodhoundFunctionalTester(Functio
tc.find('The product "%s" has been added' % prefix)
return prefix, name
+ def admin_create_product(self, prefix=None, name=None, owner=None):
+ """Create a product from the admin page."""
+ admin_product_url = self.url + '/admin/ticket/products'
+ tc.go(admin_product_url)
+ tc.url(admin_product_url + '$')
+ prefix = prefix or random_word()
+ name = name or random_sentence()
+ owner = owner or random_word()
+ tc.formvalue('addproduct', 'prefix', prefix)
+ tc.formvalue('addproduct', 'name', name)
+ tc.formvalue('addproduct', 'owner', owner)
+ tc.submit()
+
+ tc.find(r'The product "%s" has been added' % prefix)
+ tc.find(r'<a href="/admin/ticket/products/%s">%s</a>'
+ % (prefix, prefix))
+ tc.find(r'<a href="/admin/ticket/products/%s">%s</a>'
+ % (prefix, name))
+ tc.find(r'<td class="owner">%s</td>' % owner)
+ return prefix, name, owner
+
def go_to_dashboard(self):
"""Surf to the dashboard page."""
self.go_to_front()
Modified: bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py
URL: http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py?rev=1557944&r1=1557943&r2=1557944&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py (original)
+++ bloodhound/trunk/bloodhound_multiproduct/tests/functional/admin.py Tue Jan 14 06:20:13 2014
@@ -18,6 +18,7 @@
# under the License.
import unittest
+import uuid
from trac.perm import PermissionSystem
from trac.tests.functional import FunctionalTwillTestCaseSetup, internal_error
@@ -35,7 +36,7 @@ class TestAdminProductDefault(Multiprodu
FunctionalTwillTestCaseSetup):
def runTest(self):
"""Admin set default product"""
- prefix, name = self._tester.create_product()
+ prefix, name, owner = self._tester.admin_create_product(owner='admin')
products_url = self._tester.url + '/admin/ticket/products'
tc.go(products_url)
tc.formvalue('product_table', 'default', prefix)
@@ -44,7 +45,7 @@ class TestAdminProductDefault(Multiprodu
% prefix)
tc.go(self._tester.url + '/newticket')
tc.find('<option selected="selected" value="%s">%s</option>'
- % (prefix, prefix))
+ % (prefix, name))
# Test the "Clear default" button
tc.go(products_url)
@@ -52,6 +53,52 @@ class TestAdminProductDefault(Multiprodu
tc.notfind('type="radio" name="default" value=".+" checked="checked"')
+class TestAdminProductRename(MultiproductFunctionalTestCase,
+ FunctionalTwillTestCaseSetup):
+ def runTest(self):
+ """Rename product from the admin page."""
+ prefix, name, owner = self._tester.admin_create_product(owner='admin')
+ with self.in_product(prefix) as (testenv, tester):
+ t1 = tester.create_ticket()
+ t2 = tester.create_ticket()
+ new_name = '%s%s' % (name, str(uuid.uuid4()).split('-')[0])
+
+ admin_product_url = self._tester.url + '/admin/ticket/products'
+ tc.go(admin_product_url + '/' + prefix)
+ tc.formvalue('modprod', 'name', new_name)
+ tc.submit('save')
+ tc.find("Your changes have been saved")
+ tc.find(r'<a href="/admin/ticket/products/%s">%s</a>'
+ % (prefix, new_name))
+
+ 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)
+
+
+class TestConsoleProductRename(MultiproductFunctionalTestCase,
+ FunctionalTwillTestCaseSetup):
+ def runTest(self):
+ """Rename product from the console."""
+ prefix, name, owner = self._tester.admin_create_product(owner='admin')
+ with self.in_product(prefix) as (testenv, tester):
+ t1 = tester.create_ticket()
+ t2 = tester.create_ticket()
+ new_name = '%s%s' % (name, str(uuid.uuid4()).split('-')[0])
+
+ self._testenv._tracadmin('product', 'rename', prefix, new_name)
+
+ 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)
+
+
class RegressionTestBhTicket667(MultiproductFunctionalTestCase,
FunctionalTwillTestCaseSetup):
@@ -81,6 +128,8 @@ def functionalSuite(suite=None):
suite = tests.functional.functionalSuite()
suite.addTest(TestAdminProductDefault())
+ suite.addTest(TestAdminProductRename())
+ suite.addTest(TestConsoleProductRename())
suite.addTest(RegressionTestBhTicket667())
return suite