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:]