[tor-commits] [stem/master] Add test cases for ORCONN events

atagar at torproject.org atagar at torproject.org
Sat Dec 15 21:48:57 UTC 2012


commit 04633d4243f88f232a39daf5cbffbb228ee8f6bf
Author: Sean Robinson <seankrobinson at gmail.com>
Date:   Fri Dec 14 15:44:35 2012 -0700

    Add test cases for ORCONN events
    
    Rename ORCONN_CONNECTED to ORCONN_LAUNCHED and use ORCONN_CONNECTED
    for more complex _parse() method test.  Adds three bad events to trigger
    exceptions in _parse().  Move sample lines to alphabetic position among
    other sample cases.
    
    Signed-off-by: Sean Robinson <seankrobinson at gmail.com>
---
 test/unit/response/events.py |   66 ++++++++++++++++++++++++++++++-----------
 1 files changed, 48 insertions(+), 18 deletions(-)

diff --git a/test/unit/response/events.py b/test/unit/response/events.py
index 48aab32..db33367 100644
--- a/test/unit/response/events.py
+++ b/test/unit/response/events.py
@@ -190,6 +190,24 @@ s Fast HSDir Named Stable V2Dir Valid
 650 OK
 """
 
+# ORCONN events from starting tor 0.2.2.39 via TBB
+
+ORCONN_CLOSED = "650 ORCONN $A1130635A0CDA6F60C276FBF6994EFBD4ECADAB1~tama CLOSED REASON=DONE"
+ORCONN_CONNECTED = "650 ORCONN 127.0.0.1:9000 CONNECTED NCIRCS=20"
+ORCONN_LAUNCHED = "650 ORCONN $7ED90E2833EE38A75795BA9237B0A4560E51E1A0=GreenDragon LAUNCHED"
+
+ORCONN_CONNECTED_BAD_1 = "650 ORCONN \
+$7ED90E2833EE38A75795BA9237B0A4560E5=GreenD \
+LAUNCHED"
+
+ORCONN_CONNECTED_BAD_2 = "650 ORCONN \
+127.0.0.1:001 \
+CONNECTED"
+
+ORCONN_CONNECTED_BAD_3 = "650 ORCONN \
+127.0.0.1:9000 \
+CONNECTED NCIRCS=too_many"
+
 # STATUS_* events that I was able to easily trigger. Most came from starting
 # TBB, then listening while it bootstrapped.
 
@@ -266,11 +284,6 @@ STREAM_DNS_REQUEST = "650 STREAM 1113 NEW 0 www.google.com:0 \
 SOURCE_ADDR=127.0.0.1:15297 \
 PURPOSE=DNS_REQUEST"
 
-# ORCONN events from starting tor 0.2.2.39 via TBB
-
-ORCONN_CONNECTED = "650 ORCONN $7ED90E2833EE38A75795BA9237B0A4560E51E1A0=GreenDragon CONNECTED"
-ORCONN_CLOSED = "650 ORCONN $A1130635A0CDA6F60C276FBF6994EFBD4ECADAB1~tama CLOSED REASON=DONE"
-
 # NEWDESC events. I've never actually seen multiple descriptors in an event,
 # but the spec allows for it.
 
@@ -638,19 +651,6 @@ class TestEvents(unittest.TestCase):
     self.assertEqual([expected_desc], event.desc)
   
   def test_orconn_event(self):
-    event = _get_event(ORCONN_CONNECTED)
-    
-    self.assertTrue(isinstance(event, stem.response.events.ORConnEvent))
-    self.assertEqual(ORCONN_CONNECTED.lstrip("650 "), str(event))
-    self.assertEqual("$7ED90E2833EE38A75795BA9237B0A4560E51E1A0=GreenDragon", event.endpoint)
-    self.assertEqual("7ED90E2833EE38A75795BA9237B0A4560E51E1A0", event.endpoint_fingerprint)
-    self.assertEqual("GreenDragon", event.endpoint_nickname)
-    self.assertEqual(None, event.endpoint_address)
-    self.assertEqual(None, event.endpoint_port)
-    self.assertEqual(ORStatus.CONNECTED, event.status)
-    self.assertEqual(None, event.reason)
-    self.assertEqual(None, event.circ_count)
-    
     event = _get_event(ORCONN_CLOSED)
     
     self.assertTrue(isinstance(event, stem.response.events.ORConnEvent))
@@ -663,6 +663,36 @@ class TestEvents(unittest.TestCase):
     self.assertEqual(ORStatus.CLOSED, event.status)
     self.assertEqual(ORClosureReason.DONE, event.reason)
     self.assertEqual(None, event.circ_count)
+    
+    event = _get_event(ORCONN_CONNECTED)
+    
+    self.assertTrue(isinstance(event, stem.response.events.ORConnEvent))
+    self.assertEqual(ORCONN_CONNECTED.lstrip("650 "), str(event))
+    self.assertEqual("127.0.0.1:9000", event.endpoint)
+    self.assertEqual(None, event.endpoint_fingerprint)
+    self.assertEqual(None, event.endpoint_nickname)
+    self.assertEqual('127.0.0.1', event.endpoint_address)
+    self.assertEqual(9000, event.endpoint_port)
+    self.assertEqual(ORStatus.CONNECTED, event.status)
+    self.assertEqual(None, event.reason)
+    self.assertEqual(20, event.circ_count)
+    
+    event = _get_event(ORCONN_LAUNCHED)
+    
+    self.assertTrue(isinstance(event, stem.response.events.ORConnEvent))
+    self.assertEqual(ORCONN_LAUNCHED.lstrip("650 "), str(event))
+    self.assertEqual("$7ED90E2833EE38A75795BA9237B0A4560E51E1A0=GreenDragon", event.endpoint)
+    self.assertEqual("7ED90E2833EE38A75795BA9237B0A4560E51E1A0", event.endpoint_fingerprint)
+    self.assertEqual("GreenDragon", event.endpoint_nickname)
+    self.assertEqual(None, event.endpoint_address)
+    self.assertEqual(None, event.endpoint_port)
+    self.assertEqual(ORStatus.LAUNCHED, event.status)
+    self.assertEqual(None, event.reason)
+    self.assertEqual(None, event.circ_count)
+    
+    self.assertRaises(ProtocolError, _get_event, ORCONN_CONNECTED_BAD_1)
+    self.assertRaises(ProtocolError, _get_event, ORCONN_CONNECTED_BAD_2)
+    self.assertRaises(ProtocolError, _get_event, ORCONN_CONNECTED_BAD_3)
   
   def test_signal_event(self):
     event = _get_event("650 SIGNAL DEBUG")





More information about the tor-commits mailing list