changeset 38:8909ae1cc4ea

fix serialization (stub) tests
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 27 Mar 2012 10:28:02 -0700
parents a1f8dec4d4f9
children 3c91bf85adb5
files configuration/config.py tests/unit.py
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/configuration/config.py	Tue Mar 27 09:52:51 2012 -0700
+++ b/configuration/config.py	Tue Mar 27 10:28:02 2012 -0700
@@ -58,18 +58,18 @@
         raise NotImplementedError("Abstract base class")
 
 if json:
-    class JSON(object):
+    class JSON(ConfigurationProvider):
         indent = 2
         extensions = ['json']
         def read(self, filename):
             return json.loads(file(filename).read())
         def _write(self, fp, config):
-            fp.write(json.dumps(config), indent=self.indent, sort_keys=True)
+            fp.write(json.dumps(config, indent=self.indent, sort_keys=True))
             # TODO: could use templates to get order down, etc
     configuration_providers.append(JSON())
 
 if yaml:
-    class YAML(object):
+    class YAML(ConfigurationProvider):
         extensions = ['yml', 'yaml']
         def read(self, filename):
             f = file(filename)
@@ -296,7 +296,7 @@
 
     def filename2format(self, filename):
         extension = os.path.splitext(filename)[-1]
-        return extension.rstrip('.') or None
+        return extension.lstrip('.') or None
 
     def serialize(self, filename, format=None, full=False):
         """
@@ -314,6 +314,8 @@
                 # TODO: more specific exception type
 
         provider = self.configuration_provider(format)
+        if not provider:
+            raise Exception("Provider not found for format: %s" % format)
 
         config = copy.deepcopy(self.config)
 
--- a/tests/unit.py	Tue Mar 27 09:52:51 2012 -0700
+++ b/tests/unit.py	Tue Mar 27 10:28:02 2012 -0700
@@ -53,6 +53,7 @@
 
         # serialize to a temporary file
         filename = tempfile.mktemp(suffix='.json')
+        self.assertEqual(example.filename2format(filename), 'json')
         self.assertFalse(os.path.exists(filename))
         config = {'browser_path': '/home/jhammel/bin/firefox',
                   'activeTests':  ['ts']}