How to use _check_iterable method in assertpy

Best Python code snippet using assertpy_python

validation.py

Source: validation.py Github

copy

Full Screen

...11 'uri', 'name', 'genre', 'date', 'comment', 'musicbrainz_id'}12DISTINCT_FIELDS = {13 'track', 'artist', 'albumartist', 'album', 'composer', 'performer', 'date',14 'genre'}15# TODO: _check_iterable(check, msg, **kwargs) + [check(a) for a in arg]?16def _check_iterable(arg, msg, **kwargs):17 """Ensure we have an iterable which is not a string or an iterator"""18 if isinstance(arg, compat.string_types):19 raise exceptions.ValidationError(msg.format(arg=arg, **kwargs))20 elif not isinstance(arg, collections.Iterable):21 raise exceptions.ValidationError(msg.format(arg=arg, **kwargs))22 elif iter(arg) is iter(arg):23 raise exceptions.ValidationError(msg.format(arg=arg, **kwargs))24def check_choice(arg, choices, msg='Expected one of {choices}, not {arg!r}'):25 if arg not in choices:26 raise exceptions.ValidationError(msg.format(27 arg=arg, choices=tuple(choices)))28def check_boolean(arg, msg='Expected a boolean, not {arg!r}'):29 check_instance(arg, bool, msg=msg)30def check_instance(arg, cls, msg='Expected a {name} instance, not {arg!r}'):31 if not isinstance(arg, cls):32 raise exceptions.ValidationError(33 msg.format(arg=arg, name=cls.__name__))34def check_instances(arg, cls, msg='Expected a list of {name}, not {arg!r}'):35 _check_iterable(arg, msg, name=cls.__name__)36 if not all(isinstance(instance, cls) for instance in arg):37 raise exceptions.ValidationError(38 msg.format(arg=arg, name=cls.__name__))39def check_integer(arg, min=None, max=None):40 if not isinstance(arg, compat.integer_types):41 raise exceptions.ValidationError('Expected an integer, not %r' % arg)42 elif min is not None and arg < min:43 raise exceptions.ValidationError(44 'Expected number larger or equal to %d, not %r' % (min, arg))45 elif max is not None and arg > max:46 raise exceptions.ValidationError(47 'Expected number smaller or equal to %d, not %r' % (max, arg))48def check_query(arg, fields=SEARCH_FIELDS, list_values=True):49 # TODO: normalize name -> track_name50 # TODO: normalize value -> [value]51 # TODO: normalize blank -> [] or just remove field?52 # TODO: remove list_values?53 if not isinstance(arg, collections.Mapping):54 raise exceptions.ValidationError(55 'Expected a query dictionary, not {arg!r}'.format(arg=arg))56 for key, value in arg.items():57 check_choice(key, fields, msg='Expected query field to be one of '58 '{choices}, not {arg!r}')59 if list_values:60 msg = 'Expected "{key}" to be list of strings, not {arg!r}'61 _check_iterable(value, msg, key=key)62 [_check_query_value(key, v, msg) for v in value]63 else:64 _check_query_value(65 key, value, 'Expected "{key}" to be a string, not {arg!r}')66def _check_query_value(key, arg, msg):67 if not isinstance(arg, compat.string_types) or not arg.strip():68 raise exceptions.ValidationError(msg.format(arg=arg, key=key))69def check_uri(arg, msg='Expected a valid URI, not {arg!r}'):70 if not isinstance(arg, compat.string_types):71 raise exceptions.ValidationError(msg.format(arg=arg))72 elif urllib.parse.urlparse(arg).scheme == '':73 raise exceptions.ValidationError(msg.format(arg=arg))74def check_uris(arg, msg='Expected a list of URIs, not {arg!r}'):75 _check_iterable(arg, msg)...

Full Screen

Full Screen

test_custom_list.py

Source: test_custom_list.py Github

copy

Full Screen

...43 return self._s[idx]44def test_custom_list():45 l = CustomList('foobar')46 assert_that([CustomList('foo'), CustomList('bar')]).extracting(0,-1).is_equal_to([('f','o'),('b','r')])47def test_check_iterable():48 l = CustomList('foobar')49 ab = assert_that(None)50 ab._check_iterable(l)51 ab._check_iterable(l, check_getitem=True)52 ab._check_iterable(l, check_getitem=False)53def test_check_iterable_not_iterable():54 try:55 ab = assert_that(None)56 ab._check_iterable(123, name='my-int')57 fail('should have raised error')58 except TypeError as e:59 assert_that(str(e)).contains('my-int <int> is not iterable')60def test_check_iterable_no_getitem():61 try:62 ab = assert_that(None)63 ab._check_iterable(set([1]), name='my-set')64 fail('should have raised error')65 except TypeError as e:...

Full Screen

Full Screen

Blogs

Check out the latest blogs from LambdaTest on this topic:

Test Managers in Agile &#8211; Creating the Right Culture for Your SQA Team

I was once asked at a testing summit, “How do you manage a QA team using scrum?” After some consideration, I realized it would make a good article, so here I am. Understand that the idea behind developing software in a scrum environment is for development teams to self-organize.

Introducing LambdaTest Analytics: Test Reporting Made Awesome ????

Collecting and examining data from multiple sources can be a tedious process. The digital world is constantly evolving. To stay competitive in this fast-paced environment, businesses must frequently test their products and services. While it’s easy to collect raw data from multiple sources, it’s far more complex to interpret it properly.

Pair testing strategy in an Agile environment

Pair testing can help you complete your testing tasks faster and with higher quality. But who can do pair testing, and when should it be done? And what form of pair testing is best for your circumstance? Check out this blog for more information on how to conduct pair testing to optimize its benefits.

Dec’22 Updates: The All-New LT Browser 2.0, XCUI App Automation with HyperExecute, And More!

Greetings folks! With the new year finally upon us, we’re excited to announce a collection of brand-new product updates. At LambdaTest, we strive to provide you with a comprehensive test orchestration and execution platform to ensure the ultimate web and mobile experience.

How To Automate Toggle Buttons In Selenium Java

If you pay close attention, you’ll notice that toggle switches are all around us because lots of things have two simple states: either ON or OFF (in binary 1 or 0).

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run assertpy automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful