[tor-commits] [stem/master] Test error conditions for ADDRMAP events

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


commit f1b81e062c2b1ec646f99b346b98dd3d4ec38057
Author: Sean Robinson <seankrobinson at gmail.com>
Date:   Fri Dec 14 14:30:40 2012 -0700

    Test error conditions for ADDRMAP events
    
    Add tests for missing quotes before (ADDRMAP_BAD_1) and after
    (ADDRMAP_BAD_2) the expiry positional argument.  Add a test for an
    error event (ADDRMAP_BAD_3), constructed from control-spec.txt.  Also,
    move the sample event lines to their alphabetic position in the list of
    other event samples.
    
    Signed-off-by: Sean Robinson <seankrobinson at gmail.com>
---
 test/unit/response/events.py |   30 ++++++++++++++++++++++++------
 1 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/test/unit/response/events.py b/test/unit/response/events.py
index 91eaa18..5422f50 100644
--- a/test/unit/response/events.py
+++ b/test/unit/response/events.py
@@ -13,6 +13,17 @@ import stem.util.log
 from stem import * # enums and exceptions
 from test import mocking
 
+# ADDRMAP event
+
+ADDRMAP = '650 ADDRMAP www.atagar.com 75.119.206.243 "2012-11-19 00:50:13" \
+EXPIRES="2012-11-19 08:50:13"'
+ADDRMAP_BAD_1 = '650 ADDRMAP www.atagar.com 75.119.206.243 2012-11-19 00:50:13" \
+EXPIRES="2012-11-19 08:50:13"'
+ADDRMAP_BAD_2 = '650 ADDRMAP www.atagar.com 75.119.206.243 "2012-11-19 00:50:13 \
+EXPIRES="2012-11-19 08:50:13"'
+ADDRMAP_BAD_3 = '650 ADDRMAP www.atagar.com <error> "2012-11-19 00:50:13" \
+error=yes EXPIRES="2012-11-19 08:50:13"'
+
 # BUILDTIMEOUT_SET event from tor 0.2.3.16.
 
 BUILD_TIMEOUT_EVENT = "650 BUILDTIMEOUT_SET COMPUTED \
@@ -193,12 +204,6 @@ NEWDESC_SINGLE = "650 NEWDESC $B3FA3110CC6F42443F039220C134CBD2FC4F0493=Sakura"
 NEWDESC_MULTIPLE = "650 NEWDESC $BE938957B2CA5F804B3AFC2C1EE6673170CDBBF8=Moonshine \
 $B4BE08B22D4D2923EDC3970FD1B93D0448C6D8FF~Unnamed"
 
-# ADDRMAP event
-# TODO: it would be nice to have an example of an error event
-
-ADDRMAP = '650 ADDRMAP www.atagar.com 75.119.206.243 "2012-11-19 00:50:13" \
-EXPIRES="2012-11-19 08:50:13"'
-
 def _get_event(content):
   controller_event = mocking.get_message(content)
   stem.response.convert("EVENT", controller_event, arrived_at = 25)
@@ -274,6 +279,19 @@ class TestEvents(unittest.TestCase):
     self.assertEqual(datetime.datetime(2012, 11, 19, 0, 50, 13), event.expiry)
     self.assertEqual(None, event.error)
     self.assertEqual(datetime.datetime(2012, 11, 19, 8, 50, 13), event.utc_expiry)
+    
+    self.assertRaises(ProtocolError, _get_event, ADDRMAP_BAD_1)
+    self.assertRaises(ProtocolError, _get_event, ADDRMAP_BAD_2)
+    
+    event = _get_event(ADDRMAP_BAD_3)
+    
+    self.assertTrue(isinstance(event, stem.response.events.AddrMapEvent))
+    self.assertEqual(ADDRMAP_BAD_3.lstrip("650 "), str(event))
+    self.assertEqual("www.atagar.com", event.hostname)
+    self.assertEqual(None, event.destination)
+    self.assertEqual(datetime.datetime(2012, 11, 19, 0, 50, 13), event.expiry)
+    self.assertEqual("yes", event.error)
+    self.assertEqual(datetime.datetime(2012, 11, 19, 8, 50, 13), event.utc_expiry)
   
   def test_authdir_newdesc_event(self):
     # TODO: awaiting test data - https://trac.torproject.org/7534





More information about the tor-commits mailing list