[tor-commits] [obfsproxy/master] Use temporary files instead of "/tmp" in scramblesuit unittests.

asn at torproject.org asn at torproject.org
Wed Jul 16 15:24:31 UTC 2014


commit 2296d90770fa6e67dde37228bd95492b79586a93
Author: George Kadianakis <desnacked at riseup.net>
Date:   Tue Jul 15 16:43:20 2014 +0300

    Use temporary files instead of "/tmp" in scramblesuit unittests.
    
    Conflicts:
    	obfsproxy/test/transports/test_scramblesuit.py
---
 obfsproxy/test/transports/test_scramblesuit.py |   51 ++++++++++++++++--------
 1 file changed, 34 insertions(+), 17 deletions(-)

diff --git a/obfsproxy/test/transports/test_scramblesuit.py b/obfsproxy/test/transports/test_scramblesuit.py
index 8481fab..0a71080 100644
--- a/obfsproxy/test/transports/test_scramblesuit.py
+++ b/obfsproxy/test/transports/test_scramblesuit.py
@@ -13,6 +13,7 @@ import obfsproxy.network.buffer as obfs_buf
 import obfsproxy.common.transport_config as transport_config
 import obfsproxy.transports.base as base
 
+import obfsproxy.transports.scramblesuit.state as state
 import obfsproxy.transports.scramblesuit.util as util
 import obfsproxy.transports.scramblesuit.const as const
 import obfsproxy.transports.scramblesuit.mycrypto as mycrypto
@@ -222,18 +223,16 @@ class UtilTest( unittest.TestCase ):
     def test4_setStateLocation( self ):
         name = (const.TRANSPORT_NAME).lower()
 
-        util.setStateLocation("/tmp")
-        self.failUnless(const.STATE_LOCATION == "/tmp/%s/" % name)
-
-        # Nothing should change if we pass "None".
-        util.setStateLocation(None)
-        self.failUnless(const.STATE_LOCATION == "/tmp/%s/" % name)
-
         # Check if function creates non-existant directories.
         d = tempfile.mkdtemp()
         util.setStateLocation(d)
         self.failUnless(const.STATE_LOCATION == "%s/%s/" % (d, name))
         self.failUnless(os.path.exists("%s/%s/" % (d, name)))
+
+        # Nothing should change if we pass "None".
+        util.setStateLocation(None)
+        self.failUnless(const.STATE_LOCATION == "%s/%s/" % (d, name))
+
         shutil.rmtree(d)
 
     def test5_getEpoch( self ):
@@ -256,15 +255,14 @@ class UtilTest( unittest.TestCase ):
         self.failUnless(util.readFromFile("/etc/shadow") == None)
 
 class StateTest( unittest.TestCase ):
-
     def setUp( self ):
-        const.STATE_LOCATION = "/tmp/"
-        self.stateFile = const.STATE_LOCATION + const.SERVER_STATE_FILE
+        const.STATE_LOCATION = tempfile.mkdtemp()
+        self.stateFile = os.path.join(const.STATE_LOCATION, const.SERVER_STATE_FILE)
         self.state = state.State()
 
     def tearDown( self ):
         try:
-            os.unlink(self.stateFile)
+            shutil.rmtree(const.STATE_LOCATION)
         except OSError:
             pass
 
@@ -322,6 +320,14 @@ class ScrambleSuitTransportTest( unittest.TestCase ):
         self.validSecret = base64.b32encode( 'A' * const.SHARED_SECRET_LENGTH )
         self.invalidSecret = 'a' * const.SHARED_SECRET_LENGTH
 
+        self.statefile = tempfile.mkdtemp()
+
+    def tearDown( self ):
+        try:
+            shutil.rmtree(self.statefile)
+        except OSError:
+            pass
+
     def test1_validateExternalModeCli( self ):
         """Test with valid scramblesuit args and valid obfsproxy args."""
         self.args.uniformDHSecret = self.validSecret
@@ -340,7 +346,10 @@ class ScrambleSuitTransportTest( unittest.TestCase ):
             self.suit.validate_external_mode_cli( self.args )
 
     def test3_get_public_server_options( self ):
-        scramblesuit.ScrambleSuitTransport.setup(transport_config.TransportConfig())
+        transCfg = transport_config.TransportConfig()
+        transCfg.setStateLocation(self.statefile)
+
+        scramblesuit.ScrambleSuitTransport.setup(transCfg)
         options = scramblesuit.ScrambleSuitTransport.get_public_server_options("")
         self.failUnless("password" in options)
 
@@ -388,13 +397,21 @@ class MessageTest( unittest.TestCase ):
                           message.ProtocolMessage, "1", paddingLen=const.MPU)
 
 class TicketTest( unittest.TestCase ):
+    def setUp( self ):
+        const.STATE_LOCATION = tempfile.mkdtemp()
+        self.stateFile = os.path.join(const.STATE_LOCATION, const.SERVER_STATE_FILE)
+        self.state = state.State()
+        self.state.genState()
 
-    def test1_authentication( self ):
-        srvState = state.State()
-        srvState.genState()
+    def tearDown( self ):
+        try:
+            shutil.rmtree(const.STATE_LOCATION)
+        except OSError:
+            pass
 
+    def test1_authentication( self ):
         ss = scramblesuit.ScrambleSuitTransport()
-        ss.srvState = srvState
+        ss.srvState = self.state
 
         realEpoch = util.getEpoch
 
@@ -404,7 +421,7 @@ class TicketTest( unittest.TestCase ):
             util.getEpoch = lambda: epoch
 
             # Prepare ticket message.
-            blurb = ticket.issueTicketAndKey(srvState)
+            blurb = ticket.issueTicketAndKey(self.state)
             rawTicket = blurb[const.MASTER_KEY_LENGTH:]
             masterKey = blurb[:const.MASTER_KEY_LENGTH]
             ss.deriveSecrets(masterKey)





More information about the tor-commits mailing list