Use patch.patch() when checking for patch availability.
The test is closer to what we want to know. It also makes sense when you deal with patched versions of patch() as most people do under win32.
#!/bin/sh
hg init
echo a > a
hg ci -d '0 0' -Ama
hg an a
echo "[ui]" >> $HGRCPATH
echo "strict=True" >> $HGRCPATH
hg an a
hg annotate a
echo % should succeed - up is an alias, not an abbreviation
hg up