[tor-commits] [bridgedb/develop] Add a unit test that verifies we don't add duplicate bridges

isis at torproject.org isis at torproject.org
Thu Mar 13 23:17:18 UTC 2014


commit 13fc557b8e4bd094457ca954129dceaa4445d744
Author: Matthew Finkel <Matthew.Finkel at gmail.com>
Date:   Tue Mar 4 13:03:48 2014 +0000

    Add a unit test that verifies we don't add duplicate bridges
    
    Previously we did not check that a bridge was already in a splitter,
    this resulted in adding bridges with (almost) identical information
    and #9264.
---
 lib/bridgedb/test/test_Bridges.py |   30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/lib/bridgedb/test/test_Bridges.py b/lib/bridgedb/test/test_Bridges.py
index 4e0b27e..421b308 100644
--- a/lib/bridgedb/test/test_Bridges.py
+++ b/lib/bridgedb/test/test_Bridges.py
@@ -109,3 +109,33 @@ class BridgeClassTest(unittest.TestCase):
         digests = Bridges.getExtraInfoDigests(StringIO(test))
         self.failUnlessIn(digest, digests)
         self.failUnlessEqual(content, digests[digest].read())
+
+    def test_splitterBridgeInsertion(self):
+        key = "Testing-Bridges-To-Rings"
+        splitter = Bridges.FilteredBridgeSplitter(key)
+
+        bridge1 = Bridges.Bridge('unamed1', '1.2.3.5', 9100,
+                            'a1cc8dfef1fa11af9c40af1054df9daf45250550')
+        bridge1.setStatus(running = True)
+        bridge2 = Bridges.Bridge('unamed2', '1.2.3.4', 8080,
+                            'a1cc8dfef1fa11af9c40af1054df9daf45250551')
+        bridge2.setStatus(running = True)
+        bridge3 = Bridges.Bridge('unamed3', '5.2.3.4', 8080,
+                            'b1cc8dfef1fa11af9c40af1054df9daf45250552')
+        bridge3.setStatus(running = True)
+        bridge4 = Bridges.Bridge('unamed3', '5.2.3.4', 8080,
+                            'b1cc8dfef1fa11af9c40af1054df9daf45250552')
+        bridge4.setStatus(running = True)
+
+        self.failUnlessEqual(len(splitter), 0)
+        splitter.insert(bridge1)
+        splitter.insert(bridge2)
+        splitter.insert(bridge3)
+        # Check that all were inserted
+        self.failUnlessEqual(len(splitter), 3)
+        splitter.insert(bridge1)
+        # Check that the same bridge is not inserted twice
+        self.failUnlessEqual(len(splitter), 3)
+        splitter.insert(bridge4)
+        # Check that identical bridges are not inserted twice
+        self.failUnlessEqual(len(splitter), 3)





More information about the tor-commits mailing list