Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

3.2.0: pytest is failing in units which are using webcolors module #832

Closed
kloczek opened this issue Aug 21, 2021 · 10 comments
Closed

3.2.0: pytest is failing in units which are using webcolors module #832

kloczek opened this issue Aug 21, 2021 · 10 comments

Comments

@kloczek
Copy link

kloczek commented Aug 21, 2021

webcolors 1.11.1.
I'm trying to package your module as rpm packag. So I'm using typical in such case build, install and test cycle used on building package from non-root account:

  • "setup.py build"
  • "setup.py install --root </install/prefix>"
  • "pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

May I ask for help because few units are failing:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-jsonschema-3.2.0-10.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-jsonschema-3.2.0-10.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.11, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
Using --randomly-seed=2376281501
rootdir: /home/tkloczko/rpmbuild/BUILD/jsonschema-3.2.0
plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, expect-1.1.0, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, freezegun-0.4.2, aspectlib-1.5.2, toolbox-0.5, rerunfailures-9.1.1, requests-mock-1.9.3, cov-2.12.1, pyfakefs-4.5.0, flaky-3.7.0, benchmark-3.4.1, xdist-2.3.0, pylama-7.7.1, datadir-1.3.1, regressions-2.2.0, cases-3.6.3, xprocess-0.18.1, black-0.3.12, checkdocs-2.7.1, anyio-3.3.0, Faker-8.11.0, asyncio-0.15.1, trio-0.7.0, httpbin-1.0.0, subtests-0.5.0, isort-2.0.0, hypothesis-6.14.6, mock-3.6.1, profiling-1.7.0, randomly-3.8.0
collected 2753 items

jsonschema/tests/test_validators.py ......................................................................s................................s..s.s.....s............. [  4%]
..................s..s.......s..............................                                                                                                         [  6%]
jsonschema/tests/test_jsonschema_test_suite.py ....ss...s..ss......s...s.....s...........s.ss..s..ss...........s....s..s....................s..s...........s........ [ 11%]
......s........s......s......s......s..........s.......s....s...........s.s............s....s.....s...................s..sss..................................s..... [ 17%]
...ss.s..............s...s.s.s.......s....ss..ss.s....s.s...s.....s............s.........s..s......s..........s..s....s..............s...s.ss......s......s........s [ 23%]
s.....s.....ss..s..s.............ss..s..s.........s.........s.s...s.s....s..........ss......s..sss.s.s...ssss.....s.s...................s.....s..s..s............... [ 28%]
....s...s.........s.s.ss..............s....s.........s......................................................................................s..........s............ [ 34%]
..........s.............s.........s...........ss........s......................s...s...............s..............s.........ss.....s......s............s.......s..s. [ 40%]
.......s.s.............s.......s..s.s.s................s....s...................s.........s.s.....s..........................s.............s......s..........s...... [ 46%]
....s.s............s.s....s.ss.s........s..........s......s.....s...............................................................................s..s...........s.... [ 52%]
...................................................s..........................s......s........s...............s.............s....................................... [ 58%]
..................s...........s........s...............s....s................s..............s..F.....................s.........F....F..F...........F....s........... [ 64%]
s..s.....................s.......F...........s....................................................................................s..s....sss.s...s.s.............ss [ 70%]
s......s..s...........s..........s.......sss.........s......s......s..s.......s...s.s...s.......s..............ss..s...s...................s........s.......s.s..... [ 76%]
s..s.ss.ss.....sss.......s.................s............s.s.s........s.......s.s.s.....s.s....s..s............s......s...s...s..s...s..s.s..s...........s....s...... [ 82%]
...sss.s.........s....ss............s.........ss..........s.ss.....s....s...s...s....ss.s..s.s.....s.....s..s............s.ss....s...s.s..sss......sss.sss..ss...... [ 88%]
..s..s....s.s.......s..s........s..............s........s......s.........s..s..s...s..s..s..s...s.ss.s.ss.....s..ss..s.....s.....ss.....ss.s.....s....ss...........s [ 94%]
ss.....ss........s..s.........s.ss..s....s..........s.....s..sss..s...s.s.......ss..s......                                                                          [ 97%]
jsonschema/tests/test_exceptions.py ..............................                                                                                                   [ 98%]
. .                                                                                                                                                                  [ 98%]
jsonschema/tests/test_cli.py .......                                                                                                                                 [ 99%]
jsonschema/tests/test_types.py .............                                                                                                                         [ 99%]
jsonschema/tests/test_format.py ........                                                                                                                             [100%]

