Author: jure
Date: Mon Feb 11 10:24:23 2013
New Revision: 1444725

URL: http://svn.apache.org/r1444725
Log:
#355, ticket model tests, patch t355_r1442601_trac_test_ticket_model.patch 
applied (from Olemis)


Added:
    
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/model.py
Modified:
    
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
    
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/env.py

Modified: 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py?rev=1444725&r1=1444724&r2=1444725&view=diff
==============================================================================
--- 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
 (original)
+++ 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/multiproduct/env.py
 Mon Feb 11 10:24:23 2013
@@ -105,7 +105,7 @@ class EnvironmentStub(trac.test.Environm
         self.parent = None
         self.product = None
         self.mpsystem = None
-        super(EnvironmentStub, self).__init__(default_data=default_data,
+        super(EnvironmentStub, self).__init__(default_data=False,
                                               enable=enable, disable=disable,
                                               path=path, destroying=destroying)
         # Apply multi product upgrades. This is required as the database proxy 
(translator)
@@ -117,6 +117,9 @@ class EnvironmentStub(trac.test.Environm
         except OperationalError:
             pass
 
+        if default_data:
+            self.reset_db(default_data)
+
     @staticmethod
     def enable_component_in_config(env, cls):
         """Keep track of enabled state in configuration as well 

Modified: 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/env.py
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/env.py?rev=1444725&r1=1444724&r2=1444725&view=diff
==============================================================================
--- 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/env.py
 (original)
+++ 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/env.py
 Mon Feb 11 10:24:23 2013
@@ -117,13 +117,14 @@ class MultiproductTestCase(unittest.Test
 
     # Test setup
 
-    def _setup_test_env(self, create_folder=True, path=None):
+    def _setup_test_env(self, create_folder=True, path=None, **kwargs):
         r"""Prepare a new test environment . 
 
         Optionally set its path to a meaningful location (temp folder
         if `path` is `None`).
         """
-        self.env = env = EnvironmentStub(enable=['trac.*', 'multiproduct.*'])
+        kwargs.setdefault('enable', ['trac.*', 'multiproduct.*'])
+        self.env = env = EnvironmentStub(**kwargs)
         if create_folder:
             if path is None:
                 env.path = tempfile.mkdtemp('bh-product-tempenv')
@@ -172,6 +173,20 @@ class MultiproductTestCase(unittest.Test
             # table remains but database version is deleted
             pass
 
+    def _load_default_data(self, env):
+        r"""Initialize environment with default data by respecting
+        values set in system table.
+        """
+        from trac import db_default
+
+        with env.db_transaction as db:
+            for table, cols, vals in db_default.get_data(db):
+                if table != 'system':
+                    db.executemany('INSERT INTO %s (%s) VALUES (%s)' %
+                            (table, ','.join(cols), 
+                                    ','.join(['%s' for c in cols])),
+                            vals)
+
     def _mp_setup(self):
         """Shortcut for quick product-aware environment setup.
         """

Added: 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/model.py
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/model.py?rev=1444725&view=auto
==============================================================================
--- 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/model.py
 (added)
+++ 
incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/model.py
 Mon Feb 11 10:24:23 2013
@@ -0,0 +1,62 @@
+
+#  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
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+
+"""Tests for Apache(TM) Bloodhound's tickets model in product environments"""
+
+import unittest
+
+from trac.ticket.tests.model import TicketTestCase, TicketCommentTestCase, \
+        TicketCommentEditTestCase, TicketCommentDeleteTestCase, EnumTestCase, \
+        MilestoneTestCase, ComponentTestCase, VersionTestCase
+
+from multiproduct.env import ProductEnvironment
+from tests.env import MultiproductTestCase
+
+class ProductTicketTestCase(TicketTestCase, MultiproductTestCase):
+
+    def setUp(self):
+        self.global_env = self._setup_test_env(create_folder=False, 
+                default_data=True)
+        self._upgrade_mp(self.global_env)
+        self._setup_test_log(self.global_env)
+        self._load_product_from_data(self.global_env, self.default_product)
+        self.env = ProductEnvironment(self.global_env, self.default_product)
+        self._load_default_data(self.env)
+
+        self.env.config.set('ticket-custom', 'foo', 'text')
+        self.env.config.set('ticket-custom', 'cbon', 'checkbox')
+        self.env.config.set('ticket-custom', 'cboff', 'checkbox')
+
+    def tearDown(self):
+        self.global_env.reset_db()
+
+
+def test_suite():
+    suite = unittest.TestSuite()
+    suite.addTest(unittest.makeSuite(ProductTicketTestCase, 'test'))
+#    suite.addTest(unittest.makeSuite(ProductTicketCommentEditTestCase, 
'test'))
+#    suite.addTest(unittest.makeSuite(ProductTicketCommentDeleteTestCase, 
'test'))
+#    suite.addTest(unittest.makeSuite(ProductEnumTestCase, 'test'))
+#    suite.addTest(unittest.makeSuite(ProductMilestoneTestCase, 'test'))
+#    suite.addTest(unittest.makeSuite(ProductComponentTestCase, 'test'))
+#    suite.addTest(unittest.makeSuite(ProductVersionTestCase, 'test'))
+    return suite
+
+if __name__ == '__main__':
+    unittest.main(defaultTest='test_suite')
+


Reply via email to