Where will this usage_key come from that it may even know about the draft? I don't believe this situation could ever exist unless studio mistakenly wrote the location into a reference field using the revision tag.

Regardless, this code won't work. Yes, there's a revision field; so, you could check usage_key.revision == 'draft', but if it was fetched from the draft modulestore, that code rewrites the Location to make revision == None and add an `is_draft` attr to the xblock (I know, yuck.) So, if this could be coming from preview, that's another possibility, but in that case, I believe `modulestore()` will be the draft modulestore; so, it would have found the block.

In other words, I find this a big bunch of yuck. I'd just do the without the draft check and see if it ever occurs and, if so, why.