Fix test failure for Sphinx >= 2.2.2 #472
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes #465.
Sphinx changed the way it retrieves the CDomain in
sphinx-doc/sphinx@e42d546
to no longer use env.domaindata, but env.get_domain instead.
This breaks the mocks setup by breathe as they were implicitly only populatin
env.domaindata by invoking the constructor of the C and C++ domains (see
sphinx.domains.init: Domain.init). To properly populate the environment,
we need to make the mocked registry aware of the registered domains. Since we
only care about the C and C++ domain, we simply make it return both in
create_domains(), which registers them properly in the environment.
Note that this is unfortunately only a hack and a proper solution would be to port the testsuite to use sphinx'
testing
module instead, which in turn requires to use pytest instead of nosetests.