[tor-commits] [bridgedb/master] Fix persistence tests

phw at torproject.org phw at torproject.org
Wed Feb 19 18:26:37 UTC 2020


commit e893c41565345720997a6195a498e37a6a455039
Author: Damian Johnson <atagar at 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()
 





More information about the tor-commits mailing list