python-openapi/openapi-schema-validator

0.2.0: pytest is failing

kloczek opened this issue · 3 comments

I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -q
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/openapi-schema-validator-0.2.0, configfile: pyproject.toml
plugins: cov-3.0.0
collected 26 items

tests/integration/test_validators.py ............FF..FF.......
tests/unit/test_shortcut.py ./usr/lib64/python3.8/site-packages/coverage/control.py:768: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")


================================================================================= FAILURES =================================================================================
______________________________________ TestOAS30ValidatorValidate.test_string_format_datetime_rfc3339_validator[1989-01-02T00:00:00Z] ______________________________________

self = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3212191f0>, value = '1989-01-02T00:00:00Z'

    @pytest.mark.parametrize('value', [
        u'1989-01-02T00:00:00Z',
        u'2018-01-02T23:59:59Z',
    ])
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_RFC3339_VALIDATOR', True
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_STRICT_RFC3339', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_ISODATE', False
    )
    def test_string_format_datetime_rfc3339_validator(self, value):
        schema = {"type": 'string', "format": 'date-time'}
        validator = OAS30Validator(
            schema, format_checker=oas30_format_checker)

>       result = validator.validate(value)

schema     = {'format': 'date-time', 'type': 'string'}
self       = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3212191f0>
validator  = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
value      = '1989-01-02T00:00:00Z'

tests/integration/test_validators.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/jsonschema/validators.py:253: in validate
    for error in self.iter_errors(*args, **kwargs):
        args       = ('1989-01-02T00:00:00Z',)
        kwargs     = {}
        self       = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
/usr/lib/python3.8/site-packages/jsonschema/validators.py:229: in iter_errors
    for error in errors:
        _schema    = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        applicable_validators = <function <lambda> at 0x7fe32157b670>
        errors     = <generator object format at 0x7fe3224d8e40>
        id_of      = <function <lambda> at 0x7fe321546ee0>
        instance   = '1989-01-02T00:00:00Z'
        k          = 'format'
        scope      = ''
        self       = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
        v          = 'date-time'
        validator  = <function format at 0x7fe321546a60>
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_validators.py:19: in format
    validator.format_checker.check(instance, format)
        format     = 'date-time'
        instance   = '1989-01-02T00:00:00Z'
        schema     = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        validator  = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:135: in check
    result = func(instance)
        cause      = None
        format     = 'date-time'
        func       = <function is_datetime at 0x7fe3215464c0>
        instance   = '1989-01-02T00:00:00Z'
        raises     = (<class 'ValueError'>, <class 'TypeError'>)
        result     = None
        self       = <FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '1989-01-02T00:00:00Z'

    def is_datetime(instance):
        if not isinstance(instance, (bytes, str)):
            return False

        if DATETIME_HAS_RFC3339_VALIDATOR:
>           return validate_rfc3339(instance)
E           NameError: name 'validate_rfc3339' is not defined

instance   = '1989-01-02T00:00:00Z'

../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:76: NameError
______________________________________ TestOAS30ValidatorValidate.test_string_format_datetime_rfc3339_validator[2018-01-02T23:59:59Z] ______________________________________

self = <test_validators.TestOAS30ValidatorValidate object at 0x7fe32113c4f0>, value = '2018-01-02T23:59:59Z'

    @pytest.mark.parametrize('value', [
        u'1989-01-02T00:00:00Z',
        u'2018-01-02T23:59:59Z',
    ])
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_RFC3339_VALIDATOR', True
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_STRICT_RFC3339', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_ISODATE', False
    )
    def test_string_format_datetime_rfc3339_validator(self, value):
        schema = {"type": 'string', "format": 'date-time'}
        validator = OAS30Validator(
            schema, format_checker=oas30_format_checker)

>       result = validator.validate(value)

schema     = {'format': 'date-time', 'type': 'string'}
self       = <test_validators.TestOAS30ValidatorValidate object at 0x7fe32113c4f0>
validator  = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
value      = '2018-01-02T23:59:59Z'

tests/integration/test_validators.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/jsonschema/validators.py:253: in validate
    for error in self.iter_errors(*args, **kwargs):
        args       = ('2018-01-02T23:59:59Z',)
        kwargs     = {}
        self       = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
/usr/lib/python3.8/site-packages/jsonschema/validators.py:229: in iter_errors
    for error in errors:
        _schema    = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        applicable_validators = <function <lambda> at 0x7fe32157b670>
        errors     = <generator object format at 0x7fe3211ce0b0>
        id_of      = <function <lambda> at 0x7fe321546ee0>
        instance   = '2018-01-02T23:59:59Z'
        k          = 'format'
        scope      = ''
        self       = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
        v          = 'date-time'
        validator  = <function format at 0x7fe321546a60>
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_validators.py:19: in format
    validator.format_checker.check(instance, format)
        format     = 'date-time'
        instance   = '2018-01-02T23:59:59Z'
        schema     = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        validator  = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:135: in check
    result = func(instance)
        cause      = None
        format     = 'date-time'
        func       = <function is_datetime at 0x7fe3215464c0>
        instance   = '2018-01-02T23:59:59Z'
        raises     = (<class 'ValueError'>, <class 'TypeError'>)
        result     = None
        self       = <FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '2018-01-02T23:59:59Z'

    def is_datetime(instance):
        if not isinstance(instance, (bytes, str)):
            return False

        if DATETIME_HAS_RFC3339_VALIDATOR:
