CLN/ENH: pass engine and parser to recursive calls to eval
TST: make sure py3.x behavior is expected