3 commits - pykolab/format

Jeroen van Meeuwen vanmeeuwen at kolabsys.com
Wed Feb 22 19:40:02 CET 2012


 pykolab/format/tests/test-thread_safety.py |   47 +++++++++++++++++++++++------
 1 file changed, 38 insertions(+), 9 deletions(-)

New commits:
commit f2c239d5723fb07732adc3ab252af169198243fc
Merge: 6465b07 cd59ca1
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Feb 22 18:39:52 2012 +0000

    Merge branch 'master' of ssh://git.kolab.org/git/libkolabxml



commit 6465b07078dd307be16df08b1b4bb72ee6781e32
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Feb 22 18:39:22 2012 +0000

    Split them back up again, so we get all errors, and not just one-by-one.

diff --git a/pykolab/format/tests/test-thread_safety.py b/pykolab/format/tests/test-thread_safety.py
index bd6bb3f..7bcb210 100644
--- a/pykolab/format/tests/test-thread_safety.py
+++ b/pykolab/format/tests/test-thread_safety.py
@@ -42,17 +42,50 @@ class TestThreadSafety(unittest.TestCase):
         self.thread2 = ThreadEvent()
         self.thread2.start()
 
-    def test_thread_safety(self):
-        self.create_threads()
-
+        # Serialize the two events in order.
         self.thread1.write()
         self.uid1 = self.thread1.uid()
 
         self.thread2.write()
         self.uid2 = self.thread2.uid()
 
+        # Both threads should now have events with a different uid, contained
+        # within the (local) uid1 and uid2 variables.
+
+        # Now that we've serialized the event in thread #2, let's see if we can
+        # get back to the uid used for the event in thread #1.
         self.uid3 = self.thread1.uid()
 
-        self.assertNotEqual(self.uid1, self.uid2, "<uid> for event #1 is the same as the <uid> for event #2")
-        self.assertNotEqual(self.uid3, self.uid2, "<uid> for event #1 (3) is the same as the <uid> for event #2, after serializing event #2 in a different thread.")
-        self.assertEqual(self.uid1, self.uid3, "<uid> for event #1 is not the same <uid> for event #1 after serializing event #2 in a different thread.")
+    def test_thread_safety_uid1_ne_uid2(self):
+        self.create_threads()
+
+        # The uid for the event in thread #1 cannot be the same as the uid for
+        # the event in thread #2.
+        self.assertNotEqual(
+                self.uid1,
+                self.uid2,
+                "The <uid> for the event in thread #1 is the same as the " + \
+                    "<uid> for the event in thread #2."
+            )
+
+    def test_thread_safety_uid3_ne_uid2(self):
+        self.create_threads()
+
+        self.assertNotEqual(
+                self.uid3,
+                self.uid2,
+                "After serializing the event in thread #2, the uid method " + \
+                    "on thread #1 returns the same uid for the event in thread #1."
+            )
+
+    def test_thread_safety_uid1_eq_uid3(self):
+        self.create_threads()
+
+        self.assertEqual(
+                self.uid1,
+                self.uid3,
+                "After serializing the event in thread #2, the uid method " + \
+                    "on thread #1 returns a different uid for the event " + \
+                    "in thread #1, than was the original for the event in " + \
+                    "thread #1."
+            )


commit 050300075548aa0f9d5e0528968b125f0111374e
Author: Jeroen van Meeuwen (Kolab Systems) <vanmeeuwen at kolabsys.com>
Date:   Wed Feb 22 18:26:52 2012 +0000

    Put all tests back in one call, and use the msg=None parameter to assertEqual/assertNotEqual

diff --git a/pykolab/format/tests/test-thread_safety.py b/pykolab/format/tests/test-thread_safety.py
index 531398e..bd6bb3f 100644
--- a/pykolab/format/tests/test-thread_safety.py
+++ b/pykolab/format/tests/test-thread_safety.py
@@ -28,6 +28,7 @@ class ThreadEvent(threading.Thread):
         self.myevent.setDescription("Celebrate new years eve with some champagne, family and friends")
 
     def write(self):
+        self.create_event()
         writeEvent(self.myevent)
 
     def uid(self):
@@ -52,11 +53,6 @@ class TestThreadSafety(unittest.TestCase):
 
         self.uid3 = self.thread1.uid()
 
-    def test_thread_uno_uid_does_not_match_thread_dos_uid(self):
-        self.assertNotEqual(self.uid1, self.uid2)
-
-    def test_thread_uno_uid_after_thread_dos_write_does_not_match_thread_dos_uid(self):
-        self.assertNotEqual(uid3, uid2)
-
-    def test_thread_uno_uid_after_thread_dos_write_matches_thread_uno_uid(self):
-        self.assertEqual(uid1, uid3)
+        self.assertNotEqual(self.uid1, self.uid2, "<uid> for event #1 is the same as the <uid> for event #2")
+        self.assertNotEqual(self.uid3, self.uid2, "<uid> for event #1 (3) is the same as the <uid> for event #2, after serializing event #2 in a different thread.")
+        self.assertEqual(self.uid1, self.uid3, "<uid> for event #1 is not the same <uid> for event #1 after serializing event #2 in a different thread.")





More information about the commits mailing list