commit e893c41565345720997a6195a498e37a6a455039 Author: Damian Johnson atagar@torproject.org Date: Tue Jan 14 13:08:03 2020 -0800
Fix persistence tests
Nothing too interesting. Few files needed to be opened in bytes mode and a deprecated os function replaced...
Traceback (most recent call last): File "/home/atagar/Desktop/tor/bridgedb/bridgedb/test/test_persistent.py", line 53, in setUp fakeArgs = ['-c', os.path.join(os.getcwdu(), '..', 'bridgedb.conf')] builtins.AttributeError: module 'os' has no attribute 'getcwdu'
Test results changed as follows...
before: FAILED (skips=109, failures=24, errors=349, successes=498) after: FAILED (skips=109, failures=22, errors=318, successes=531) --- bridgedb/parse/options.py | 2 +- bridgedb/persistent.py | 11 ++++++++--- bridgedb/test/test_persistent.py | 2 +- bridgedb/test/test_persistentSaveAndLoad.py | 6 +++--- 4 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/bridgedb/parse/options.py b/bridgedb/parse/options.py index 0eeb79e..c32ada3 100644 --- a/bridgedb/parse/options.py +++ b/bridgedb/parse/options.py @@ -206,7 +206,7 @@ class BaseOptions(usage.Options): if rundir is not None: gRundir = os.path.abspath(os.path.expanduser(rundir)) else: - gRundir = os.getcwdu() + gRundir = os.getcwd() setRundir(gRundir)
if not os.path.isdir(gRundir): # pragma: no cover diff --git a/bridgedb/persistent.py b/bridgedb/persistent.py index 89d3dd4..3d52ec5 100644 --- a/bridgedb/persistent.py +++ b/bridgedb/persistent.py @@ -128,6 +128,11 @@ class State(jelly.Jellyable):
:param string statefile: The filename of the statefile. """ + + if filename is None: + self._statefile = None + return + filename = os.path.abspath(os.path.expanduser(filename)) logging.debug("Setting statefile to '%s'" % filename) self._statefile = filename @@ -173,8 +178,8 @@ class State(jelly.Jellyable): err = ''
try: - if isinstance(statefile, str): - fh = open(statefile, 'r') + if isinstance(statefile, (str, bytes)): + fh = open(statefile, 'rb') elif not statefile.closed: fh = statefile except (IOError, OSError) as error: # pragma: no cover @@ -209,7 +214,7 @@ class State(jelly.Jellyable):
fh = None try: - fh = open(statefile, 'w') + fh = open(statefile, 'wb') except (IOError, OSError) as error: # pragma: no cover logging.warn("Error writing state file to '%s': %s" % (statefile, error)) diff --git a/bridgedb/test/test_persistent.py b/bridgedb/test/test_persistent.py index 269cc86..21aa67f 100644 --- a/bridgedb/test/test_persistent.py +++ b/bridgedb/test/test_persistent.py @@ -50,7 +50,7 @@ class StateTest(unittest.TestCase): exec(compiled, configuration) config = persistent.Conf(**configuration)
- fakeArgs = ['-c', os.path.join(os.getcwdu(), '..', 'bridgedb.conf')] + fakeArgs = ['-c', os.path.join(os.getcwd(), '..', 'bridgedb.conf')] options = MainOptions() options.parseOptions(fakeArgs)
diff --git a/bridgedb/test/test_persistentSaveAndLoad.py b/bridgedb/test/test_persistentSaveAndLoad.py index d01a536..bcdcdd7 100644 --- a/bridgedb/test/test_persistentSaveAndLoad.py +++ b/bridgedb/test/test_persistentSaveAndLoad.py @@ -58,8 +58,8 @@ class StateSaveAndLoadTests(unittest.TestCase): self.assertNotIdentical(self.state, loadedState) self.assertNotEqual(self.state, loadedState)
- self.assertEqual(self.state.__dict__.keys().sort(), - loadedState.__dict__.keys().sort()) + self.assertEqual(list(self.state.__dict__.keys()).sort(), + list(loadedState.__dict__.keys()).sort())
def savedStateAssertions(self, savedStatefile=None): self.assertTrue(os.path.isfile(str(self.state.statefile))) @@ -148,7 +148,7 @@ class StateSaveAndLoadTests(unittest.TestCase): self.state.load, 'quux.state')
def test_load_with_statefile_opened(self): - fh = open('quux.state', 'w+') + fh = open('quux.state', 'wb+') self.assertRaises(persistent.MissingState, self.state.load, fh) fh.close()
tor-commits@lists.torproject.org