# HG changeset patch # User Jeff Hammel # Date 1332866415 25200 # Node ID d218df4d0b4cd29144e023f59faa4e15c616ae05 # Parent 321fe58a9eae5c923a3cb0d0f351eb3fd66a4647 add test for missing values diff -r 321fe58a9eae -r d218df4d0b4c configuration/config.py --- a/configuration/config.py Tue Mar 27 09:35:21 2012 -0700 +++ b/configuration/config.py Tue Mar 27 09:40:15 2012 -0700 @@ -21,7 +21,12 @@ except ImportError: yaml = None -__all__ = ['Configuration', 'configuration_providers', 'types'] +__all__ = ['Configuration', 'configuration_providers', 'types', 'MissingValueException'] + +### exceptions + +class MissingValueException(Exception): + """exception raised when a required value is missing""" ### configuration providers for serialization/deserialization @@ -198,7 +203,7 @@ else: required_message = "Parameter %s is required but not present" % key # TODO: more specific exception - raise Exception(required_message) + raise MissingValueException(required_message) # TODO: configuration should be locked after this is called ### methods for adding configuration diff -r 321fe58a9eae -r d218df4d0b4c tests/unit.py --- a/tests/unit.py Tue Mar 27 09:35:21 2012 -0700 +++ b/tests/unit.py Tue Mar 27 09:40:15 2012 -0700 @@ -61,6 +61,19 @@ 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()