================================================================================= FAILURES =================================================================================
_____________________________________________ TestDraft3.test_format_validation_of_CSS_colors_a_valid_six_digit_CSS_color_code _____________________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_a_valid_six_digit_CSS_color_code>

    def fn(this):
>       self.validate(**kwargs)

jsonschema/tests/_suite.py:195:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '#CC8899'

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
________________________________________________ TestDraft3.test_format_validation_of_CSS_colors_an_invalid_CSS_color_code _________________________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_an_invalid_CSS_color_code>

    def fn(this):
        with this.assertRaises(jsonschema.ValidationError):
>           self.validate(**kwargs)

jsonschema/tests/_suite.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
________________________________________________ TestDraft3.test_format_validation_of_CSS_colors_an_invalid_CSS_color_name _________________________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_an_invalid_CSS_color_name>

    def fn(this):
        with this.assertRaises(jsonschema.ValidationError):
>           self.validate(**kwargs)

jsonschema/tests/_suite.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
__________________________________________________ TestDraft3.test_format_validation_of_CSS_colors_a_valid_CSS_color_name __________________________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_a_valid_CSS_color_name>

    def fn(this):
>       self.validate(**kwargs)

jsonschema/tests/_suite.py:195:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = 'fuchsia'

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
____________________________________________ TestDraft3.test_format_validation_of_CSS_colors_a_valid_three_digit_CSS_color_code ____________________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_a_valid_three_digit_CSS_color_code>

    def fn(this):
>       self.validate(**kwargs)

jsonschema/tests/_suite.py:195:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '#C89'

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
______________________________________ TestDraft3.test_format_validation_of_CSS_colors_a_CSS_color_name_containing_invalid_characters ______________________________________

this = <jsonschema.tests.test_jsonschema_test_suite.TestDraft3 testMethod=test_format_validation_of_CSS_colors_a_CSS_color_name_containing_invalid_characters>

    def fn(this):
        with this.assertRaises(jsonschema.ValidationError):
>           self.validate(**kwargs)

