XZise added a comment.

Okay this might sound stupid, but you have to execute it via 
`tests/ui_tests.py`. Although it doesn't work because then the `tests` module 
isn't available.

If you use `python pwb.py tests/ui_tests.py` (which is what I've been doing 
until recently) `pywikibot` is imported in pwb.py and the `UI` class in 
`pywikibot.userinterfaces.terminal_interface_base` is already initialized 
before the test suite had a change to monkey patch it. And that `UI` class 
buffers the `std*` locally so if we monkeypatch `sys.std*` it after it is 
initialized `pywikibot.output()` and the likes are still using the buffered 
`stdout`.

Interestingly the tests are importing `pywikibot` after patching `sys.std*`, so 
wouldn't there be pwb.py it might work, although importing something in test is 
like importing `pywikibot` too.

TASK DETAIL
  https://phabricator.wikimedia.org/T76248

REPLY HANDLER ACTIONS
  Reply to comment or attach files, or !close, !claim, !unsubscribe or !assign 
<username>.

To: XZise
Cc: pywikipedia-bugs, valhallasw, XZise, jayvdb



_______________________________________________
Pywikipedia-bugs mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-bugs

Reply via email to