The utf8 tests are not passing in python3 because this line has different meaning in python2 and python3:

python2: (test1 is of type `str`, which is also called `bytes`)
```
>>> test1.decode('utf-8')
u'simple test string!'
```

python3: (test1 is of type `str`, which is like python2 `unicode`, not `bytes`)
```
>>> test1.decode('utf-8')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
```

Summary: 
 - `str` and `bytes` in python2 became `bytes` in python3
 - `unicode` in python2 became `str` in python3

What you need to change to get the tests working in python3:
`test1 = b"simple test string!"` <- This will make sure `test1` is bytes in both python2 and python3