Pubsub message strings (and channel names) are explicitly encoded to the default encoding, which is a problem for the usual Python 2 strings.
Here is a simple example that breaks fakeredis but not redis-py on Python 2.7.13:
r = fakeredis.FakeStrictRedis()
p = r.pubsub()
p.subscribe('\xff')
# UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
p.subscribe('test')
r.publish('test', '\xff')
# UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)