>           return validate_rfc3339(instance)
E           NameError: name 'validate_rfc3339' is not defined

instance   = '2018-01-02T23:59:59Z'

../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:76: NameError
___________________________________________ TestOAS30ValidatorValidate.test_string_format_datetime_isodate[1989-01-02T00:00:00Z] ___________________________________________

self = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3212424f0>, value = '1989-01-02T00:00:00Z'

    @pytest.mark.parametrize('value', [
        u'1989-01-02T00:00:00Z',
        u'2018-01-02T23:59:59Z',
    ])
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_RFC3339_VALIDATOR', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_STRICT_RFC3339', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_ISODATE', True
    )
    def test_string_format_datetime_isodate(self, value):
        schema = {"type": 'string', "format": 'date-time'}
        validator = OAS30Validator(
            schema, format_checker=oas30_format_checker)

>       result = validator.validate(value)

schema     = {'format': 'date-time', 'type': 'string'}
self       = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3212424f0>
validator  = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
value      = '1989-01-02T00:00:00Z'

tests/integration/test_validators.py:133:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/jsonschema/validators.py:253: in validate
    for error in self.iter_errors(*args, **kwargs):
        args       = ('1989-01-02T00:00:00Z',)
        kwargs     = {}
        self       = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
/usr/lib/python3.8/site-packages/jsonschema/validators.py:229: in iter_errors
    for error in errors:
        _schema    = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        applicable_validators = <function <lambda> at 0x7fe32157b670>
        errors     = <generator object format at 0x7fe3211ce660>
        id_of      = <function <lambda> at 0x7fe321546ee0>
        instance   = '1989-01-02T00:00:00Z'
        k          = 'format'
        scope      = ''
        self       = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
        v          = 'date-time'
        validator  = <function format at 0x7fe321546a60>
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_validators.py:19: in format
    validator.format_checker.check(instance, format)
        format     = 'date-time'
        instance   = '1989-01-02T00:00:00Z'
        schema     = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        validator  = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:135: in check
    result = func(instance)
        cause      = None
        format     = 'date-time'
        func       = <function is_datetime at 0x7fe3215464c0>
        instance   = '1989-01-02T00:00:00Z'
        raises     = (<class 'ValueError'>, <class 'TypeError'>)
        result     = None
        self       = <FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '1989-01-02T00:00:00Z'

    def is_datetime(instance):
        if not isinstance(instance, (bytes, str)):
            return False

        if DATETIME_HAS_RFC3339_VALIDATOR:
            return validate_rfc3339(instance)

        if DATETIME_HAS_STRICT_RFC3339:
            return strict_rfc3339.validate_rfc3339(instance)

        if DATETIME_HAS_ISODATE:
>           return isodate.parse_datetime(instance)
E           NameError: name 'isodate' is not defined

instance   = '1989-01-02T00:00:00Z'

../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:82: NameError
___________________________________________ TestOAS30ValidatorValidate.test_string_format_datetime_isodate[2018-01-02T23:59:59Z] ___________________________________________

self = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3211dc4c0>, value = '2018-01-02T23:59:59Z'

    @pytest.mark.parametrize('value', [
        u'1989-01-02T00:00:00Z',
        u'2018-01-02T23:59:59Z',
    ])
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_RFC3339_VALIDATOR', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_STRICT_RFC3339', False
    )
    @mock.patch(
        'openapi_schema_validator._format.'
        'DATETIME_HAS_ISODATE', True
    )
    def test_string_format_datetime_isodate(self, value):
        schema = {"type": 'string', "format": 'date-time'}
        validator = OAS30Validator(
            schema, format_checker=oas30_format_checker)

>       result = validator.validate(value)

schema     = {'format': 'date-time', 'type': 'string'}
self       = <test_validators.TestOAS30ValidatorValidate object at 0x7fe3211dc4c0>
validator  = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
value      = '2018-01-02T23:59:59Z'