jsonschema/tests/_suite.py:199:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
jsonschema/tests/_suite.py:211: in validate
    jsonschema.validate(
jsonschema/validators.py:932: in validate
    error = exceptions.best_match(validator.iter_errors(instance))
jsonschema/exceptions.py:367: in best_match
    best = next(errors, None)
jsonschema/validators.py:328: in iter_errors
    for error in errors:
jsonschema/_validators.py:208: in format
    validator.format_checker.check(instance, format)
jsonschema/_format.py:97: in check
    result = func(instance)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

    @_checks_drafts(draft3="color", raises=(ValueError, TypeError))
    def is_css21_color(instance):
        if (
            not isinstance(instance, str_types) or
>           instance.lower() in webcolors.css21_names_to_hex
        ):
E       AttributeError: module 'webcolors' has no attribute 'css21_names_to_hex'

jsonschema/_format.py:357: AttributeError
============================================================================= warnings summary =============================================================================
jsonschema/tests/test_validators.py::TestValidate::test_schema_error_message
  /home/tkloczko/rpmbuild/BUILD/jsonschema-3.2.0/jsonschema/tests/test_validators.py:1536: DeprecationWarning: Please use assertRegex instead.
    self.assertRegexpMatches(

jsonschema/tests/test_validators.py::TestValidate::test_validation_error_message
  /home/tkloczko/rpmbuild/BUILD/jsonschema-3.2.0/jsonschema/tests/test_validators.py:1528: DeprecationWarning: Please use assertRegex instead.
    self.assertRegexpMatches(

-- Docs: https://docs.pytest.org/en/stable/warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [4] jsonschema/tests/test_validators.py:1181: In Python 3 json.load always produces unicode
SKIPPED [2] jsonschema/tests/test_validators.py:1291: A known bug. See issue #523.
SKIPPED [2] jsonschema/tests/test_validators.py:1298: A known bug. See issue #523.
SKIPPED [52] jsonschema/tests/_suite.py:194: Format checker 'json-pointer' not found.
SKIPPED [24] jsonschema/tests/_suite.py:197: Format checker 'json-pointer' not found.
SKIPPED [41] jsonschema/tests/_suite.py:194: Format checker 'date-time' not found.
SKIPPED [15] jsonschema/tests/_suite.py:197: Format checker 'date-time' not found.
SKIPPED [18] jsonschema/tests/_suite.py:194: Format checker 'uri-template' not found.
SKIPPED [64] jsonschema/tests/_suite.py:194: Format checker 'uri' not found.
SKIPPED [22] jsonschema/tests/_suite.py:194: Format checker 'uri-reference' not found.
SKIPPED [21] jsonschema/tests/_suite.py:197: Format checker 'uri' not found.
SKIPPED [4] jsonschema/tests/_suite.py:197: Format checker 'uri-reference' not found.
SKIPPED [9] jsonschema/tests/_suite.py:197: A known bug. See issue #371.
SKIPPED [6] jsonschema/tests/_suite.py:197: A known bug.
SKIPPED [2] jsonschema/tests/_suite.py:197: Format checker 'uri-template' not found.
SKIPPED [9] jsonschema/tests/_suite.py:194: A known bug. See issue #371.
SKIPPED [6] jsonschema/tests/_suite.py:194: A known bug.
SKIPPED [10] jsonschema/tests/_suite.py:194: Format checker 'relative-json-pointer' not found.
SKIPPED [2] jsonschema/tests/_suite.py:197: Format checker 'iri-reference' not found.
SKIPPED [4] jsonschema/tests/_suite.py:197: Format checker 'iri' not found.
SKIPPED [11] jsonschema/tests/_suite.py:194: Format checker 'iri-reference' not found.
SKIPPED [6] jsonschema/tests/_suite.py:194: A known bug. See issue #593.
SKIPPED [11] jsonschema/tests/_suite.py:194: Format checker 'iri' not found.
SKIPPED [2] jsonschema/tests/_suite.py:197: Format checker 'time' not found.
SKIPPED [7] jsonschema/tests/_suite.py:194: Format checker 'time' not found.
SKIPPED [4] jsonschema/tests/_suite.py:197: A known bug. See issue #593.
SKIPPED [1] jsonschema/tests/_suite.py:197: Format checker 'relative-json-pointer' not found.
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_a_valid_six_digit_CSS_color_code - AttributeError: module 'webcol...
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_an_invalid_CSS_color_code - AttributeError: module 'webcolors' ha...
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_an_invalid_CSS_color_name - AttributeError: module 'webcolors' ha...
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_a_valid_CSS_color_name - AttributeError: module 'webcolors' has n...
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_a_valid_three_digit_CSS_color_code - AttributeError: module 'webc...
FAILED jsonschema/tests/test_jsonschema_test_suite.py::TestDraft3::test_format_validation_of_CSS_colors_a_CSS_color_name_containing_invalid_characters - AttributeError: ...
========================================================= 6 failed, 2386 passed, 359 skipped, 2 warnings in 16.94s =========================================================
pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'.
@Julian
Copy link
Member

Julian commented Aug 21, 2021

Hi. webcolors had a backwards incompatible release, so you either need newer jsonschema (4.0.0 will have the fix when it releases) or older webcolors.

@kloczek
Copy link
Author

kloczek commented Aug 21, 2021

OK so you know about that :)
Issue only is that last version of the jsonschema according to https://pypi.org/project/jsonschema/ is 3.2.0.

@Julian
Copy link
Member

Julian commented Aug 21, 2021

Right, as I say, the next release of jsonschema will support the new. backwards incompatible webcolors. Otherwise use older webcolors.

@Julian Julian closed this as completed Aug 21, 2021
@kloczek
Copy link
Author

kloczek commented Aug 21, 2021

Just quick question: when may be/could be next release? :)

@Julian
Copy link
Member

Julian commented Aug 21, 2021

There's a critical issue with dynamicRef (from #817) which may require a design change, I still am not sure, so it likely will be in the next 2 weeks still but I don't have a precise fix quite yet.

@kloczek
Copy link
Author

kloczek commented Sep 30, 2021

just tested 4.0.1.
All looks good.
Thank you :)

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-jsonschema-4.0.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-jsonschema-4.0.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.10.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
Using --randomly-seed=1410063110
rootdir: /home/tkloczko/rpmbuild/BUILD/jsonschema-4.0.1
plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, expect-1.1.0, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, freezegun-0.4.2, aspectlib-1.5.2, toolbox-0.5, rerunfailures-9.1.1, requests-mock-1.9.3, cov-2.12.1, flaky-3.7.0, benchmark-3.4.1, xdist-2.3.0, pylama-7.7.1, datadir-1.3.1, regressions-2.2.0, xprocess-0.18.1, black-0.3.12, asyncio-0.15.1, subtests-0.5.0, isort-2.0.0, hypothesis-6.14.6, mock-3.6.1, profiling-1.7.0, randomly-3.8.0, nose2pytest-1.0.8, pyfakefs-4.5.1, tornado-0.8.1, twisted-1.13.3, aiohttp-0.3.0, localserver-0.5.0, anyio-3.3.1, trio-0.7.0, cases-3.6.4, yagot-0.5.0, Faker-8.14.0
collected 6325 items

