[tor-commits] [ooni-probe/master] Make getDiff take as required argument a TrueHeaders object instead of a dict

art at torproject.org art at torproject.org
Thu Nov 29 14:42:49 UTC 2012


commit a3025bf24be234c6fbb6b9fad251ad5fa0ef4e6f
Author: Arturo Filastò <art at fuffa.org>
Date:   Thu Nov 29 13:13:46 2012 +0100

    Make getDiff take as required argument a TrueHeaders object instead of a dict
---
 ooni/templates/httpt.py        |    3 ++-
 ooni/utils/txagentwithsocks.py |   20 +++++++++++++-------
 tests/test_trueheaders.py      |    8 ++++----
 3 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/ooni/templates/httpt.py b/ooni/templates/httpt.py
index dcd8ff9..804a3e4 100644
--- a/ooni/templates/httpt.py
+++ b/ooni/templates/httpt.py
@@ -115,9 +115,10 @@ class HTTPTest(NetTestCase):
             failure (instance): An instance of :class:twisted.internet.failure.Failure
         """
         log.debug("Adding %s to report" % request)
+        request_headers = TrueHeaders(request['headers'])
         request_response = {
             'request': {
-                'headers': request['headers'],
+                'headers': list(request_headers.getAllRawHeaders()),
                 'body': request['body'],
                 'url': request['url'],
                 'method': request['method']
diff --git a/ooni/utils/txagentwithsocks.py b/ooni/utils/txagentwithsocks.py
index ffaa733..7c34288 100644
--- a/ooni/utils/txagentwithsocks.py
+++ b/ooni/utils/txagentwithsocks.py
@@ -149,18 +149,25 @@ class TrueHeaders(http_headers.Headers):
         self._rawHeaders[name.lower()]['name'] = name
         self._rawHeaders[name.lower()]['values'] = values
 
-    def getDiff(self, header_dict, ignore=[]):
+    def getDiff(self, headers, ignore=[]):
         """
-        ignore: specify a list of header fields to ignore
 
-        Returns a set containing the header names that are not present in
-        header_dict or not present in self.
+        Args:
+
+            headers: a TrueHeaders object
+
+            ignore: specify a list of header fields to ignore
+
+        Returns:
+
+            a set containing the header names that are not present in
+            header_dict or not present in self.
         """
         diff = set()
         field_names = []
 
         headers_a = copy(self)
-        headers_b = TrueHeaders(header_dict)
+        headers_b = copy(headers)
         for name in ignore:
             try:
                 del headers_a._rawHeaders[name.lower()]
@@ -176,8 +183,7 @@ class TrueHeaders(http_headers.Headers):
             field_names.append(k)
 
         for name in field_names:
-            if self.getRawHeaders(name) and \
-                name in header_dict:
+            if self.getRawHeaders(name) and headers.getRawHeaders(name):
                 pass
             else:
                 diff.add(name)
diff --git a/tests/test_trueheaders.py b/tests/test_trueheaders.py
index 33521b8..9ac0a27 100644
--- a/tests/test_trueheaders.py
+++ b/tests/test_trueheaders.py
@@ -23,18 +23,18 @@ dummy_headers_dict3 = {
 class TestTrueHeaders(unittest.TestCase):
     def test_names_match(self):
         th = TrueHeaders(dummy_headers_dict)
-        self.assertEqual(th.getDiff(dummy_headers_dict), set())
+        self.assertEqual(th.getDiff(TrueHeaders(dummy_headers_dict)), set())
 
     def test_names_not_match(self):
         th = TrueHeaders(dummy_headers_dict)
-        self.assertEqual(th.getDiff(dummy_headers_dict2), set(['Header3']))
+        self.assertEqual(th.getDiff(TrueHeaders(dummy_headers_dict2)), set(['Header3']))
 
         th = TrueHeaders(dummy_headers_dict3)
-        self.assertEqual(th.getDiff(dummy_headers_dict2), set(['Header3', 'Header4']))
+        self.assertEqual(th.getDiff(TrueHeaders(dummy_headers_dict2)), set(['Header3', 'Header4']))
 
     def test_names_match_expect_ignore(self):
         th = TrueHeaders(dummy_headers_dict)
-        self.assertEqual(th.getDiff(dummy_headers_dict2, ignore=['Header3']), set())
+        self.assertEqual(th.getDiff(TrueHeaders(dummy_headers_dict2), ignore=['Header3']), set())
 
 
 





More information about the tor-commits mailing list