NodePath.find() and NodePath.findNetTag() both always returns a NodePath, not a bool. And if they fail to find what they’re looking for, they return an empty NodePath, not None. An empty NodePath is still considered a True value by Python, which is why your attempts like:
if foo.find("blah"):
and:
if foo.findNetTag("blah"):
are always going execute the body of the if, regardless of whether the find succeeded or not. You could do something like this instead:
if not foo.find("blah").isEmpty():
David