jsonschema/tests/test_validators.py ................................................................................................................................ [  2%]
.............s........s................s...........s..............................................                                                                   [  3%]
jsonschema/tests/test_format.py ..........                                                                                                                           [  3%]
jsonschema/tests/test_jsonschema_test_suite.py ..s.s.s.....s.....s...ss..s.s.....s.sss..s....s...s.ss....ss.........ss.ss.s.....s..s.s...s.s.ss.s.ss.....s.....s.s.. [  5%]
s..s....s...ss.......s.s..s.s.ss....s............ss.s..s..s....s...........s.ss...ss...s...s........s..s........s...ss.s.ss.......s...ss.s......s...ss..s..s.....s.. [  8%]
...s..s.....s.s......s.ss.s.............s.s......................s.....s..............s....s.............................................s.......................... [ 10%]
.s..s....s....s........s.s.....s...........s.........................................................s......s........s..s........s...................s.............. [ 13%]
...........s.....................................s.................................................s........ss.....................s............s................s.. [ 15%]
............................s...........s..................ss.....s.........s.............s...s...s.........................s...........s.....s..s.s......s...s..... [ 18%]
s............................................s...s.............................s..............s..........s................s....s.................................... [ 21%]
.............................................................................................s........s.s...............s..................................ss..s.... [ 23%]
s...s..........................s.......s...........s...............s..........s............s...........s................s............s....................s......... [ 26%]
...........ss......................................................................s...............s...s...................s..s...........s..............s.......... [ 28%]
...........s............s........s..............s................s...................s...........s.....................s................................s........... [ 31%]
s...............s...............s...........s............s...s............................................s.s.s..................................................... [ 34%]
..............s..s..................................s............ss...........................s..........s.......s..........................s.........s............. [ 36%]
s...........s.....................................................................................................s...............................ss................ [ 39%]
..............s..........................s......s.........................s......................s.....s..................s..........s....................s......... [ 41%]
...................................s.................................................s.............s.................s.............................................. [ 44%]
.................ss...s..ss.........s..s.s..........s....ss...s.s..ss.....ss..ss.....s....ss.s..s.s.s.....s..s.s.s.s..sss..s...........s.s.s.s.s...s..sss.ss..ss.... [ 47%]
.........ss..........s...s.s.s..ss.......ss...........s....s.....ss.s.s..s.s.s...........s..sss.......ssss..........s...ss.s..ss.s.s..........s......ss..s........ss [ 49%]
............................................s.................................s...............s................................s......s...................s......... [ 52%]
...s......................s..................................s...................................s.....s..............s.s...................................s....... [ 54%]
.s...s.............................................s.s.................s....s...............ss........s.....................................................s...s... [ 57%]
........s..............................................s.............s............s....................s.s....................s..........................s.....s.s.. [ 60%]
....s.........s...................s...s...........s......s.........................s...................s.....ss.................s................................... [ 62%]
.....................s......s...................................................s......................s...s........................................................ [ 65%]
.........................s......s...................................................................s.....s......................................................... [ 67%]
...............................s..........................................s.........................s.......................................................s....... [ 70%]
...................s..........................s........................................................................................................s.........s.. [ 72%]
.......................s.........s.................................................................................................................................. [ 75%]
..................................................s..........................................s..............................................s............s.........s [ 78%]
.........................................................................................s......................................................s................... [ 80%]
.............s..s...........s.............s........ss..........................................s..s.....s...........................s....................s.......... [ 83%]
....................s.........s.....s............................................s..s........s......s.s......s........s..s.......s...................s...s...s...... [ 85%]
.............s.........s..........s...s.s..........................s.........................s........s......................s...........s........................s. [ 88%]
........s......s...........................s............................................................................s....s...................s..s............... [ 91%]
.......s.....s....s...........s....................s.s..............s...s......s....s.s..............s...........s.......................s............s...s......... [ 93%]
.s............s...s..s....s..........s..............s...........s.s..........ss.s......s....s................s...........s........s..........s......s..s.......s.... [ 96%]
......s....s..................s...................................s.s............................s.........                                                          [ 98%]
jsonschema/tests/test_utils.py .......................                                                                                                               [ 98%]
jsonschema/tests/test_exceptions.py ...............................                                                                                                  [ 98%]
jsonschema/tests/test_deprecations.py .......                                                                                                                        [ 98%]
jsonschema/tests/test_cli.py ..................................................                                                                                      [ 99%]
jsonschema/tests/test_types.py ..............                                                                                                                        [100%]

