[Zope3-dev] copied doctest in z3.zope3recipes for Windows support
Martijn Faassen
faassen at startifact.com
Thu Aug 16 08:52:28 EDT 2007
Hi there,
I don't have any Windows knowledge, so my ability to review Roger's
changes to add (much needed!) windows support to z3.zope3recipes is
limited.
I do however notice that an entire doctest was more or less copied
verbatim: README.txt got copied to WINDOWS.txt. The Windows version has
some changes, and a few additions, but it's almost exactly the same.
Now if these were unit tests this would be less problematic, but this is
a document as well, and as a result we now have two virtually identical
documents to maintain. That seems wrong.
Looking at the changes in the test, I see a number of changes in the
window version:
- One is the obvious addition of a whole section of windows-specific
tests, from the 'test_winctl' section onwards. These can stay in their
own document.
- in many cases an 'ls()' call happens and in Windows the naming of
filenames is slightly different:
*nix Windows
---- -------
debugzope debugzope.exe / debugzope-script.py
runzope runzope.exe / runzope-script.py
We should be able to resolve this by having the *test* gain awareness of
being run on Windows. We could then write:
On *nix, we expect the following files to be generated::
if platform_starnix:
.. test code
On *windows however, we also need to generate .exe files, and it looks
like this:
if platform_windows:
... test code
It appears to be knowledge that would be useful for the test-reader to
know about.
- Then the *nix tests test for the following output in many places:
Generated script '/sample-buildout/bin/instance'.
while the Windows tests expect this not to be present. This is weird. I
am assuming that this is buildout generated information, and that Roger
was somehow testing with a different version of buildout than I am on
Linux. I hope that we can make this difference go away by using a
different version of buildout on Windows that also generates this output?
There is another place where buildout differences seem to be making a
difference. In one location, the Windows tests are checking for the text
'Uninstalling instance' and then later 'Installing instance', while in
the Linux version 'Updating instance.' is used.
- in one place in the tests, instead of zc.zope3recipes.ctl,
zc.zope3recipes.winctl is being imported from. The goal is to get the
'main' function to run. The arguments to this 'main' function are identical.
We should be able to resolve this by making zc.zope3recipes.ctl's
main()' delegate to the Windows version where needed. The test code can
then be identical.
These are all the changes in the test code I can detect. It therefore
seems quite feasible to merge them into a single test again, if at least
we can work out the buildout output differences.
Opinions?
Regards,
Martijn
More information about the Zope3-dev
mailing list