[OE-core] [PATCH v2 06/10] oe-selftest: fix handling of test cases without ID in --list-tests-by
Maciej Borzęcki
maciej.borzecki at rndity.com
Thu Nov 10 20:14:16 UTC 2016
On Thu, Nov 10, 2016 at 9:05 PM, Burton, Ross <ross.burton at intel.com> wrote:
>
> On 10 November 2016 at 12:18, Maciej Borzecki <maciej.borzecki at rndity.com>
> wrote:
>>
>> - ts = sorted([ (tc.tcid, tc.tctag, tc.tcname, tc.tcclass, tc.tcmodule)
>> for tc in get_testsuite_by(criteria, keyword) ])
>> -
>> - print('%-4s\t%-20s\t%-60s\t%-25s\t%-20s' % ('id', 'tag', 'name',
>> 'class', 'module'))
>> + def tc_key(t):
>> + if t[0] is None:
>> + return (0,) + t[1:]
>> + return t
>> + # tcid may be None if no ID was assigned, in which case sorted() will
>> throw
>> + # a TypeError as Python 3 does not allow comparison (<,<=,>=,>) of
>> + # heterogeneous types, handle this by using a custom key generator
>> + ts = sorted([ (tc.tcid, tc.tctag, tc.tcname, tc.tcclass, tc.tcmodule)
>> \
>> + for tc in get_testsuite_by(criteria, keyword) ],
>> key=tc_key)
>
>
> Wouldn't a shorter (but untested!) form alternative be just?
>
> - ts = sorted([ (tc.tcid, tc.tctag, tc.tcname, tc.tcclass, tc.tcmodule)
> for tc in get_testsuite_by(criteria, keyword) ])
> + ts = sorted([ (tc.tcid or 0, tc.tctag, tc.tcname, tc.tcclass,
> tc.tcmodule) for tc in get_testsuite_by(criteria, keyword) ])
>
Well, yes, that would work too. A downside though, is that the output of
--list-tests and --list-tests would be different. For --list-test, TCs without
ID would have None in the first column, while the same TCs in --lists-tests-by
would end up having 0.
I've tried to keep the output of both tools consistent. Also, 'None' seems to be
more a better fit in this case, as there's no ID.
Cheers,
--
Maciej Borzecki
RnDity
More information about the Openembedded-core
mailing list