Generate a camel-case identifier.
    Useful for unit test methods.

    Takes a string, prefix, and optional suffix.

    `prefix` can be set to `''`, though be careful - without a prefix, the
    function will throw `InvalidIdentifier` when your string starts with a
    number.

    Example:
        >>> lower_camel("User can login", prefix='test')
        'testUserCanLogin'

def lower_camel(string, prefix='', suffix=''):
    """
    Generate a camel-case identifier.
    Useful for unit test methods.

    Takes a string, prefix, and optional suffix.

    `prefix` can be set to `''`, though be careful - without a prefix, the
    function will throw `InvalidIdentifier` when your string starts with a
    number.

    Example:
        >>> lower_camel("User can login", prefix='test')
        'testUserCanLogin'
    """

    return require_valid(append_underscore_if_keyword(''.join(
        word.lower() if index == 0 else upper_case_first_char(word)
        for index, word in enumerate(en.words(' '.join([prefix, string, suffix]))))
    ))