diff --git a/tests/unit/twiml/__init__.py b/tests/unit/twiml/__init__.py
index 1bc5a944df..2681336661 100644
--- a/tests/unit/twiml/__init__.py
+++ b/tests/unit/twiml/__init__.py
@@ -3,7 +3,12 @@
from nose.tools import raises
from six import text_type
-from twilio.twiml import format_language, TwiMLException, TwiML
+from twilio.twiml import (
+ format_language,
+ lower_camel,
+ TwiMLException,
+ TwiML
+)
class TwilioTest(unittest.TestCase):
@@ -30,3 +35,24 @@ def test_format_language_coerced(self):
@raises(TwiMLException)
def test_format_language_fail(self):
format_language('this is invalid')
+
+ def test_lower_camel_empty_string(self):
+ self.assertEqual('', lower_camel(''))
+
+ def test_lower_camel_none(self):
+ self.assertEqual(None, lower_camel(None))
+
+ def test_lower_camel_single_word(self):
+ self.assertEqual('foo', lower_camel('foo'))
+
+ def test_lower_camel_double_word(self):
+ self.assertEqual('fooBar', lower_camel('foo_bar'))
+
+ def test_lower_camel_multi_word(self):
+ self.assertEqual('fooBarBaz', lower_camel('foo_bar_baz'))
+
+ def test_lower_camel_multi_word_mixed_case(self):
+ self.assertEqual('fooBarBaz', lower_camel('foO_Bar_baz'))
+
+ def test_lower_camel_camel_cased(self):
+ self.assertEqual('fooBar', lower_camel('fooBar'))
diff --git a/tests/unit/twiml/test_voice_response.py b/tests/unit/twiml/test_voice_response.py
index 2a30cd6ab0..b5ed2213b3 100644
--- a/tests/unit/twiml/test_voice_response.py
+++ b/tests/unit/twiml/test_voice_response.py
@@ -419,7 +419,7 @@ def test_task_string(self):
assert_equal(
self.strip(r),
- '{"account_sid": "AC123123123"}'
+ '{"account_sid": "AC123123123"}'
)
def test_task_dict(self):
@@ -430,8 +430,8 @@ def test_task_dict(self):
r.append(e)
assert_equal(
- self.strip(r),
- '{"account_sid": "AC123123123"}'
+ '{"account_sid": "AC123123123"}',
+ self.strip(r)
)
diff --git a/twilio/twiml/__init__.py b/twilio/twiml/__init__.py
index aadb47bd8a..97892de90e 100644
--- a/twilio/twiml/__init__.py
+++ b/twilio/twiml/__init__.py
@@ -12,10 +12,10 @@
def lower_camel(string):
- result = "".join([x.title() for x in string.split('_')])
- if not result:
- return result
+ if not string or '_' not in string:
+ return string
+ result = "".join([x.title() for x in string.split('_')])
return result[0].lower() + result[1:]