uranusjr opened a new issue #18225:
URL: https://github.com/apache/airflow/issues/18225


   ### Apache Airflow version
   
   main (development)
   
   ### Operating System
   
   Any
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Other
   
   ### Deployment details
   
   _No response_
   
   ### What happened
   
   `tests/core/test_providers_manager.py::TestProviderManager::test_hooks` is 
broken on 3.6 by #18209 since newer `importlib-resources` versions uses a 
different implementation and the mocks no longer works. This was actually 
visible before merging; all and only 3.6 checks in the PR failed. Let’s be more 
careful identifying CI failure patterns in the future 🙂 
   
   Not exactly sure how to fix yet. I believe the breaking changes were 
introduced in [importlib-resources 
5.2](https://github.com/python/importlib_resources/blob/v5.2.2/CHANGES.rst#v520),
 but restricting `<5.2` is not a long-term fix since the same version is also 
in the Python 3.10 stdlib and will bite us again very soon.
   
   ### What you expected to happen
   
   _No response_
   
   ### How to reproduce
   
   ```
   $ ./breeze tests -- 
tests/core/test_providers_manager.py::TestProviderManager::test_hooks
   ...
   tests/core/test_providers_manager.py F                                       
                           [100%]
   
   ================================================== FAILURES 
==================================================
   _______________________________________ TestProviderManager.test_hooks 
_______________________________________
   
   self = <test_providers_manager.TestProviderManager testMethod=test_hooks>, 
mock_import_module = <MagicMock name='import_module' id='139679504564520'>
   
       @patch('airflow.providers_manager.importlib.import_module')
       def test_hooks(self, mock_import_module):
           # Compat with importlib_resources
           mock_import_module.return_value.__spec__ = Mock()
           with pytest.warns(expected_warning=None) as warning_records:
               with self._caplog.at_level(logging.WARNING):
   >               provider_manager = ProvidersManager()
   
   tests/core/test_providers_manager.py:123:
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   airflow/providers_manager.py:242: in __init__
       self._provider_schema_validator = 
_create_provider_info_schema_validator()
   airflow/providers_manager.py:92: in _create_provider_info_schema_validator
       schema = json.loads(importlib_resources.read_text('airflow', 
'provider_info.schema.json'))
   /usr/local/lib/python3.6/site-packages/importlib_resources/_legacy.py:46: in 
read_text
       with open_text(package, resource, encoding, errors) as fp:
   _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
   
   package = 'airflow', resource = 'provider_info.schema.json', encoding = 
'utf-8', errors = 'strict'
   
       def open_text(
           package: Package,
           resource: Resource,
           encoding: str = 'utf-8',
           errors: str = 'strict',
       ) -> TextIO:
           """Return a file-like object opened for text reading of the 
resource."""
   >       return (_common.files(package) / 
_common.normalize_path(resource)).open(
               'r', encoding=encoding, errors=errors
           )
   E       TypeError: unsupported operand type(s) for /: 'Mock' and 'str'
   ```
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to