Introduce function ensure_iterable_license_specs#2157
Introduce function ensure_iterable_license_specs#2157boegel merged 4 commits intoeasybuilders:developfrom
Conversation
| elif isinstance(specs, basestring): | ||
| license_specs = [specs] | ||
| elif isinstance(specs, (list, tuple)) and all(isinstance(x, basestring) for x in specs): | ||
| license_specs = specs |
There was a problem hiding this comment.
I would ensure a consistent return type here, either a list of a tuple...
To ensure a list, use list(specs) here.
To ensure a tuple, use tuple(specs) here and (None,) and (specs,) above.
|
@geimer You forgot the commit for the unit test for the new function. ;-) |
|
@boegel I only have two hands and a single keyboard, so my multi-threading capabilities are limited ;-) |
| self.assertEqual(ensure_iterable_license_specs('foo'), ['foo']) | ||
| self.assertEqual(ensure_iterable_license_specs(['foo']), ['foo']) | ||
| self.assertEqual(ensure_iterable_license_specs(['foo', 'bar']), ['foo', 'bar']) | ||
| self.assertEqual(ensure_iterable_license_specs(('foo')), ['foo']) |
There was a problem hiding this comment.
if you want to test with a single-element tuple, use ('foo',) rather than ('foo') (which is identical to 'foo'
| self.assertErrorRegex(EasyBuildError, error_msg, ensure_iterable_license_specs, [42, 'foo']) | ||
| self.assertErrorRegex(EasyBuildError, error_msg, ensure_iterable_license_specs, [['foo']]) | ||
| self.assertErrorRegex(EasyBuildError, error_msg, ensure_iterable_license_specs, [(42, 'foo')]) | ||
| self.assertErrorRegex(EasyBuildError, error_msg, ensure_iterable_license_specs, (42)) |
|
@boegel Travis doesn't seem to pick up the last commit. What was the trick again? |
|
(close/open to wake up Travis) |
|
@geimer This is good to go, but I'll hold off merging it into |
|
Going in, thanks @geimer! |
...as a result of refactoring easybuilders/easybuild-easyblocks#1129