You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by ju...@apache.org on 2013/02/18 16:14:09 UTC

svn commit: r1447303 - in /incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests: env.py ticket/notification.py

Author: jure
Date: Mon Feb 18 15:14:09 2013
New Revision: 1447303

URL: http://svn.apache.org/r1447303
Log:
#355, test cases for ticket notifications, patch t355_r1444754_trac_test_ticket_notification.diff applied (from Olemis)


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

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=1447303&r1=1447302&r2=1447303&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 18 15:14:09 2013
@@ -45,6 +45,13 @@ from multiproduct.api import MultiProduc
 from multiproduct.env import ProductEnvironment
 from multiproduct.model import Product
 
+class ProductEnvironmentStub(ProductEnvironment):
+    r"""A product environment slightly tweaked for testing purposes
+    """
+    def get_known_users(self, cnx=None):
+        return self.known_users
+
+
 # FIXME: Subclass TestCase explictly ?
 class MultiproductTestCase(unittest.TestCase):
     r"""Mixin providing access to multi-product testing extensions.

Added: incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/notification.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/notification.py?rev=1447303&view=auto
==============================================================================
--- incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/notification.py (added)
+++ incubator/bloodhound/branches/bep_0003_multiproduct/bloodhound_multiproduct/tests/ticket/notification.py Mon Feb 18 15:14:09 2013
@@ -0,0 +1,69 @@
+
+#  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 notifications 
+in product environments"""
+
+import unittest
+
+from trac.tests.notification import SMTPThreadedServer
+from trac.ticket.tests import notification
+
+from tests.env import ProductEnvironmentStub as ProductEnvironment
+from tests.env import MultiproductTestCase
+
+class ProductNotificationTestCase(notification.NotificationTestCase, 
+        MultiproductTestCase):
+
+    @property
+    def env(self):
+        env = getattr(self, '_env', None)
+        if env is None:
+            self.global_env = self._setup_test_env()
+            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 = env = ProductEnvironment(
+                    self.global_env, self.default_product)
+            self._load_default_data(self._env)
+        return env
+
+    @env.setter
+    def env(self, value):
+        pass
+
+    def tearDown(self):
+        notification.notifysuite.tear_down()
+        self.global_env.reset_db()
+
+class ProductNotificationTestSuite(notification.NotificationTestSuite):
+    def __init__(self):
+        """Start the local SMTP test server"""
+        notification.NotificationTestSuite.__init__(self)
+        self._tests = []
+        self.addTest(unittest.makeSuite(ProductNotificationTestCase, 'test'))
+
+
+def test_suite():
+    if not notification.notifysuite:
+        notification.notifysuite = ProductNotificationTestSuite()
+    return notification.notifysuite
+
+if __name__ == '__main__':
+    unittest.TextTestRunner(verbosity=2).run(test_suite())
+