Hello Adriaan, >Maybe someone here has a clue what is going wrong here? Any help is >appreciated.
Have you tried out this tool that does precisely what you need? to do yourself? https://pypi.python.org/pypi/xmldiff I can't vouch specifically for it, am simply a user, but I know that I have used it happily in the past. (Other CLI tools, include non-Python tools, such as xmllint, which can produce a predictable, reproducible XML formatting, too.) >I'm writing a regression test for a module that generates XML. Very good. Good == Testing. >I'm using diff to compare the results with a pregenerated one from an >earlier version. [ Interesting. I can only speculate randomly about the whitespace issue. Have you examined (with the CLI tools hexdump, od or your favorite byte dumper) the two different XML outputs? ] Back to the lands of Python > cmd = ["diff", "-w", "-I '^[[:space:]]*$'", "./xml/%s.xml" % name, > "test.xml"] It looks like a quoting issue. I think you are passing the following tokens to your OS. You should be able to run your Python program under a system call tracer to see what is actually getting exec()d. I'm accustomed to using strace, but it seems that Macintosh uses dtruss. Anyway, I think your cmd is turning into this (as for as your kernel is concerned): token 1: diff token 2: -w token 3: -I '^[[:space:]]*$' token 4: ./xml/name.xml token 5: test.xml Try this (untested): > cmd = ["diff", "-w", "-I", "^[[:space:]]*$", "./xml/%s.xml" % name, > "test.xml"] But, perhaps the xmldiff module will be what you want. -Martin -- Martin A. Brown http://linux-ip.net/ -- https://mail.python.org/mailman/listinfo/python-list