Ori.livneh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/75275
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(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/EventLogging
refs/changes/75/75275/1
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: newchange
Gerrit-Change-Id: Ia329781b6b32a7376d26fd319c49dc7998c51ca6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/EventLogging
Gerrit-Branch: master
Gerrit-Owner: Ori.livneh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits