This is expected behaviour.
Blob models are intended to be immutable in spirit. One file, one blob. And if you want to do transformations of a given Blob, the idea is that you'll simply create a new one, rather than attempt to mutate the existing (though of course, you can delete that later if you don't need it). Because of this, you have 2 different Blobs in your test case.
Checksum is calculated from the content of the file(`data`), so image `town.jpg` will always produce the same checksum since it is the same image (not the same Blob :))
I hope this helps