Python basic arithmetic compiler
I'm reading the 2nd requirement:


  Accepts two single digit numbers† with a "+" or "-" in between them as input


in conjunction with the "12+23" test case. It's a very nice test case, but the double digit numbers are clearly beyond what the spec described. Behavior is unspecified in this case, though your program behaves very sensibly.

In runProgram(), the + and - cases are very similar. Can you break out a helper method that takes + / - as a parameter?

I recommend phrasing the last portion of the function in this way:

else:
    try:
        return 'PUSH ' + int(program)
    except ValueError:
        return 'FAIL'


The in program aproach seems fragile, especially if you have to handle programs like 5 + -3. You might want to tokenize early on, and pass in a list like [5, '+', -3]. Or perhaps define functions like add &amp; subtract, and pass in [5, add, -3].