========================================================================= short test summary info ==========================================================================
SKIPPED [2] jsonschema/tests/test_validators.py:1639: A known bug. See issue #523.
SKIPPED [2] jsonschema/tests/test_validators.py:1646: A known bug. See issue #523.
SKIPPED [18] jsonschema/tests/_suite.py:188: Leap seconds are unsupported.
SKIPPED [18] jsonschema/tests/_suite.py:191: Format checker 'duration' not found.
SKIPPED [60] jsonschema/tests/_suite.py:191: Format checker 'time' not found.
SKIPPED [38] jsonschema/tests/_suite.py:191: Format checker 'uri' not found.
SKIPPED [12] jsonschema/tests/_suite.py:191: Format checker 'iri' not found.
SKIPPED [5] jsonschema/tests/_suite.py:191: Rejecting leading zeros is 3.9+
SKIPPED [8] jsonschema/tests/_suite.py:191: Format checker 'uri-reference' not found.
SKIPPED [18] jsonschema/tests/_suite.py:191: Complex email validation is (intentionally) unsupported.
SKIPPED [15] jsonschema/tests/_suite.py:191: Format checker 'relative-json-pointer' not found.
SKIPPED [48] jsonschema/tests/_suite.py:191: Format checker 'json-pointer' not found.
SKIPPED [45] jsonschema/tests/_suite.py:191: Format checker 'hostname' not found.
SKIPPED [45] jsonschema/tests/_suite.py:191: Format checker 'date-time' not found.
SKIPPED [6] jsonschema/tests/_suite.py:191: Format checker 'iri-reference' not found.
SKIPPED [4] jsonschema/tests/_suite.py:191: Format checker 'uri-template' not found.
SKIPPED [23] jsonschema/tests/_suite.py:191: dynamicRef support isn't working yet.
SKIPPED [32] jsonschema/tests/_suite.py:188: dynamicRef support isn't working yet.
SKIPPED [21] jsonschema/tests/_suite.py:188: unevaluatedItems is different in 2019-09 (needs work).
SKIPPED [14] jsonschema/tests/_suite.py:191: unevaluatedItems is different in 2019-09 (needs work).
SKIPPED [4] jsonschema/tests/_suite.py:191: A known bug.
SKIPPED [6] jsonschema/tests/_suite.py:191: A known bug. See issue #371.
SKIPPED [4] jsonschema/tests/_suite.py:188: A known bug.
SKIPPED [5] jsonschema/tests/_suite.py:188: A known bug. See issue #371.
SKIPPED [9] jsonschema/tests/_suite.py:191: Format checker 'host-name' not found.
SKIPPED [1] jsonschema/tests/_suite.py:191: These tests depends on dynamicRef working.
SKIPPED [1] jsonschema/tests/_suite.py:188: These tests depends on dynamicRef working.
SKIPPED [4] jsonschema/tests/_suite.py:191: A known bug. See issue #593.
==================================================================== 5857 passed, 468 skipped in 22.44s ====================================================================
pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'.

