When generating API stubs with the scaffold utility using, e.g., `python -m localstack.aws.scaffold sns`,
the scaffold creates method names from operation names, which are ugly when acronyms (subsequent uppercase characters that belong together).

Example:
`CreateSMSSandboxPhoneNumber` -> `create_s_m_s_sandbox_phone_number`

it would be nicer to have `create_sms_sandbox_phone_number`

This is a limitation of this method: https://github.com/localstack/localstack/blob/1888e66b85d7e6a8ee457bc7a732984fcf7aa830/localstack/utils/common.py#L978-L979
self.assertEqual(True, common.str_to_bool("true"))
        self.assertEqual(True, common.str_to_bool("True"))
        self.assertEqual(False, common.str_to_bool("1"))
        self.assertEqual(False, common.str_to_bool("0"))
        self.assertEqual(False, common.str_to_bool("TRUE"))
        self.assertEqual(False, common.str_to_bool("false"))
        self.assertEqual(False, common.str_to_bool("False"))
        self.assertEqual(0, common.str_to_bool(0))
        self.assertEqual(0, common.str_to_bool(0))
    def test_parse_yaml_nodes(self):
        obj = {"test": yaml.ScalarNode("tag:yaml.org,2002:int", "123")}
        result = common.clone_safe(obj)
        self.assertEqual({"test": 123}, result)
        obj = {
            "foo": [
                yaml.ScalarNode("tag:yaml.org,2002:str", "value"),
                yaml.ScalarNode("tag:yaml.org,2002:int", "123"),
                yaml.ScalarNode("tag:yaml.org,2002:float", "1.23"),
                yaml.ScalarNode("tag:yaml.org,2002:bool", "true"),
            ]
        }
        result = common.clone_safe(obj)
        self.assertEqual({"foo": ["value", 123, 1.23, True]}, result)
    def test_free_tcp_port_blacklist_raises_exception(self):