def test_it_should_raise_exception_for_an_inexistent_config_value_without_specify_a_default_value(self):
     config = Config()
     config.put("some_key", "some_value")
     try:
         config.get("ANOTHER_KEY")
     except Exception, e:
         self.assertEqual("invalid key ('another_key')", str(e))
 def test_it_should_not_update_saved_config_values(self):
     config = Config()
     config.put("some_key", "some_value")
     try:
         config.put("some_key", "another_value")
     except Exception, e:
         self.assertEqual("the configuration key 'some_key' already exists and you cannot override any configuration", str(e))
 def test_it_should_raise_exception_when_removing_an_inexistent_config_value(self):
     config = Config()
     config.put("some_key", "some_value")
     try:
         config.remove("ANOTHER_KEY")
     except Exception, e:
         self.assertEqual("invalid configuration key ('another_key')", str(e))
 def test_it_should_transform_keys_to_lower_case(self):
     config = Config()
     config.put("sOmE_kEy", "original_value")
     self.assertEqual("original_value", config.get("SoMe_KeY"))
     config.update("sOMe_kEy", "new_value")
     self.assertEqual("new_value", config.get("some_KEY"))
     config.remove("SOME_KEY")
     self.assertRaises(Exception, config.get, "sOMe_KEY")
 def test_it_should_parse_migrations_dir_with_mixed_relative_and_absolute_dirs(self):
     dirs = Config._parse_migrations_dir('%s:%s:%s:%s' % ('/tmp/test', '.', './a/relative/path', os.path.abspath('another/path')))
     self.assertEqual(4, len(dirs))
     self.assertEqual('/tmp/test', dirs[0])
     self.assertEqual(os.path.abspath('.'), dirs[1])
     self.assertEqual(os.path.abspath('./a/relative/path'), dirs[2])
     self.assertEqual(os.path.abspath('another/path'), dirs[3])
 def test_it_should_parse_migrations_dir_with_multiple_relative_dirs(self):
     dirs = Config._parse_migrations_dir('test:migrations:./a/relative/path:another/path')
     self.assertEqual(4, len(dirs))
     self.assertEqual(os.path.abspath('test'), dirs[0])
     self.assertEqual(os.path.abspath('migrations'), dirs[1])
     self.assertEqual(os.path.abspath('./a/relative/path'), dirs[2])
     self.assertEqual(os.path.abspath('another/path'), dirs[3])
 def test_it_should_parse_migrations_dir_with_relative_dirs_using_config_dir_parameter_as_base_path(self):
     dirs = Config._parse_migrations_dir(
             '%s:%s:%s:%s' % ('/tmp/test', '.', './a/relative/path', os.path.abspath('another/path')),
             config_dir='/base/path_to_relative_dirs'
     )
     self.assertEqual(4, len(dirs))
     self.assertEqual('/tmp/test', dirs[0])
     self.assertEqual('/base/path_to_relative_dirs', dirs[1])
     self.assertEqual('/base/path_to_relative_dirs/a/relative/path', dirs[2])
     self.assertEqual(os.path.abspath('another/path'), dirs[3])
 def test_it_should_remove_saved_config_values(self):
     config = Config()
     config.put("some_key", "some_value")
     initial = str(config)
     config.remove("some_key")
     self.assertNotEqual(initial, str(config))
 def test_it_should_return_previous_saved_config_values(self):
     config = Config()
     config.put("some_key", "some_value")
     self.assertEqual("some_value", config.get("some_key"))
 def test_it_should_accept_non_empty_string_and_false_as_default_value(self):
     _dict = {"some_key": "some_value"}
     self.assertEqual(None, Config._get(_dict,"ANOTHER_KEY", None))
     self.assertEqual("", Config._get(_dict,"ANOTHER_KEY", ""))
     self.assertEqual(False, Config._get(_dict,"ANOTHER_KEY", False))
 def test_it_should_raise_exception_for_an_inexistent_dict_value_without_specify_a_default_value(self):
     _dict = {"some_key": "some_value"}
     try:
         Config._get(_dict, "ANOTHER_KEY")
     except Exception, e:
         self.assertEqual("invalid key ('ANOTHER_KEY')", str(e))
 def test_it_should_return_default_value_for_an_inexistent_dict_value(self):
     _dict = {"some_key": "some_value"}
     self.assertEqual("default_value", Config._get(_dict, "ANOTHER_KEY", "default_value"))
 def test_it_should_return_default_value_for_an_none_dict_value(self):
     _dict = {"some_key": None}
     self.assertEqual("default_value", Config._get(_dict, "some_key", "default_value"))
 def test_it_should_parse_migrations_dir_with_one_relative_dir(self):
     dirs = Config._parse_migrations_dir('.')
     self.assertEqual(1, len(dirs))
     self.assertEqual(os.path.abspath('.'), dirs[0])
 def test_it_should_return_value_from_a_dict_even_if_a_default_value_given(self):
     _dict = {"some_key": "some_value"}
     self.assertEqual("some_value", Config._get(_dict, "some_key", "default_value"))
 def test_it_should_return_value_from_a_dict(self):
     _dict = {"some_key": "some_value"}
     self.assertEqual("some_value", Config._get(_dict, "some_key"))
 def test_it_should_accept_initial_values_as_configuration(self):
     config = Config({"some_key": "some_value"})
     self.assertEqual("some_value", config.get("some_key"))
 def test_it_should_update_value_to_a_existing_key_keeping_original_value_if_new_value_is_none_false_or_empty_string(self):
     config = Config()
     config.put("some_key", "original_value")
     config.update("some_key", None)
     self.assertEqual("original_value", config.get("some_key"))
     config.update("some_key", False)
     self.assertEqual("original_value", config.get("some_key"))
     config.update("some_key", "")
     self.assertEqual("original_value", config.get("some_key"))
 def test_it_should_update_value_to_a_existing_key(self):
     config = Config()
     config.put("some_key", "original_value")
     config.update("some_key", "some_value")
     self.assertEqual("some_value", config.get("some_key"))
 def test_it_should_accept_non_empty_string_and_false_as_default_value(self):
     config = Config()
     config.put("some_key", "some_value")
     self.assertEqual(None, config.get("ANOTHER_KEY", None))
     self.assertEqual("", config.get("ANOTHER_KEY", ""))
     self.assertEqual(False, config.get("ANOTHER_KEY", False))
 def test_it_should_return_default_value_for_an_inexistent_config_value(self):
     config = Config()
     config.put("some_key", "some_value")
     self.assertEqual("default_value", config.get("another_key", "default_value"))