From 510dc8c8377e4fef1e96c13c2ea3f25f4b51c889 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Mon, 11 Feb 2019 20:22:35 +0200 Subject: [PATCH] python: fix documentation build with python 3.7 The simplistic mocking in conf.py falls short on python 3.7. Just use unittest.mock instead. Fixes: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/sphinx/config.py", line 368, in eval_config_file execfile_(filename, namespace) File "/usr/lib/python3/dist-packages/sphinx/util/pycompat.py", line 150, in execfile_ exec_(code, _globals) File "/path/to/notmuch/bindings/python/docs/source/conf.py", line 39, in from notmuch import __VERSION__,__AUTHOR__ File "/path/to/notmuch/bindings/python/notmuch/__init__.py", line 54, in from .database import Database File "/path/to/notmuch/bindings/python/notmuch/database.py", line 25, in from .globals import ( File "/path/to/notmuch/bindings/python/notmuch/globals.py", line 48, in class NotmuchDatabaseS(Structure): TypeError: __mro_entries__ must return a tuple --- bindings/python/docs/source/conf.py | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/bindings/python/docs/source/conf.py b/bindings/python/docs/source/conf.py index 5b901c4e..8b43c5ca 100644 --- a/bindings/python/docs/source/conf.py +++ b/bindings/python/docs/source/conf.py @@ -13,22 +13,13 @@ import sys, os +from unittest.mock import Mock + # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0,os.path.abspath('../..')) -class Mock(object): - def __init__(self, *args, **kwargs): - pass - - def __call__(self, *args, **kwargs): - return Mock() - - @classmethod - def __getattr__(self, name): - return Mock() if name not in ('__file__', '__path__') else '/dev/null' - MOCK_MODULES = [ 'ctypes', ]