'Fails if the given ``item`` is not a string.
With Python 2, except with IronPython, this keyword passes regardless
is the ``item`` a Unicode string or a byte string. Use `Should Be
Unicode String` or `Should Be Byte String` if you want to restrict
the string type. Notice that with Python 2, except with IronPython,
``\'string\'`` creates a byte string and ``u\'unicode\'`` must be used to
create a Unicode string.
With Python 3 and IronPython, this keyword passes if the string is
a Unicode string but fails if it is bytes. Notice that with both
Python 3 and IronPython, ``\'string\'`` creates a Unicode string, and
``b\'bytes\'`` must be used to create a byte string.
The default error message can be overridden with the optional
``msg`` argument.'

def should_be_string(self, item, msg=None):

    if (not is_string(item)):
        self._fail(msg, "'%s'    is    not    a    string.", item)
