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