AttributeError: 'ChannelFileWrite' object has no attribute 'encoding'
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- distributed-systems
Piste de recherche
Reproduisez l’échec avec execnet, pytest-xdist et teamcity-messages installés, en commençant par gateway_base.py de execnet et l’objet ChannelFileWrite dans la trace d’exécution. Examinez teamcity/common.py, où sys.stdout.encoding est lu, puis exécutez les tests pytest-xdist concernés avec et sans teamcity-messages. C’est terminé lorsque le plugin se charge sans cette AttributeError et que les tests réussissent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
When I try to run testsuite for pytest-xdist and both execnet and teamcity-messages are installed few tests fails with errors like:
__________________ TestRemoteControl.test_failures_somewhere ___________________
self = <test_looponfail.TestRemoteControl object at 0x7fffaa00c7c0>
pytester = <Pytester PosixPath('/tmp/pytest-of-marcel/pytest-10/test_failures_somewhere0')>
def test_failures_somewhere(self, pytester: pytest.Pytester) -> None:
item = pytester.getitem("def test_func():\n assert 0\n")
control = RemoteControl(item.config)
control.setup()
> failures = control.runsession()
$(BLDDIR)/testing/test_looponfail.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
$(INSTDIR)/usr/lib/python3.9/vendor-packages/xdist/looponfail.py:117: in runsession
return self.channel.receive()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Channel id=1 closed>, timeout = None
def receive(self, timeout=None):
"""receive a data item that was sent from the other side.
timeout: None [default] blocked waiting. A positive number
indicates the number of seconds after which a channel.TimeoutError
exception will be raised if no item was received.
Note that exceptions from the remotely executing code will be
reraised as channel.RemoteError exceptions containing
a textual representation of the remote traceback.
"""
itemqueue = self._items
if itemqueue is None:
raise IOError("cannot receive(), channel has receiver callback")
try:
x = itemqueue.get(timeout=timeout)
except self.gateway.execmodel.queue.Empty:
raise self.TimeoutError("no item after %r seconds" % timeout)
if x is ENDMARKER:
itemqueue.put(x) # for other receivers
> raise self._getremoteerror() or EOFError()
E execnet.gateway_base.RemoteError: Traceback (most recent call last):
E File "/usr/lib/python3.9/vendor-packages/execnet/gateway_base.py", line 1088, in executetask
E function(channel, **kwargs)
E File "$(INSTDIR)/usr/lib/python3.9/vendor-packages/xdist/looponfail.py", line 171, in init_worker_session
E config = Config.fromdictargs(option_dict, list(args))
E File "/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py", line 1110, in fromdictargs
E config.parse(args, addopts=False)
E File "/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py", line 1346, in parse
E self._preparse(args, addopts=addopts)
E File "/usr/lib/python3.9/vendor-packages/_pytest/config/__init__.py", line 1229, in _preparse
E self.pluginmanager.load_setuptools_entrypoints("pytest11")
E File "/usr/lib/python3.9/vendor-packages/pluggy/_manager.py", line 287, in load_setuptools_entrypoints
E plugin = ep.load()
E File "/usr/lib/python3.9/importlib/metadata.py", line 86, in load
E module = import_module(match.group('module'))
E File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
E return _bootstrap._gcd_import(name[level:], package, level)
E File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
E File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
E File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
E File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
E File "/usr/lib/python3.9/vendor-packages/_pytest/assertion/rewrite.py", line 168, in exec_module
E exec(co, module.__dict__)
E File "/usr/lib/python3.9/vendor-packages/teamcity/pytest_plugin.py", line 22, in <module>
E from teamcity.common import convert_error_to_string, dump_test_stderr, dump_test_stdout
E File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
E File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
E File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
E File "/usr/lib/python3.9/vendor-packages/_pytest/assertion/rewrite.py", line 168, in exec_module
E exec(co, module.__dict__)
E File "/usr/lib/python3.9/vendor-packages/teamcity/common.py", line 19, in <module>
E _sys_stdout_encoding = sys.stdout.encoding
E AttributeError: 'ChannelFileWrite' object has no attribute 'encoding'
/usr/lib/python3.9/vendor-packages/execnet/gateway_base.py:749: RemoteError
With teamcity-messages uninstalled these tests pass.
- Langage dominant
- Python
- Étoiles
- 102
- Forks
- 47
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Nous n'avons pas encore vérifié les fichiers d'installation de ce projet. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de pytest-dev/execnet
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
pytest-dev/execnet#429 · 1 commentaire ·
-
IPv6 supportOuverte
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
pytest-dev/execnet#384 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 45/100
pytest-dev/execnet#374 · 3 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
pytest-dev/execnet#306 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
pytest-dev/execnet#279 · 1 réaction ·
Toutes les issues de pytest-dev/execnet
Issues similaires
-
customer-reported
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Azure/azure-cli#34150 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
community-request
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
NVIDIA-NeMo/Curator#2464 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
WeblateOrg/translation-finder#1099 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
trezor/trezor-firmware#7997 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour