You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.0 KiB
29 lines
1.0 KiB
import fontTools
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture(autouse=True, scope="session")
|
|
def disableConfigLogger():
|
|
"""Session-scoped fixture to make fontTools.configLogger function no-op.
|
|
|
|
Logging in python maintains a global state. When in the tests we call a main()
|
|
function from modules subset or ttx, a call to configLogger is made that modifies
|
|
this global state (to configures a handler for the fontTools logger).
|
|
To prevent that, we monkey-patch the `configLogger` attribute of the `fontTools`
|
|
module (the one used in the scripts main() functions) so that it does nothing,
|
|
to avoid any side effects.
|
|
|
|
NOTE: `fontTools.configLogger` is only an alias for the configLogger function in
|
|
`fontTools.misc.loggingTools` module; the original function is not modified.
|
|
"""
|
|
|
|
def noop(*args, **kwargs):
|
|
return
|
|
|
|
originalConfigLogger = fontTools.configLogger
|
|
fontTools.configLogger = noop
|
|
try:
|
|
yield
|
|
finally:
|
|
fontTools.configLogger = originalConfigLogger
|