Path: csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail From: "Martin A. Brown" Newsgroups: comp.lang.python Subject: Re: ignoring or replacing white lines in a diff Date: Thu, 14 Jan 2016 12:57:29 -0800 Lines: 59 Message-ID: References: <5697f08f$0$23822$e4fe514c@news.xs4all.nl> <5698118F0200001B0003B68D@gwsmtp1.astron.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Trace: news.uni-berlin.de knagW4AYTkvjCU/ymwc4QAkFFDjHUYaG64si3wWAam5Q== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'diff': 0.05; 'cc:addr:python-list': 0.09; 'cmd': 0.09; 'here?': 0.09; 'regression': 0.09; 'xml.': 0.09; 'python': 0.10; '(other': 0.16; 'formatting,': 0.16; 'from:addr:martin': 0.16; 'happily': 0.16; 'non-python': 0.16; 'received:hsd1.or.comcast.net': 0.16; 'received:io': 0.16; 'received:or.comcast.net': 0.16; 'received:psf.io': 0.16; 'tracer': 0.16; 'byte': 0.18; 'version.': 0.18; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'issue.': 0.20; 'martin': 0.22; 'cc:no real name:2**0': 0.22; 'seems': 0.23; 'passing': 0.23; 'tried': 0.24; 'xml': 0.24; 'header:In-Reply- To:1': 0.24; 'module': 0.25; 'compare': 0.27; 'received:24': 0.28; 'specifically': 0.28; "skip:' 10": 0.28; 'looks': 0.29; 'quoting': 0.29; 'testing.': 0.29; 'whitespace': 0.29; "i'm": 0.30; "can't": 0.32; 'good.': 0.32; 'skip:. 10': 0.32; 'getting': 0.33; 'run': 0.33; 'url:python': 0.33; 'received:comcast.net': 0.33; 'skip:> 10': 0.35; 'but': 0.36; 'should': 0.36; 'url:org': 0.36; 'tool': 0.36; 'tools,': 0.36; 'subject:: ': 0.37; 'two': 0.37; 'charset :us-ascii': 0.37; '(with': 0.38; 'wrong': 0.38; 'someone': 0.38; 'test': 0.39; 'does': 0.39; 'your': 0.60; 'received:network': 0.61; 'back': 0.62; 'different': 0.63; 'past.': 0.66; 'here': 0.66; 'results': 0.66; 'user,': 0.67; 'lands': 0.84; 'yourself?': 0.84 X-X-Sender: mabrown@macron.wonderfrog.net In-Reply-To: <5698118F0200001B0003B68D@gwsmtp1.astron.nl> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.20+ Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Xref: csiph.com comp.lang.python:101715 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/