Mock Version: 1.3.4 Mock Version: 1.3.4 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/python-sure.spec'], nspawn_args=[]shell=Falseuid=996env={'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': ' \\s-\\v\\$ '}chrootPath='/var/lib/mock/dist-c8-build-7585-368/root'gid=135user='mockbuild'timeout=86400logger=printOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target noarch --nodeps /builddir/build/SPECS/python-sure.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': ' \\s-\\v\\$ '} and shell False Building target platforms: noarch Building for target noarch Wrote: /builddir/build/SRPMS/python-sure-1.4.0-6.el8.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/python-sure.spec'], nspawn_args=[]shell=Falseuid=996env={'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': ' \\s-\\v\\$ '}chrootPath='/var/lib/mock/dist-c8-build-7585-368/root'gid=135user='mockbuild'timeout=86400logger=printOutput=False) Executing command: ['bash', '--login', '-c', u'/usr/bin/rpmbuild -bb --target noarch --nodeps /builddir/build/SPECS/python-sure.spec'] with env {'LANG': 'en_GB.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'HOME': '/builddir', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PS1': ' \\s-\\v\\$ '} and shell False Building target platforms: noarch Building for target noarch Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.C0bKje + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf sure-1.4.0 + /usr/bin/gzip -dc /builddir/build/SOURCES/sure-1.4.0.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd sure-1.4.0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -rf sure.egg-info + rm -rf /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 + cp -a . /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 + find /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 -name '*.py' + xargs sed -i '1s|^#!/bin/env python|#!/usr/libexec/platform-python|' + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.poWNxh + umask 022 + cd /builddir/build/BUILD + cd sure-1.4.0 ~/build/BUILD/python3-python-sure-1.4.0-6.el8 ~/build/BUILD/sure-1.4.0 + pushd /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 + LANG=en_US.utf8 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=x86-64 -mtune=generic -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/libexec/platform-python setup.py build '--executable=/usr/libexec/platform-python -s' running build running build_py creating build creating build/lib creating build/lib/sure copying sure/registry.py -> build/lib/sure copying sure/magic.py -> build/lib/sure copying sure/core.py -> build/lib/sure copying sure/old.py -> build/lib/sure copying sure/terminal.py -> build/lib/sure copying sure/compat.py -> build/lib/sure copying sure/deprecated.py -> build/lib/sure copying sure/__init__.py -> build/lib/sure running egg_info creating sure.egg-info writing sure.egg-info/PKG-INFO writing dependency_links to sure.egg-info/dependency_links.txt writing requirements to sure.egg-info/requires.txt writing top-level names to sure.egg-info/top_level.txt writing manifest file 'sure.egg-info/SOURCES.txt' reading manifest file 'sure.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'sure.egg-info/SOURCES.txt' + sleep 1 + popd + exit 0 ~/build/BUILD/sure-1.4.0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.ZEFBWn + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch ++ dirname /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch + cd sure-1.4.0 + pushd /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 ~/build/BUILD/python3-python-sure-1.4.0-6.el8 ~/build/BUILD/sure-1.4.0 + LANG=en_US.utf8 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m32 -march=x86-64 -mtune=generic -mfpmath=sse -mstackrealign -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/libexec/platform-python setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch running install running install_lib creating /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr creating /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib creating /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6 creating /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages creating /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/registry.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/magic.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/core.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/old.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/terminal.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/compat.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/deprecated.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure copying build/lib/sure/__init__.py -> /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/registry.py to registry.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/magic.py to magic.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/core.py to core.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/old.py to old.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/terminal.py to terminal.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/compat.py to compat.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/deprecated.py to deprecated.cpython-36.pyc byte-compiling /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure/__init__.py to __init__.cpython-36.pyc writing byte-compilation script '/tmp/tmp9j7l8w2f.py' /usr/libexec/platform-python /tmp/tmp9j7l8w2f.py removing /tmp/tmp9j7l8w2f.py running install_egg_info running egg_info writing sure.egg-info/PKG-INFO writing dependency_links to sure.egg-info/dependency_links.txt writing requirements to sure.egg-info/requires.txt writing top-level names to sure.egg-info/top_level.txt reading manifest file 'sure.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'sure.egg-info/SOURCES.txt' Copying sure.egg-info to /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6/site-packages/sure-1.4.0-py3.6.egg-info running install_scripts + popd ~/build/BUILD/sure-1.4.0 + /usr/lib/rpm/find-debuginfo.sh -j40 --strict-build-id -m -i --build-id-seed 1.4.0-6.el8 --unique-debug-suffix -1.4.0-6.el8.noarch --unique-debug-src-base python-sure-1.4.0-6.el8.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/sure-1.4.0 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig /sbin/ldconfig: Warning: ignoring configuration file that cannot be opened: /etc/ld.so.conf: No such file or directory + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile 1 Bytecompiling .py files below /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/lib/python3.6 using /usr/libexec/platform-python + /usr/lib/rpm/brp-python-hardlink + PYTHON3=/usr/libexec/platform-python + /usr/lib/rpm/redhat/brp-mangle-shebangs Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.BoCcQv + umask 022 + cd /builddir/build/BUILD + cd sure-1.4.0 ~/build/BUILD/python3-python-sure-1.4.0-6.el8 ~/build/BUILD/sure-1.4.0 + pushd /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8 + /usr/libexec/platform-python setup.py test running test running egg_info writing sure.egg-info/PKG-INFO writing dependency_links to sure.egg-info/dependency_links.txt writing requirements to sure.egg-info/requires.txt writing top-level names to sure.egg-info/top_level.txt reading manifest file 'sure.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' writing manifest file 'sure.egg-info/SOURCES.txt' running build_ext issues.test_issue_104.test_issue_104 ... ok issues.test_issue_19.test_issue_19 Allow monkey-patching of methods already implemented by sure. ... ok issues.test_issue_48.test_issue_48 ... ok /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8/tests/test_assertion_builder.py:547: DeprecationWarning: invalid escape sequence \w ("expect('some string').to.match(r'\w{4} \w{6}') matches regex") /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8/tests/test_assertion_builder.py:560: DeprecationWarning: invalid escape sequence \d "'some string' doesn't match the regular expression /\d{2} \d{4}/") test_assertion_builder.test_assertion_builder_synonyms this, it, these and those are all synonyms ... ok test_assertion_builder.test_4_equal_2p2 this(4).should.equal(2 + 2) ... ok test_assertion_builder.test_2_within_0a2 this(1).should.be.within(0, 2) ... ok test_assertion_builder.test_true_be_ok this(True).should.be.ok ... ok test_assertion_builder.test_false_be_falsy this(False).should.be.false ... ok test_assertion_builder.test_none this(None).should.be.none ... ok test_assertion_builder.test_should_be_a this(None).should.be.none ... ok test_assertion_builder.test_should_be_callable this(function).should.be.callable ... ok test_assertion_builder.test_iterable_should_be_empty this(iterable).should.be.empty ... ok test_assertion_builder.test_iterable_should_have_length_of this(iterable).should.have.length_of(N) ... ok test_assertion_builder.test_greater_than this(X).should.be.greater_than(Y) ... ok test_assertion_builder.test_greater_than_or_equal_to this(X).should.be.greater_than_or_equal_to(Y) ... ok test_assertion_builder.test_lower_than this(X).should.be.lower_than(Y) ... ok test_assertion_builder.test_lower_than_or_equal_to this(X).should.be.lower_than_or_equal_to(Y) ... ok test_assertion_builder.test_be this(X).should.be(X) when X is a reference to the same object ... ok test_assertion_builder.test_have_property this(instance).should.have.property(property_name) ... ok test_assertion_builder.test_have_property_with_value this(instance).should.have.property(property_name).being or .with_value should allow chain up ... ok test_assertion_builder.test_have_key this(dictionary).should.have.key(key_name) ... ok test_assertion_builder.test_have_key_with_value this(dictionary).should.have.key(key_name).being or .with_value should allow chain up ... ok test_assertion_builder.test_look_like this(' aa ... ok test_assertion_builder.test_equal_with_repr_of_complex_types_and_unicode test usage of repr() inside expect(complex1).to.equal(complex2) ... ok test_assertion_builder.test_equal_with_repr_of_complex_types_and_repr test usage of repr() inside expect(complex1).to.equal(complex2) ... ok test_assertion_builder.test_match_regex expect('some string').to.match(r'\w{4} \w{6}') matches regex ... ok test_assertion_builder.test_match_contain expect('some string').to.contain('tri') ... ok test_assertion_builder.test_catching_exceptions ... ok test_assertion_builder.test_catching_exceptions_with_params ... ok test_assertion_builder.test_success_with_params ... ok test_assertion_builder.test_success_with_params_exception ... ok test_assertion_builder.test_throw_matching_regex ... ok test_assertion_builder.test_should_not_be_different 'something'.should_not.be.different('SOMETHING'.lower()) ... ok test_assertion_builder.test_equals_handles_mock_call_list .equal() Should convert mock._CallList instances to lists ... ok test_assertion_builder.test_equals_handles_float_with_epsilon .equal(what, epsilon=XXX) should check for equality with an epsilon for float values ... ok test_assertion_builder.test_equals_dictionaries_with_tuple_keys .equal() with dict containing tuples as keys should work ... ok test_assertion_builder.test_ordereddict_comparison .equal(OrderedDict) should check if two ordered dicts are the same ... ok test_assertion_builder.test_equals_anything ... ok test_assertion_builder.test_equals_crosstype ... ok test_cpython_patches.test_it_works_with_objects anything that inherits from object should be patched ... ok test_cpython_patches.test_dir_conceals_sure_specific_attributes dir(obj) should conceal names of methods that were grafted by sure ... ok test_custom_assertions.test_custom_assertion test extending sure with a custom assertion. ... ok test_custom_assertions.test_custom_chain_method test extending sure with a custom chain method. ... ok test_custom_assertions.test_custom_chain_property test extending sure with a custom chain property. ... ok test_old_api.test_setup_with_context sure.with_context() runs setup before the function itself ... /builddir/build/BUILD/python3-python-sure-1.4.0-6.el8/tests/test_old_api.py:45: DeprecationWarning: Please use assertEqual instead. 'john_is_within_context', ok test_old_api.test_context_is_not_optional sure.that_with_context() when no context is given it fails ... ok test_old_api.test_setup_with_context_context_failing sure.that_with_context() in a failing test ... ok test_old_api.test_teardown_with_context sure.with_context() runs teardown before the function itself ... ok test_old_api.test_that_is_a that() is_a(object) ... ok test_old_api.test_that_equals that() equals(string) ... ok test_old_api.test_that_differs that() differs(object) ... ok test_old_api.test_that_has that() has(object) ... ok test_old_api.test_that_at_key_equals that().at(object).equals(object) ... ok test_old_api.test_that_len_is that() len_is(number) ... ok test_old_api.test_that_len_greater_than that() len_greater_than(number) ... ok test_old_api.test_that_len_greater_than_should_raise_assertion_error that() len_greater_than(number) raise AssertionError ... ok test_old_api.test_that_len_greater_than_or_equals that() len_greater_than_or_equals(number) ... ok test_old_api.test_that_len_greater_than_or_equals_should_raise_assertion_error that() len_greater_than_or_equals(number) raise AssertionError ... ok test_old_api.test_that_len_lower_than that() len_lower_than(number) ... ok test_old_api.test_that_len_lower_than_should_raise_assertion_error that() len_lower_than(number) raise AssertionError ... ok test_old_api.test_that_len_lower_than_or_equals that() len_lower_than_or_equals(number) ... ok test_old_api.test_that_len_lower_than_or_equals_should_raise_assertion_error that() len_lower_than_or_equals(number) raise AssertionError ... ok test_old_api.test_that_checking_all_atributes that(iterable).the_attribute('name').equals('value') ... ok test_old_api.test_that_checking_all_atributes_of_range that(iterable, within_range=(1, 2)).the_attribute('name').equals('value') ... ok test_old_api.test_that_checking_all_elements that(iterable).every_one_is('value') ... ok test_old_api.test_that_checking_each_matches that(iterable).in_each('').equals('value') ... ok test_old_api.test_that_raises that(callable, with_args=[arg1], and_kwargs={'arg2': 'value'}).raises(SomeException) ... ok test_old_api.test_that_looks_like that('String\n with BREAKLINE').looks_like('string with breakline') ... ok test_old_api.test_that_raises_does_raise_for_exception_type_mismatch that(callable(RuntimeError)).raises(TypeError) ... ok test_old_api.test_that_raises_with_args that(callable, with_args=['foo']).raises(FooError) ... ok test_old_api.test_that_does_not_raise_with_args that(callable).doesnt_raise(FooError) and does_not_raise ... ok test_old_api.test_that_contains_string that('foobar').contains('foo') ... ok test_old_api.test_that_doesnt_contain_string that('foobar').does_not_contain('123'), .doesnt_contain ... ok test_old_api.test_that_contains_none that('foobar').contains(None) ... ok test_old_api.test_that_none_contains_string that(None).contains('bungalow') ... ok test_old_api.test_that_some_iterable_is_empty that(some_iterable).is_empty and that(something).are_empty ... ok test_old_api.test_that_something_is_empty_raises that(something_not_iterable).is_empty and that(something_not_iterable).are_empty raises ... ok test_old_api.test_that_something_iterable_matches_another that(something_iterable).matches(another_iterable) ... ok test_old_api.test_within_pass within(five=miliseconds) will pass ... ok test_old_api.test_within_fail within(five=miliseconds) will fail ... ok test_old_api.test_word_to_number ... ok test_old_api.test_word_to_number_fail ... ok test_old_api.test_microsecond_unit testing microseconds convertion ... ok test_old_api.test_milisecond_unit testing miliseconds convertion ... ok test_old_api.test_second_unit testing seconds convertion ... ok test_old_api.test_minute_unit testing minutes convertion ... ok test_old_api.test_within_pass_utc within(five=miliseconds) gives utc parameter ... ok test_old_api.test_that_is_a_matcher_should_absorb_callables_to_be_used_as_matcher that.is_a_matcher should absorb callables to be used as matcher ... ok test_old_api.test_accepts_setup_list sure.with_context() accepts a list of callbacks for setup ... ok test_old_api.test_accepts_teardown_list sure.with_context() runs teardown before the function itself ... ok test_old_api.test_scenario_is_alias_for_context_on_setup_and_teardown @scenario aliases @that_with_context for setup and teardown ... ok test_old_api.test_actions_returns_context the actions always returns the context ... ok test_old_api.test_actions_providing_variables_in_the_context the actions should be able to declare the variables they provide ... ok test_old_api.test_fails_when_action_doesnt_fulfill_the_agreement_of_provides it fails when an action doesn't fulfill its agreements ... ok test_old_api.test_depends_on_failing_due_nothing_found it fails when an action depends on some attribute that is not provided by any other previous action ... ok test_old_api.test_depends_on_failing_due_not_calling_a_previous_action it fails when an action depends on some attribute that is being provided by other actions ... ok test_old_api.test_that_contains_dictionary_keys that(dict(name='foobar')).contains('name') ... ok test_old_api.test_that_contains_list that(['foobar', '123']).contains('foobar') ... ok test_old_api.test_that_contains_set that(set(['foobar', '123']).contains('foobar') ... ok test_old_api.test_that_contains_tuple that(('foobar', '123')).contains('foobar') ... ok test_old_api.test_variables_bag_provides_meaningful_error_on_nonexisting_attribute VariablesBag() provides a meaningful error when attr does not exist ... ok test_old_api.test_actions_providing_dinamically_named_variables the actions should be able to declare the variables they provide ... ok test_old_api.test_deep_equals_dict_level1_success that() deep_equals(dict) succeeding on level 1 ... ok test_old_api.test_deep_equals_dict_level1_fail that() deep_equals(dict) failing on level 1 ... ok test_old_api.test_deep_equals_list_level1_success that(list) deep_equals(list) succeeding on level 1 ... ok test_old_api.test_deep_equals_list_level1_fail_by_value that(list) deep_equals(list) failing on level 1 ... ok test_old_api.test_deep_equals_list_level1_fail_by_length_x_gt_y that(list) deep_equals(list) failing by length (len(X) > len(Y)) ... ok test_old_api.test_deep_equals_list_level1_fail_by_length_y_gt_x that(list) deep_equals(list) failing by length (len(Y) > len(X)) ... ok test_old_api.test_deep_equals_dict_level1_fails_missing_key_on_y that(X) deep_equals(Y) fails when Y is missing a key that X has ... ok test_old_api.test_deep_equals_failing_basic_vs_complex that(X) deep_equals(Y) fails with basic vc complex type ... ok test_old_api.test_deep_equals_failing_complex_vs_basic that(X) deep_equals(Y) fails with complex vc basic type ... ok test_old_api.test_deep_equals_tuple_level1_success that(tuple) deep_equals(tuple) succeeding on level 1 ... ok test_old_api.test_deep_equals_tuple_level1_fail_by_value that(tuple) deep_equals(tuple) failing on level 1 ... ok test_old_api.test_deep_equals_tuple_level1_fail_by_length_x_gt_y that(tuple) deep_equals(tuple) failing by length (len(X) > len(Y)) ... ok test_old_api.test_deep_equals_tuple_level1_fail_by_length_y_gt_x that(tuple) deep_equals(tuple) failing by length (len(Y) > len(X)) ... ok test_old_api.test_deep_equals_fallsback_to_generic_comparator that() deep_equals(dict) falling back to generic comparator ... ok test_old_api.test_deep_equals_fallsback_to_generic_comparator_failing that() deep_equals(dict) with generic comparator failing ... ok test_old_api.test_deep_equals_fallsback_to_generic_comparator_failing_type that() deep_equals(dict) with generic comparator failing ... ok test_old_api.test_deep_equals_dict_level2_success that() deep_equals(dict) succeeding on level 2 ... ok test_old_api.test_deep_equals_dict_level2_list_success that() deep_equals(dict) succeeding on level 2 ... ok test_old_api.test_deep_equals_dict_level2_fail that() deep_equals(dict) failing on level 2 ... ok test_old_api.test_deep_equals_dict_level3_fail_values that() deep_equals(dict) failing on level 3 ... ok test_old_api.test_deep_equals_dict_level3_fails_missing_key that() deep_equals(dict) failing on level 3 when missing a key ... ok test_old_api.test_deep_equals_dict_level3_fails_extra_key that() deep_equals(dict) failing on level 3 when has an extra key ... ok test_old_api.test_deep_equals_dict_level3_fails_different_key that() deep_equals(dict) failing on level 3 when has an extra key ... ok test_old_api.test_deep_equals_list_level2_fail_by_length_x_gt_y that(list) deep_equals(list) failing by length (len(X) > len(Y)) ... ok test_old_api.test_deep_equals_list_level2_fail_by_length_y_gt_x that(list) deep_equals(list) failing by length (len(Y) > len(X)) ... ok test_old_api.test_function_decorated_with_wip_should_set_a_flag @sure.work_in_progress should set an internal flag into `sure` ... ok test_old_api.test_that_equals_fails that() equals(string) when it's supposed to fail ... ok test_old_api.test_raises_with_string that(callable).raises('message') should compare the message ... ok test_old_api.test_deep_equals_weird ... ok test_safe_repr.test_basic_list safe_repr should display a simple list ... ok test_safe_repr.test_basic_dict safe_repr should return a sorted repr ... ok test_safe_repr.test_nested_dict dicts nested inside values should also get sorted ... ok test_safe_repr.test_unicode dicts with unicode should work properly ... ok ---------------------------------------------------------------------- Ran 135 tests in 0.802s OK + popd + exit 0 ~/build/BUILD/sure-1.4.0 Processing files: python3-sure-1.4.0-6.el8.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.NdFZwG + umask 022 + cd /builddir/build/BUILD + cd sure-1.4.0 + LICENSEDIR=/builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/share/licenses/python3-sure + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/share/licenses/python3-sure + cp -pr COPYING /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch/usr/share/licenses/python3-sure + exit 0 Provides: python3-sure = 1.4.0-6.el8 python3.6dist(sure) = 1.4.0 python3dist(sure) = 1.4.0 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.6 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch Wrote: /builddir/build/RPMS/python3-sure-1.4.0-6.el8.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.U9G0yW + umask 022 + cd /builddir/build/BUILD + cd sure-1.4.0 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-sure-1.4.0-6.el8.noarch + exit 0 Child return code was: 0