[tor-commits] [stem/master] Refactoring conf integ tests

atagar at torproject.org atagar at torproject.org
Mon Jan 30 01:40:05 UTC 2012


commit 0f913df18423f84650b27144f2a89fb9997349ab
Author: Damian Johnson <atagar at torproject.org>
Date:   Sun Jan 29 15:05:05 2012 -0800

    Refactoring conf integ tests
---
 test/integ/util/conf.py |   46 +++++++++++++++++++++++++++++-----------------
 1 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/test/integ/util/conf.py b/test/integ/util/conf.py
index b589761..9eca724 100644
--- a/test/integ/util/conf.py
+++ b/test/integ/util/conf.py
@@ -3,25 +3,24 @@ Integration tests for the stem.util.conf class and functions.
 """
 
 import os
-import tempfile
 import unittest
 
 import stem.util.conf
+import test.runner
 
-CONF_PATH = tempfile.mktemp("-conf-test")
 CONF_HEADER = """# Demo configuration for integration tests to run against. Nothing to see here,
 # move along, move along.
 """
 
-EXAMPLE_CONF = """%s
+EXAMPLE_CONF = """
 destination.ip 1.2.3.4
 destination.port blarg
 
 startup.run export PATH=$PATH:~/bin
 startup.run alias l=ls
-""" % CONF_HEADER
+"""
 
-MULTILINE_CONF = """%s
+MULTILINE_CONF = """
 multiline.entry.simple
 |la de da
 |and a ho hum
@@ -40,6 +39,23 @@ multiline.entry.squashed_bottom
 |and a ho hum
 """
 
+def _get_test_config_path():
+  return os.path.join(test.runner.get_runner().get_test_dir(), "integ_test_cfg")
+
+def _make_config(contents):
+  """
+  Writes a test configuration to disk, returning the path where it is located.
+  """
+  
+  test_config_path = _get_test_config_path()
+  
+  test_conf_file = open(test_config_path, "w")
+  test_conf_file.write(CONF_HEADER)
+  test_conf_file.write(contents)
+  test_conf_file.close()
+  
+  return test_config_path
+
 class TestConf(unittest.TestCase):
   def tearDown(self):
     # clears the config contents
@@ -48,26 +64,25 @@ class TestConf(unittest.TestCase):
     test_config.clear_listeners()
     
     # cleans up test configurations we made
-    if os.path.exists(CONF_PATH):
-      os.remove(CONF_PATH)
+    test_config_path = _get_test_config_path()
+    
+    if os.path.exists(test_config_path):
+      os.remove(test_config_path)
   
   def test_example(self):
     """
     Checks that the pydoc example is correct.
     """
     
-    test_conf_file = open(CONF_PATH, "w")
-    test_conf_file.write(EXAMPLE_CONF)
-    test_conf_file.close()
-    
     ssh_config = {"login.user": "atagar",
                   "login.password": "pepperjack_is_awesome!",
                   "destination.ip": "127.0.0.1",
                   "destination.port": 22,
                   "startup.run": []}
     
+    test_config_path = _make_config(EXAMPLE_CONF)
     user_config = stem.util.conf.get_config("integ_testing")
-    user_config.load(CONF_PATH)
+    user_config.load(test_config_path)
     user_config.synchronize(ssh_config)
     
     self.assertEquals("atagar", ssh_config["login.user"])
@@ -81,12 +96,9 @@ class TestConf(unittest.TestCase):
     Tests the load method with multi-line configuration files.
     """
     
-    test_conf_file = open(CONF_PATH, "w")
-    test_conf_file.write(MULTILINE_CONF)
-    test_conf_file.close()
-    
+    test_config_path = _make_config(MULTILINE_CONF)
     test_config = stem.util.conf.get_config("integ_testing")
-    test_config.load(CONF_PATH)
+    test_config.load(test_config_path)
     
     for entry in ("simple", "leading_whitespace", "squashed_top", "squashed_bottom"):
       self.assertEquals("la de da\nand a ho hum", test_config.get("multiline.entry.%s" % entry))





More information about the tor-commits mailing list