Doesn't the "was" change who the action applies to? E.g. "John assaulted a date" vs "John was assaulted by a date"? I'm not entirely sure "John was set upon a date" makes sense. Then again, I've never been great with the specific rules of English, even though it's my first language (likely because it's my first language, and I learned it not as rules, but through immersion as a child).
"Set upon" can mean either "to begin to attack" or "to cause to begin to attack", although in the latter case the target of attack goes between "set" and "upon":
The dog set upon the cat. (began to attack the cat)
The person set the dog upon the cat. (caused the dog to begin to attack the cat)
The second meaning could make sense in the original sentence with John being the attacker, a date (fruit) being the target of attack, and an unspecified party being the one who caused John to attack. In this case there is a past-tense passive with "was" + the past participle of the verb (like "was liked", "was seen", "was taken"), but the past participle of "set upon" is identical to the present form, so "was set upon" means either "was attacked" or was caused to attack. But only the second meaning is plausible when followed by "a date", as opposed to "by a date".
"John was set upon a date" → John was caused to attack a date
"John was set upon by a date" → John was attacked by a date
This reminds me that phrasal verbs really are one of the trickiest things in English. Some of my non-native speaker friends have several books just about this topic, because it's so subtle and pervasive in English.
Thank you for the clarification. I suspected the "by" portion might be key, mainly because it felt like it was missing (and thus a requirement). That it helps distinguish the meaning makes sense.
I really should spend some time to research the mechanics of my native tongue, rather than rely on what sounds right and the simplistic rules I can remember from primary school. This has been on my mental to-do list at different times over the years, but I always seem to have it de-prioritized and then I forget about it. :/
Just remember that language isn't truly normative - in general, one of the best tests for "correctness" is "appears in speech by native speakers". Which is somewhat complicated by the existence of written language. In English, Shakespeare is somewhat famously the inventor of a number of idioms that would probably seem strange at the time, but are now ingrained to the English language, see eg: