When the return code is explicitly specified to be 0, the return-code check is skipped
The problem is at contest/TestCase.py#L142:
if self.return_code and int(self.return_code) != proc.returncode:
should be:
if self.return_code is not None and int(self.return_code) != proc.returncode: