illume committed 251b900

Fix for sprite.AbstractGroup.has() infinite recursion bug. thanks
Randy Kaelber.
Began a sprite unittest. With only a test for the has bug so far.

Comments (0)

Files changed (3)

 # BREAK = change breaks existing code
 # BUG	= fixed a bug that was (or could have been) crashing
+November 7, 2005
+    Fix for sprite.AbstractGroup.has inf recursion bug. thanks Randy Kaelber.
+    Began work on a sprite unittest.
 October 28, 2005
     fix for do_set_icon when display not initialised. Thanks John Popplewell!
                 for spr in sprite:
-                    if not self.has(sprite):
+                    if not self.has(spr):
                         return False
                 return True
             except (TypeError, AttributeError):


+import unittest
+from pygame import sprite
+class SpriteTest( unittest.TestCase ):
+    def testAbstractGroup_has( self ):
+        """ See if abstractGroup has works as expected.
+        """
+        ag = sprite.AbstractGroup()
+        ag2 = sprite.AbstractGroup()
+        s1 = sprite.Sprite(ag)
+        s2 = sprite.Sprite(ag)
+        s3 = sprite.Sprite(ag2)
+        s4 = sprite.Sprite(ag2)
+        self.assertEqual(True, s1 in ag )
+        self.assertEqual(True, ag.has(s1) )
+        self.assertEqual(True, ag.has([s1, s2]) )
+        # see if one of them not being in there.
+        self.assertNotEqual(True, ag.has([s1, s2, s3]) )
+        # see if a second AbstractGroup works.
+        self.assertEqual(True, ag2.has(s3) )
+if __name__ == '__main__':
+    unittest.main()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.