commit 5c4c8112eec99bd253dd934c167244bf13c99cec Author: Damian Johnson atagar@torproject.org Date: Fri Jan 10 13:19:17 2020 -0800
Replace usage of StringIO
Python 2.x had three copies of StringIO:
* StringIO.StringIO => Original iirc, and long ago deprecated. * cStringIO.StringIO => More efficient, but also deprecated. * io.StringIO => Latest copy and the only present in python 3.x.
This fixes a few stacktraces like the following...
Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/twisted/trial/runner.py", line 823, in loadByName return self.suiteFactory([self.findByName(name, recurse=recurse)]) ... File "./bridgedb/test/test_metrics.py", line 18, in <module> import StringIO builtins.ImportError: No module named 'StringIO'
This changes the test outcome as follows...
before: FAILED (skips=1, failures=6, errors=54, successes=246) after: FAILED (skips=1, failures=8, errors=53, successes=250) --- bridgedb/Bridges.py | 6 ------ bridgedb/qrcodes.py | 4 ++-- bridgedb/test/test_metrics.py | 4 ++-- bridgedb/test/test_persistent.py | 4 ++-- bridgedb/test/test_persistentSaveAndLoad.py | 4 ++-- 5 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/bridgedb/Bridges.py b/bridgedb/Bridges.py index f80f4cd..7ec60e6 100644 --- a/bridgedb/Bridges.py +++ b/bridgedb/Bridges.py @@ -28,12 +28,6 @@ from bridgedb.parse.fingerprint import isValidFingerprint from bridgedb.parse.fingerprint import toHex from bridgedb.safelog import logSafely
-try: - from cStringIO import StringIO -except ImportError: - from io import StringIO - - ID_LEN = 20 # XXX Only used in commented out line in Storage.py DIGEST_LEN = 20 PORTSPEC_LEN = 16 diff --git a/bridgedb/qrcodes.py b/bridgedb/qrcodes.py index b3c4546..80e82c8 100644 --- a/bridgedb/qrcodes.py +++ b/bridgedb/qrcodes.py @@ -13,7 +13,7 @@ """Utilities for working with QRCodes."""
-import cStringIO +import io import logging
try: @@ -60,7 +60,7 @@ def generateQR(bridgelines, imageFormat=u'JPEG', bridgeSchema=False): qr = qrcode.QRCode() qr.add_data(bridgelines)
- buf = cStringIO.StringIO() + buf = io.StringIO() img = qr.make_image().resize([350, 350]) img.save(buf, imageFormat) buf.seek(0) diff --git a/bridgedb/test/test_metrics.py b/bridgedb/test/test_metrics.py index ce0f63d..fcc9e4a 100644 --- a/bridgedb/test/test_metrics.py +++ b/bridgedb/test/test_metrics.py @@ -15,7 +15,7 @@ These tests are meant to ensure that the :mod:`bridgedb.metrics` module is functioning as expected. """
-import StringIO +import io import json import os
@@ -104,7 +104,7 @@ class StateTest(unittest.TestCase): self.metrix.inc(self.key)
self.metrix.coldMetrics = self.metrix.hotMetrics - pseudo_fh = StringIO.StringIO() + pseudo_fh = io.StringIO() metrics.export(pseudo_fh, 0)
self.assertTrue(len(pseudo_fh.getvalue()) > 0) diff --git a/bridgedb/test/test_persistent.py b/bridgedb/test/test_persistent.py index 6547475..3ff6d87 100644 --- a/bridgedb/test/test_persistent.py +++ b/bridgedb/test/test_persistent.py @@ -17,10 +17,10 @@ functioning as expected.
from __future__ import print_function
+import io import os.path
from copy import deepcopy -from io import StringIO
from bridgedb import persistent from bridgedb.parse.options import MainOptions @@ -33,7 +33,7 @@ from sure import the from sure import expect
-TEST_CONFIG_FILE = StringIO(unicode("""\ +TEST_CONFIG_FILE = io.StringIO(unicode("""\ BRIDGE_FILES = ['bridge-descriptors', 'bridge-descriptors.new'] LOGFILE = 'bridgedb.log'"""))
diff --git a/bridgedb/test/test_persistentSaveAndLoad.py b/bridgedb/test/test_persistentSaveAndLoad.py index 18f601e..7678948 100644 --- a/bridgedb/test/test_persistentSaveAndLoad.py +++ b/bridgedb/test/test_persistentSaveAndLoad.py @@ -18,17 +18,17 @@ are all functioning as expected. This module should not import :mod:`sure`. """
+import io import os
from copy import deepcopy -from io import StringIO
from twisted.trial import unittest
from bridgedb import persistent
-TEST_CONFIG_FILE = StringIO(unicode("""\ +TEST_CONFIG_FILE = io.StringIO(unicode("""\ BRIDGE_FILES = ['bridge-descriptors', 'bridge-descriptors.new'] LOGFILE = 'bridgedb.log'"""))