we got misleading test passes because of these StringIOs. On python 3, these _only_ take (unicode) str, but writing out to a file in binary mode expects bytes. So we need BytesIO to match up with what our actual file write outs are expecting