jenkins-bot has submitted this change and it was merged.

Change subject: Unit test for http_get; minor clean-ups
......................................................................


Unit test for http_get; minor clean-ups

Change-Id: Ia329781b6b32a7376d26fd319c49dc7998c51ca6
---
M server/eventlogging/compat.py
M server/eventlogging/factory.py
M server/eventlogging/handlers.py
A server/tests/test_compat.py
4 files changed, 49 insertions(+), 11 deletions(-)

Approvals:
  Ori.livneh: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/server/eventlogging/compat.py b/server/eventlogging/compat.py
index 84ee6ed..c238388 100644
--- a/server/eventlogging/compat.py
+++ b/server/eventlogging/compat.py
@@ -27,7 +27,7 @@
     import json
 
 
-__all__ = ('items', 'json', 'unquote_plus', 'urlopen', 'uuid5')
+__all__ = ('http_get', 'items', 'json', 'unquote_plus', 'urlopen', 'uuid5')
 
 PY3 = sys.version_info[0] == 3
 
@@ -37,8 +37,8 @@
     from urllib.request import urlopen
 else:
     items = operator.methodcaller('iteritems')
-    from urllib2 import urlopen
     from urllib import unquote
+    from urllib2 import urlopen
     from urlparse import urlparse, parse_qsl
 
 
diff --git a/server/eventlogging/factory.py b/server/eventlogging/factory.py
index b63bb2f..a1364c1 100644
--- a/server/eventlogging/factory.py
+++ b/server/eventlogging/factory.py
@@ -10,8 +10,8 @@
 
 from .compat import items, parse_qsl
 
-__all__ = ('drive', 'writes', 'reads', 'get_writer', 'get_reader')
 
+__all__ = ('get_reader', 'get_writer', 'reads', 'writes', 'drive')
 
 _writers = {}
 _readers = {}
diff --git a/server/eventlogging/handlers.py b/server/eventlogging/handlers.py
index 68445d7..d2ad3cf 100644
--- a/server/eventlogging/handlers.py
+++ b/server/eventlogging/handlers.py
@@ -97,7 +97,7 @@
     log.addHandler(handler)
 
     while 1:
-        json_event = json.dumps((yield), check_circular=False)
+        json_event = json.dumps((yield), sort_keys=True, check_circular=False)
         log.info(json_event)
 
 
@@ -106,17 +106,18 @@
     """Publish events on a ZeroMQ publisher socket."""
     pub = pub_socket(uri)
     while 1:
-        json_event = json.dumps((yield), check_circular=False)
+        json_event = json.dumps((yield), sort_keys=True, check_circular=False)
         pub.send_unicode(json_event + '\n')
 
 
 @writes('stdout')
-def stdout_writer(uri, **kwargs):
+def stdout_writer(uri):
     """Writes events to stdout. Pretty-prints if stdout is a terminal."""
+    dumps_kwargs = dict(sort_keys=True, check_circular=False)
     if sys.stdout.isatty():
-        kwargs.setdefault('indent', 2)
+        dumps_kwargs.update(indent=2)
     while 1:
-        print(json.dumps((yield), sort_keys=True, **kwargs))
+        print(json.dumps((yield), **dumps_kwargs))
 
 
 #
@@ -133,9 +134,8 @@
 @reads('tcp')
 def zeromq_subscriber(uri, socket_id=None, subscribe=''):
     """Reads data from a ZeroMQ publisher."""
-    sub = sub_socket(uri, identity=socket_id, subscribe=subscribe)
-    for event in iter_socket_json(sub):
-        yield event
+    sock = sub_socket(uri, identity=socket_id, subscribe=subscribe)
+    return iter_socket_json(sock)
 
 
 @reads('udp')
diff --git a/server/tests/test_compat.py b/server/tests/test_compat.py
new file mode 100644
index 0000000..403ca0d
--- /dev/null
+++ b/server/tests/test_compat.py
@@ -0,0 +1,38 @@
+# -*- coding: utf8 -*-
+"""
+  eventlogging unit tests
+  ~~~~~~~~~~~~~~~~~~~~~~~
+
+  This module contains tests for :module:`eventlogging.compat`.
+
+"""
+from __future__ import unicode_literals
+
+import multiprocessing
+import unittest
+import wsgiref.simple_server
+
+from eventlogging.compat import http_get
+
+
+class SingleServingHttpd(multiprocessing.Process):
+    def __init__(self, resp):
+        self.resp = resp.encode('utf-8')
+        super(SingleServingHttpd, self).__init__()
+
+    def run(self):
+        def app(environ, start_response):
+            start_response(str('200 OK'), [])
+            return [self.resp]
+        httpd = wsgiref.simple_server.make_server('127.0.0.1', 44080, app)
+        httpd.handle_request()
+
+
+class HttpGetTestCase(unittest.TestCase):
+    """Test cases for ``http_get``."""
+    def test_http_get(self):
+        """``http_get`` can pull content via HTTP."""
+        server = SingleServingHttpd('secret')
+        server.start()
+        response = http_get('http://127.0.0.1:44080')
+        self.assertEquals(response, 'secret')

-- 
To view, visit https://gerrit.wikimedia.org/r/75275
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ia329781b6b32a7376d26fd319c49dc7998c51ca6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/EventLogging
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to