For distributed testing when using the rsync dirs it does not maintain the mode of the files that are being rsynced.
So if my original file has -r-xr-xr-x it ends up -rw-r--r--
On the remote host it is then unable to execute a file as a subprocess:
E OSError: [Errno 13] Permission denied
I suspect that it should likely use something equivalent to rsync -av --delete /my/local remotehost:/my/remote
That way it should be an exact image of what is on the localhost where py.test runs.