tests/integration/test_validators.py:133:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib/python3.8/site-packages/jsonschema/validators.py:253: in validate
    for error in self.iter_errors(*args, **kwargs):
        args       = ('2018-01-02T23:59:59Z',)
        kwargs     = {}
        self       = OAS30Validator(schema={'format': 'date-time', 'type': 'string'}, format_checker=<FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
/usr/lib/python3.8/site-packages/jsonschema/validators.py:229: in iter_errors
    for error in errors:
        _schema    = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        applicable_validators = <function <lambda> at 0x7fe32157b670>
        errors     = <generator object format at 0x7fe32119d350>
        id_of      = <function <lambda> at 0x7fe321546ee0>
        instance   = '2018-01-02T23:59:59Z'
        k          = 'format'
        scope      = ''
        self       = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
        v          = 'date-time'
        validator  = <function format at 0x7fe321546a60>
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_validators.py:19: in format
    validator.format_checker.check(instance, format)
        format     = 'date-time'
        instance   = '2018-01-02T23:59:59Z'
        schema     = {'format': 'date-time', 'nullable': False, 'type': 'string'}
        validator  = OAS30Validator(schema={'format': 'date-time', 'nullable': False, 'type': 'string'}, format_checker=<FormatChecker chec...binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>, read=None, write=None)
../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:135: in check
    result = func(instance)
        cause      = None
        format     = 'date-time'
        func       = <function is_datetime at 0x7fe3215464c0>
        instance   = '2018-01-02T23:59:59Z'
        raises     = (<class 'ValueError'>, <class 'TypeError'>)
        result     = None
        self       = <FormatChecker checkers=['binary', 'byte', 'date', 'date-time', 'double', 'float', 'int32', 'int64', 'password', 'uuid']>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

instance = '2018-01-02T23:59:59Z'

    def is_datetime(instance):
        if not isinstance(instance, (bytes, str)):
            return False

        if DATETIME_HAS_RFC3339_VALIDATOR:
            return validate_rfc3339(instance)

        if DATETIME_HAS_STRICT_RFC3339:
            return strict_rfc3339.validate_rfc3339(instance)

        if DATETIME_HAS_ISODATE:
>           return isodate.parse_datetime(instance)
E           NameError: name 'isodate' is not defined

instance   = '2018-01-02T23:59:59Z'

../../BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages/openapi_schema_validator/_format.py:82: NameError
------------------------------------ generated xml file: /home/tkloczko/rpmbuild/BUILD/openapi-schema-validator-0.2.0/reports/junit.xml ------------------------------------

---------- coverage: platform linux, python 3.8.12-final-0 -----------
Name                                      Stmts   Miss  Cover   Missing
-----------------------------------------------------------------------
openapi_schema_validator/__init__.py          9      9     0%   2-12
openapi_schema_validator/_format.py          84     84     0%   1-146
openapi_schema_validator/_types.py            4      4     0%   1-11
openapi_schema_validator/_validators.py      60     60     0%   1-90
openapi_schema_validator/shortcuts.py         8      8     0%   1-11
openapi_schema_validator/validators.py       18     18     0%   1-78
-----------------------------------------------------------------------
TOTAL                                       183    183     0%
Coverage XML written to file reports/coverage.xml

========================================================================= short test summary info ==========================================================================
FAILED tests/integration/test_validators.py::TestOAS30ValidatorValidate::test_string_format_datetime_rfc3339_validator[1989-01-02T00:00:00Z] - NameError: name 'validate_...
FAILED tests/integration/test_validators.py::TestOAS30ValidatorValidate::test_string_format_datetime_rfc3339_validator[2018-01-02T23:59:59Z] - NameError: name 'validate_...
FAILED tests/integration/test_validators.py::TestOAS30ValidatorValidate::test_string_format_datetime_isodate[1989-01-02T00:00:00Z] - NameError: name 'isodate' is not def...
FAILED tests/integration/test_validators.py::TestOAS30ValidatorValidate::test_string_format_datetime_isodate[2018-01-02T23:59:59Z] - NameError: name 'isodate' is not def...
======================================================================= 4 failed, 22 passed in 0.64s =======================================================================
p1c2u commented

Hi @kloczek
you need to install all extra dependencies (rfc3339-validator, strict-rfc3339, isodate) to make all tests pass

OK will try do that.
Thank you (will back with results shortly)

Indeed I had two missing modules in build env: rfc3339-validator and isodate.
With those two modules pytest finishes with exit 0.

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-openapi-schema-validator-0.2.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -q
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/openapi-schema-validator-0.2.0, configfile: pyproject.toml
plugins: cov-3.0.0
collected 26 items

tests/integration/test_validators.py .........................
tests/unit/test_shortcut.py ./usr/lib64/python3.8/site-packages/coverage/control.py:768: CoverageWarning: No data was collected. (no-data-collected)
  self._warn("No data was collected.", slug="no-data-collected")


------------------------------------ generated xml file: /home/tkloczko/rpmbuild/BUILD/openapi-schema-validator-0.2.0/reports/junit.xml ------------------------------------

---------- coverage: platform linux, python 3.8.12-final-0 -----------
Name                                      Stmts   Miss  Cover   Missing
-----------------------------------------------------------------------
openapi_schema_validator/__init__.py          9      9     0%   2-12
openapi_schema_validator/_format.py          84     84     0%   1-146
openapi_schema_validator/_types.py            4      4     0%   1-11
openapi_schema_validator/_validators.py      60     60     0%   1-90
openapi_schema_validator/shortcuts.py         8      8     0%   1-11
openapi_schema_validator/validators.py       18     18     0%   1-78
-----------------------------------------------------------------------
TOTAL                                       183    183     0%
Coverage XML written to file reports/coverage.xml

============================================================================ 26 passed in 0.39s ============================================================================

I'm not sure about that CoverageWarning so I'm living you decision about close this ticket.

Thank you 😄