def test_read_valid_configuration(self):
        """Validar que el formato del archivo sea Json"""
        dict_config = "{"

        with mock.patch('builtins.open',
                        return_value=io.StringIO(dict_config)):

            with self.assertRaises(InvalidConfigurationError):
                read_config("config_general.json", "cmd")
    def test_libor_rates_has_values(self):
        """Validar la existencia de valores dentro de rates"""
        dict_config = {'libor': {'rates': {}}}

        with mock.patch('builtins.open',
                        return_value=io.StringIO(json.dumps(dict_config))):

            with self.assertRaises(InvalidConfigurationError):
                config = read_config("config_general.json", "libor")
                validate_libor_rates_has_values(config)
    def test_libor_url_has_value(self):
        """Validar que la url sea valida"""
        dict_config = {'libor': {'url': ''}}

        with mock.patch('builtins.open',
                        return_value=io.StringIO(json.dumps(dict_config))):

            with self.assertRaises(InvalidConfigurationError):
                config = read_config("config_general.json", "libor")
                validate_url_has_value(config)
    def test_sml_coins_has_values(self):
        """Validar la existencia de valores dentro de coins"""
        dict_config = {'sml': {'coins': {}}}

        with mock.patch('builtins.open',
                        return_value=io.StringIO(json.dumps(dict_config))):

            with self.assertRaises(InvalidConfigurationError):
                config = read_config("config.json", "sml")
                validate_coins_key_has_values(config)
    def test_libor_configuration_has_url(self):
        """Validar la existencia de la clave url dentro de
        la configuración de libor"""
        dict_config = {'libor': {'foo': 'bar'}}

        with mock.patch('builtins.open',
                        return_value=io.StringIO(json.dumps(dict_config))):

            with self.assertRaises(InvalidConfigurationError):
                config = read_config("config_general.json", "libor")
                validate_url_config(config)
    def test_sml_configuration_has_coins(self):
        """Validar la existencia de la clave coins dentro de
        la configuración de sml"""
        dict_config = {'sml': {'foo': 'bar'}}

        with mock.patch('builtins.open',
                        return_value=io.StringIO(json.dumps(dict_config))):

            with self.assertRaises(InvalidConfigurationError):
                config = read_config("config.json", "sml")
                validate_coins_key_config(config)