Mercurial > hg > configuration
view tests/unit.py @ 37:a1f8dec4d4f9
we has another broken test
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 27 Mar 2012 09:52:51 -0700 |
parents | d218df4d0b4c |
children | 8909ae1cc4ea |
line wrap: on
line source
#!/usr/bin/env python """ unit tests """ import configuration import os import sys import tempfile import unittest try: import json except ImportError: import simplejson as json from example import ExampleConfiguration # example configuration to test # globals here = os.path.dirname(os.path.abspath(__file__)) class ConfigurationUnitTest(unittest.TestCase): def test_cli(self): """test command line interface""" example = ExampleConfiguration() # parse command line arguments options, args = example.parse(['-a', 'ts', '--develop', '-e', '/home/jhammel/bin/firefox']) # ensure that the options appropriately get set self.assertEqual(bool(args), False) # no arguments self.assertEqual(options.develop, True) self.assertEqual(options.activeTests, ['ts']) self.assertEqual(options.browser_path, '/home/jhammel/bin/firefox') # ensure that the configuration appropriately gets updated self.assertEqual(example.config['develop'], True) self.assertEqual(example.config['activeTests'], ['ts']) self.assertEqual(example.config['browser_path'], '/home/jhammel/bin/firefox') def test_configuration_providers(self): """test file-based configuration providers""" # require json/simplejson and pyyaml to be installed example = ExampleConfiguration() # see what providers you got json_provider = example.configuration_provider('json') self.assertTrue(isinstance(json_provider, configuration.JSON)) # serialize to a temporary file filename = tempfile.mktemp(suffix='.json') self.assertFalse(os.path.exists(filename)) config = {'browser_path': '/home/jhammel/bin/firefox', 'activeTests': ['ts']} example(config) config['test_timeout'] = 1200 # default self.assertEqual(config, example.config) example.serialize(filename) self.assertTrue(os.path.exists(filename)) if os.path.exists(filename): os.remove(filename) def test_required(self): """ensure you have to have required values""" example = ExampleConfiguration() # ensure you get an exception missingvalueexception = None try: example() except configuration.MissingValueException, e: missingvalueexception = e self.assertTrue(isinstance(e, configuration.MissingValueException)) if __name__ == '__main__': unittest.main()