texttest / capturemock

2 stars 2 forks source link

Fix command-line capturemock for Windows and Python 3 #3

Closed gjb1002 closed 5 years ago

gjb1002 commented 5 years ago

Creating a separate issue for this now. The problem is it is dependent on generating exe files, and the old ones don't work with Python 3. So we have to make new ones somehow.

gjb1002 commented 5 years ago

How to make an exe file? There seem to be broadly 4 options:

1) exemaker. Used for Python 2 capturemock. Hasn't been updated since 2004 and unsurprisingly doesn't work with Python 3. Suppose porting it is possible but it seems a bit excessive...

2) PyInstaller. Seems to be the tool of choice, but fails utterly on capturemock with an internal error that gets no hits when I google it :( Could always report this and hope for a fix...

3) cx_freeze. Works fine but requires copying the entire Python interpreter. In other words, isn't useful in practice.

4) py2exe. Only seems to handle Python versions up to 3.5, bit of a disadvantage. Hasn't been updated since 2014.

gjb1002 commented 5 years ago

log.txt Stacktrace when trying to run exe generated by PyInstaller.

gjb1002 commented 5 years ago

Stack from PyInstaller seems to be caused by the script and the python package both being called "capturemock". Changing the script to be called capturemock_bin.py makes it work. It's then possible to rename afterwards. So that seems to be the way forward.

gjb1002 commented 5 years ago

Now working with help from PyInstaller. All tests green on Windows with Python 3 apart from the xmlrpc ones.