commit 6d48a779c406643b8bdd2ceb4ad33299e092cbee Author: Damian Johnson atagar@torproject.org Date: Sat Aug 23 18:31:45 2014 -0700
Correcting StatusEvent's docs and adding an 'arguments' attribute
Our StatusEvent class misdocumented its 'action' argument as being called 'message'. Also, it wasn't clear that it commonly had keyword arguments available. Technically they were available since the parent class supplied these in its keyword_args attribute, but adding an alias for that to the StatusEvent to make it clear that they're usually provided.
Issues caught by sysrqb on...
https://trac.torproject.org/12925 --- stem/response/events.py | 10 +++++++++- test/unit/response/events.py | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/stem/response/events.py b/stem/response/events.py index 0065d68..b640d2d 100644 --- a/stem/response/events.py +++ b/stem/response/events.py @@ -848,7 +848,8 @@ class StatusEvent(Event):
:var stem.StatusType status_type: category of the status event :var stem.Runlevel runlevel: runlevel of the logged message - :var str message: logged message + :var str action: activity that caused this message + :var dict arguments: attributes about the event """
_POSITIONAL_ARGS = ('runlevel', 'action') @@ -864,6 +865,13 @@ class StatusEvent(Event): else: raise ValueError("BUG: Unrecognized status type (%s), likely an EVENT_TYPE_TO_CLASS addition without revising how 'status_type' is assigned." % self.type)
+ # Just an alias for our parent class' keyword_args since that already + # parses these for us. Unlike our other event types Tor commonly supplies + # arbitrary key/value pairs for these, so making an alias here to better + # draw attention that the StatusEvent will likely have them. + + self.arguments = self.keyword_args + self._log_if_unrecognized('runlevel', stem.Runlevel)
diff --git a/test/unit/response/events.py b/test/unit/response/events.py index dac2609..a44d536 100644 --- a/test/unit/response/events.py +++ b/test/unit/response/events.py @@ -900,7 +900,7 @@ class TestEvents(unittest.TestCase): 'SUMMARY': 'Loading relay descriptors', }
- self.assertEqual(expected_attr, event.keyword_args) + self.assertEqual(expected_attr, event.arguments)
def test_status_event_bootstrap_stuck(self): event = _get_event(STATUS_CLIENT_BOOTSTRAP_STUCK)
tor-commits@lists.torproject.org