def test_underscorify(self):
        input_camel = json.dumps(
            {
                u"stats": {
                    u"msgsAttemptedCount": 0,
                    u"openCount": 0,
                    u"unsubscribeCount": 0,
                    u"complaintCount": 0,
                    u"clickCount": 0,
                },
                u"smtp": {u"rejectCount": 0, u"bounceCount": 0, u"acceptCount": 0, u"deferralCount": 0},
                u"filter": {u"rcptBadMailboxCount": 0, u"rcptChannelBlockCount": 0},
                u"statusTime": u"2012-09-19T22:40:45.123Z",
                u"statusMessage": u"stats request succeeded",
                u"statusCode": 200,
            },
            sort_keys=True,
        )

        expected_resp_dict = {
            u"stats": {
                u"msgs_attempted_count": 0,
                u"open_count": 0,
                u"unsubscribe_count": 0,
                u"complaint_count": 0,
                u"click_count": 0,
            },
            u"smtp": {u"reject_count": 0, u"bounce_count": 0, u"accept_count": 0, u"deferral_count": 0},
            u"filter": {u"rcpt_bad_mailbox_count": 0, u"rcpt_channel_block_count": 0},
            u"status_time": u"2012-09-19T22:40:45.123Z",
            u"status_message": u"stats request succeeded",
            u"status_code": 200,
        }

        mb = MessageBusAPIClient("foo")

        converted_dict = mb.__camel_to_underscore__(input_camel)
        self.assertEquals(expected_resp_dict, converted_dict)

        _, convertedCamel = mb.__underscore_to_camel__(converted_dict)
        self.assertEquals(convertedCamel, input_camel)