@kloczek
Copy link
Author

kloczek commented Sep 30, 2021

Just a quick question: is it possible to add to git repo stub setup.py like:

from setuptools import setup
setup()

to allow still use sphinx<>setuptools integration to generate documentation?
With that it is possible to generate documentation by use:

+ /usr/bin/python3 setup.py build_sphinx -b man --build-dir build/sphinx
running build_sphinx
Running Sphinx v4.2.0
Initializing Spelling Checker 7.2.1
making output directory... done
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 6 added, 0 changed, 0 removed
reading sources... [100%] validate
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... python-jsonschema.3 { validate errors references creating faq } done
build succeeded.

The manual pages are in build/sphinx/man.

@Julian
Copy link
Member

Julian commented Sep 30, 2021

Invoking setup.py directly is long deprecated for these sorts of things

You should invoke sphinx directly.

@kloczek
Copy link
Author

kloczek commented Sep 30, 2021

Invoking setup.py directly is long deprecated for these sorts of things

setuptools and sphinx setuptools extension are still mainytained and under development.
setuptools still is one of the possible to use pep517 backends.
None of those two parts are marked as deprecated.
More than 98% of all availble python modules are still using setuptools.
sphinx<>setuptools integration is used in ~half available modules.
Just checked my python modules spec files.

[tkloczko@barrel SPECS]$ grep %py3_build_sphinx_man python-* | wc -l; ls -1 python-*| wc -l
326
653
[tkloczko@barrel SPECS]$ rpm -E %py3_build_sphinx_man
\
        PBR_VERSION=%{version} \
        SETUPTOOLS_SCM_PRETEND_VERSION=%{version} \
        /usr/bin/python3 setup.py build_sphinx -b man --build-dir build/sphinx

@Julian
Copy link
Member

Julian commented Sep 30, 2021

Sorry, the short answer is "no a setup.py won't be readded", and more specifically there is no promise that the next version of jsonschema will use setuptools at all, it may switch to another packaging mechanism. Use one of the supported ways to do what you're doing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants