kannibalox/pyrosimple

Inverse conditions do not match documentation

Closed this issue · 3 comments

I have a group of incomplete items that I'm using to test tag filtering.
All incomplete items have been tagged with testtag.

rtcontrol is_complete=no tagged=\!'testtag' -o tagged,name -q works and no results are returned (as expected).
rtcontrol is_complete=no tagged!='testtag' -o tagged,name -q returns all incomplete items including testtag items.
rtcontrol is_complete=no 'tagged!=testtag' -o tagged,name -q returns all incomplete items including testtag items.

The last two are puzzling because I thought when multiple filters are used it defaults to AND but it's behaving as if it's OR.
rtcontrol tagged="" doesn't appear to work as documented but rtcontrol tagged=\"\" does.

tagged=\!'testtag' was working for you unintentionally, it checks for the literal tag !testtag, which naturally doesn't exist. tagged!='testtag' and 'tagged!=testtag' are parsed to the same thing, which should work as expected now.

The docs have been updated with properly escaped values, thanks.

Looking good now, but I think you may have left some debug code turned on. Any queries using tagged as a filter results in seeing a True or False at the beginning of the output even with a -q switch.

Shoot, thanks for pointing that out. Fixed in 9aeaf7f.