Bug 1690793 - python-sphinxcontrib-websupport FTBFS - test failures (Sphinx 2.0.0)
Summary: python-sphinxcontrib-websupport FTBFS - test failures (Sphinx 2.0.0)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-sphinxcontrib-websupport
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
low
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1691429
Blocks: SPHINX2 PYTHON38
TreeView+ depends on / blocked
 
Reported: 2019-03-20 09:28 UTC by Miro Hrončok
Modified: 2019-03-28 00:09 UTC (History)
3 users (show)

Fixed In Version: python-sphinxcontrib-websupport-1.1.1~dev20190321-1.fc31
Clone Of:
Environment:
Last Closed: 2019-03-28 00:09:03 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github sphinx-doc sphinx issues 6190 0 None None None 2019-03-21 08:50:33 UTC
Github sphinx-doc sphinxcontrib-websupport pull 28 0 None None None 2019-03-21 08:50:33 UTC

Description Miro Hrončok 2019-03-20 09:28:52 UTC
python-sphinxcontrib-websupport 1.1.0 fails the tests with import errors on sphinx.websupport.

upstream master fixes the issue (changes sphinxcontrib.websupport), but the entire test suite fails.

this is a problem for the 3.8 bootstrap. yet not a big one, as sphinx no onger requires sphinxcontrib-websupport.

Here (before Sphinx 2.0.0, with 1:1.8.4-1.fc30): https://src.fedoraproject.org/rpms/python-sphinxcontrib-websupport/pull-request/3 the failure was:

============================= test session starts ==============================
platform linux -- Python 3.7.2, pytest-3.9.3, py-1.7.0, pluggy-0.8.1
rootdir: /builddir/build/BUILD/sphinxcontrib-websupport-1.1.0, inifile:
collected 13 items
tests/test_searchadapters.py s.                                          [ 15%]
tests/test_websupport.py .F.FFFFFFF.                                     [100%]
=================================== FAILURES ===================================
__________________________________ test_build __________________________________
self = <sqlalchemy.engine.base.Connection object at 0xf52cbd0c>
dialect = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0xf52b20ac>
constructor = <bound method DefaultExecutionContext._init_compiled of <class 'sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext'>>
statement = 'INSERT INTO sphinx_nodes (id, document, source) VALUES (?, ?, ?)'
parameters = ('9a9b2d1f64be431aa6e9e898878c3954', 'lists', 'description')
args = (<sqlalchemy.dialects.sqlite.base.SQLiteCompiler object at 0xf4d9b1ec>, [{'document': 'lists', 'id': '9a9b2d1f64be431aa6e9e898878c3954', 'source': 'description'}])
conn = <sqlalchemy.pool.base._ConnectionFairy object at 0xf4d9bc0c>
context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0xf52cbe2c>
    def _execute_context(
        self, dialect, constructor, statement, parameters, *args
    ):
        """Create an :class:`.ExecutionContext` and execute, returning
        a :class:`.ResultProxy`."""
    
        try:
            try:
                conn = self.__connection
            except AttributeError:
                # escape "except AttributeError" before revalidating
                # to prevent misleading stacktraces in Py3K
                conn = None
            if conn is None:
                conn = self._revalidate_connection()
    
            context = constructor(dialect, self, conn, *args)
        except BaseException as e:
            self._handle_dbapi_exception(
                e, util.text_type(statement), parameters, None, None
            )
    
        if context.compiled:
            context.pre_exec()
    
        cursor, statement, parameters = (
            context.cursor,
            context.statement,
            context.parameters,
        )
    
        if not context.executemany:
            parameters = parameters[0]
    
        if self._has_events or self.engine._has_events:
            for fn in self.dispatch.before_cursor_execute:
                statement, parameters = fn(
                    self,
                    cursor,
                    statement,
                    parameters,
                    context,
                    context.executemany,
                )
    
        if self._echo:
            self.engine.logger.info(statement)
            self.engine.logger.info(
                "%r", sql_util._repr_params(parameters, batches=10)
            )
    
        evt_handled = False
        try:
            if context.executemany:
                if self.dialect._has_events:
                    for fn in self.dialect.dispatch.do_executemany:
                        if fn(cursor, statement, parameters, context):
                            evt_handled = True
                            break
                if not evt_handled:
                    self.dialect.do_executemany(
                        cursor, statement, parameters, context
                    )
            elif not parameters and context.no_parameters:
                if self.dialect._has_events:
                    for fn in self.dialect.dispatch.do_execute_no_params:
                        if fn(cursor, statement, context):
                            evt_handled = True
                            break
                if not evt_handled:
                    self.dialect.do_execute_no_params(
                        cursor, statement, context
                    )
            else:
                if self.dialect._has_events:
                    for fn in self.dialect.dispatch.do_execute:
                        if fn(cursor, statement, parameters, context):
                            evt_handled = True
                            break
                if not evt_handled:
                    self.dialect.do_execute(
>                       cursor, statement, parameters, context
                    )
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1244: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0xf52b20ac>
cursor = <sqlite3.Cursor object at 0xf51f1820>
statement = 'INSERT INTO sphinx_nodes (id, document, source) VALUES (?, ?, ?)'
parameters = ('9a9b2d1f64be431aa6e9e898878c3954', 'lists', 'description')
context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0xf52cbe2c>
    def do_execute(self, cursor, statement, parameters, context=None):
>       cursor.execute(statement, parameters)
E       sqlite3.IntegrityError: UNIQUE constraint failed: sphinx_nodes.id
/usr/lib/python3.7/site-packages/sqlalchemy/engine/default.py:552: IntegrityError
The above exception was the direct cause of the following exception:
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf53e3d0c>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_build(support):
>       support.build()
tests/test_websupport.py:63: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.7/site-packages/sphinxcontrib/websupport/core.py:137: in build
    app.build()
/usr/lib/python3.7/site-packages/sphinx/application.py:341: in build
    self.builder.build_update()
/usr/lib/python3.7/site-packages/sphinx/builders/__init__.py:347: in build_update
    len(to_build))
/usr/lib/python3.7/site-packages/sphinx/builders/__init__.py:412: in build
    self.write(docnames, list(updated_docnames), method)
/usr/lib/python3.7/site-packages/sphinx/builders/__init__.py:593: in write
    self._write_serial(sorted(docnames))
/usr/lib/python3.7/site-packages/sphinx/builders/__init__.py:604: in _write_serial
    self.write_doc(docname, doctree)
sphinxcontrib/websupport/builder.py:75: in write_doc
    self.docwriter.write(doctree, destination)
/usr/lib/python3.7/site-packages/docutils/writers/__init__.py:80: in write
    self.translate()
/usr/lib/python3.7/site-packages/sphinx/writers/html.py:58: in translate
    self.document.walkabout(visitor)
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:174: in walkabout
    if child.walkabout(visitor):
/usr/lib/python3.7/site-packages/docutils/nodes.py:166: in walkabout
    visitor.dispatch_visit(self)
sphinxcontrib/websupport/writer.py:27: in dispatch_visit
    self.handle_visit_commentable(node)
sphinxcontrib/websupport/writer.py:34: in handle_visit_commentable
    self.add_db_node(node)
sphinxcontrib/websupport/writer.py:46: in add_db_node
    source=node.rawsource or node.astext())
/usr/lib/python3.7/site-packages/sphinxcontrib/websupport/storage/sqlalchemystorage.py:53: in add_node
    self.build_session.flush()
/usr/lib/python3.7/site-packages/sqlalchemy/orm/session.py:2451: in flush
    self._flush(objects)
/usr/lib/python3.7/site-packages/sqlalchemy/orm/session.py:2589: in _flush
    transaction.rollback(_capture_exception=True)
/usr/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py:68: in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
/usr/lib/python3.7/site-packages/sqlalchemy/util/compat.py:129: in reraise
    raise value
/usr/lib/python3.7/site-packages/sqlalchemy/orm/session.py:2549: in _flush
    flush_context.execute()
/usr/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py:422: in execute
    rec.execute(self)
/usr/lib/python3.7/site-packages/sqlalchemy/orm/unitofwork.py:589: in execute
    uow,
/usr/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py:245: in save_obj
    insert,
/usr/lib/python3.7/site-packages/sqlalchemy/orm/persistence.py:1066: in _emit_insert_statements
    c = cached_connections[connection].execute(statement, multiparams)
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:988: in execute
    return meth(self, multiparams, params)
/usr/lib/python3.7/site-packages/sqlalchemy/sql/elements.py:287: in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1107: in _execute_clauseelement
    distilled_params,
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1248: in _execute_context
    e, statement, parameters, cursor, context
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1466: in _handle_dbapi_exception
    util.raise_from_cause(sqlalchemy_exception, exc_info)
/usr/lib/python3.7/site-packages/sqlalchemy/util/compat.py:383: in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
/usr/lib/python3.7/site-packages/sqlalchemy/util/compat.py:128: in reraise
    raise value.with_traceback(tb)
/usr/lib/python3.7/site-packages/sqlalchemy/engine/base.py:1244: in _execute_context
    cursor, statement, parameters, context
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <sqlalchemy.dialects.sqlite.pysqlite.SQLiteDialect_pysqlite object at 0xf52b20ac>
cursor = <sqlite3.Cursor object at 0xf51f1820>
statement = 'INSERT INTO sphinx_nodes (id, document, source) VALUES (?, ?, ?)'
parameters = ('9a9b2d1f64be431aa6e9e898878c3954', 'lists', 'description')
context = <sqlalchemy.dialects.sqlite.base.SQLiteExecutionContext object at 0xf52cbe2c>
    def do_execute(self, cursor, statement, parameters, context=None):
>       cursor.execute(statement, parameters)
E       sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: sphinx_nodes.id
E       [SQL: INSERT INTO sphinx_nodes (id, document, source) VALUES (?, ?, ?)]
E       [parameters: ('9a9b2d1f64be431aa6e9e898878c3954', 'lists', 'description')]
E       (Background on this error at: http://sqlalche.me/e/gkpj)
/usr/lib/python3.7/site-packages/sqlalchemy/engine/default.py:552: IntegrityError
----------------------------- Captured stdout call -----------------------------
Running Sphinx v1.8.4[39;49;00m
building [mo]: [39;49;00mtargets for 0 po files that are out of date
building [websupport][39;49;00m: targets for 16 source files that are out of date
updating environment: [39;49;00m16 added, 0 changed, 0 removed
reading sources... [39;49;00m[  6%] autodoc[39;49;00m                                              
reading sources... [39;49;00m[ 12%] bom[39;49;00m                                                  
reading sources... [39;49;00m[ 18%] contents[39;49;00m                                             
reading sources... [39;49;00m[ 25%] extapi[39;49;00m                                               
reading sources... [39;49;00m[ 31%] extensions[39;49;00m                                           
reading sources... [39;49;00m[ 37%] footnote[39;49;00m                                             
reading sources... [39;49;00m[ 43%] images[39;49;00m                                               
reading sources... [39;49;00m[ 50%] includes[39;49;00m                                             
reading sources... [39;49;00m[ 56%] lists[39;49;00m                                                
reading sources... [39;49;00m[ 62%] markup[39;49;00m                                               
reading sources... [39;49;00m[ 68%] math[39;49;00m                                                 
reading sources... [39;49;00m[ 75%] metadata[39;49;00m                                             
reading sources... [39;49;00m[ 81%] objects[39;49;00m                                              
reading sources... [39;49;00m[ 87%] otherext[39;49;00m                                             
reading sources... [39;49;00m[ 93%] subdir/images[39;49;00m                                        
reading sources... [39;49;00m[100%] subdir/includes[39;49;00m                                      
looking for now-outdated files... [39;49;00mnone found
pickling environment... [39;49;00mdone
checking consistency... [39;49;00mdone
preparing documents... [39;49;00mdone
writing output... [39;49;00m[  6%] autodoc[39;49;00m                                               
writing output... [39;49;00m[ 12%] bom[39;49;00m                                                   
writing output... [39;49;00m[ 18%] contents[39;49;00m                                              
writing output... [39;49;00m[ 25%] extapi[39;49;00m                                                
writing output... [39;49;00m[ 31%] extensions[39;49;00m                                            
writing output... [39;49;00m[ 37%] footnote[39;49;00m                                              
writing output... [39;49;00m[ 43%] images[39;49;00m                                                
writing output... [39;49;00m[ 50%] includes[39;49;00m                                              
writing output... [39;49;00m[ 56%] lists[39;49;00m                                                 
----------------------------- Captured stderr call -----------------------------
WARNING: while setting up extension sphinx.domains.changeset: directive 'deprecated' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.domains.changeset: directive 'versionadded' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.domains.changeset: directive 'versionchanged' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.domains.math: role 'eq' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'automodule' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoclass' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoexception' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autodata' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autofunction' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'automethod' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoattribute' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.autodoc: directive 'autoinstanceattribute' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.todo: node class 'todolist' is already registered, its visitors will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.todo: node class 'todo_node' is already registered, its visitors will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.todo: directive 'todo' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension sphinx.ext.todo: directive 'todolist' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension conf.py: directive 'funcdir' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension conf.py: directive 'clsdir' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension conf.py: role 'issue' is already registered, it will be overridden[39;49;00m
WARNING: while setting up extension conf.py: role 'pyurl' is already registered, it will be overridden[39;49;00m
WARNING: autodoc: failed to import module 'test_autodoc'; the following exception was raised:
No module named 'test_autodoc'[39;49;00m
WARNING: autodoc: failed to import function 'function' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'function'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: function
[39;49;00m
WARNING: autodoc: failed to import class 'Class' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'Class'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: Class
[39;49;00m
WARNING: autodoc: failed to import class 'Outer' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'Outer'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: Outer
[39;49;00m
WARNING: autodoc: failed to import attribute 'Class.docattr' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'Class'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: Class
[39;49;00m
WARNING: autodoc: failed to import exception 'CustomEx' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'CustomEx'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: CustomEx
[39;49;00m
WARNING: autodoc: failed to import class 'CustomDict' from module 'util'; the following exception was raised:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 225, in safe_getattr
    return getattr(obj, name, *defargs)
AttributeError: module 'util' has no attribute 'CustomDict'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/importer.py", line 193, in import_object
    obj = attrgetter(obj, attrname)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 290, in get_attr
    return autodoc_attrgetter(self.env.app, obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/ext/autodoc/__init__.py", line 1562, in autodoc_attrgetter
    return safe_getattr(obj, name, *defargs)
  File "/usr/lib/python3.7/site-packages/sphinx/util/inspect.py", line 241, in safe_getattr
    raise AttributeError(name)
AttributeError: CustomDict
[39;49;00m
/builddir/build/BUILD/sphinxcontrib-websupport-1.1.0/tests/root/autodoc_fodder.py:docstring of autodoc_fodder.MarkupError:2: WARNING: Explicit markup ends without a blank line; unexpected unindent.[39;49;00m
WARNING: autodoc: failed to import class 'InstAttCls' from module 'test_autodoc'; the following exception was raised:
No module named 'test_autodoc'[39;49;00m
WARNING: autodoc: failed to import class 'InstAttCls' from module 'test_autodoc'; the following exception was raised:
No module named 'test_autodoc'[39;49;00m
WARNING: autodoc: failed to import module 'autodoc_missing_imports'; the following exception was raised:
No module named 'missing_package1'[39;49;00m
/builddir/build/BUILD/sphinxcontrib-websupport-1.1.0/tests/root/images.txt:9: WARNING: image file not readable: foo.png[39;49;00m
/builddir/build/BUILD/sphinxcontrib-websupport-1.1.0/tests/root/includes.txt:4: WARNING: download file not readable: /builddir/build/BUILD/sphinxcontrib-websupport-1.1.0/tests/root/nonexisting.png[39;49;00m
/builddir/build/BUILD/sphinxcontrib-websupport-1.1.0/tests/root/contents.txt:10: WARNING: extensions is already assigned section numbers (nested numbered toctree?)[39;49;00m
________________________________ test_comments _________________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf545bf4c>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_comments(support):
        session = Session()
        nodes = session.query(Node).all()
>       first_node = nodes[0]
E       IndexError: list index out of range
tests/test_websupport.py:82: IndexError
__________________________ test_user_delete_comments ___________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf545b4ec>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_user_delete_comments(support):
        def get_comment():
            session = Session()
            node = session.query(Node).first()
            session.close()
            return support.get_data(node.id)['comments'][0]
    
>       comment = get_comment()
tests/test_websupport.py:135: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_comment():
        session = Session()
        node = session.query(Node).first()
        session.close()
>       return support.get_data(node.id)['comments'][0]
E       AttributeError: 'NoneType' object has no attribute 'id'
tests/test_websupport.py:133: AttributeError
_______________________________ test_moderation ________________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf4fb654c>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support(moderation_callback=moderation_callback)
    def test_moderation(support):
        session = Session()
        nodes = session.query(Node).all()
>       node = nodes[7]
E       IndexError: list index out of range
tests/test_websupport.py:160: IndexError
________________________ test_moderator_delete_comments ________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf783138c>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_moderator_delete_comments(support):
        def get_comment():
            session = Session()
            node = session.query(Node).first()
            session.close()
            return support.get_data(node.id, moderator=True)['comments'][1]
    
>       comment = get_comment()
tests/test_websupport.py:190: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
    def get_comment():
        session = Session()
        node = session.query(Node).first()
        session.close()
>       return support.get_data(node.id, moderator=True)['comments'][1]
E       AttributeError: 'NoneType' object has no attribute 'id'
tests/test_websupport.py:188: AttributeError
_____________________________ test_update_username _____________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf4fafbac>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_update_username(support):
        support.update_username('user_two', 'new_user_two')
        session = Session()
        comments = session.query(Comment).\
            filter(Comment.username == 'user_two').all()
        assert len(comments) == 0
        votes = session.query(CommentVote).\
            filter(CommentVote.username == 'user_two').all()
        assert len(votes) == 0
        comments = session.query(Comment).\
            filter(Comment.username == 'new_user_two').all()
>       assert len(comments) == 1
E       assert 0 == 1
E        +  where 0 = len([])
tests/test_websupport.py:210: AssertionError
________________________________ test_proposals ________________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf514792c>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_proposals(support):
        session = Session()
        node = session.query(Node).first()
    
>       data = support.get_data(node.id)
E       AttributeError: 'NoneType' object has no attribute 'id'
tests/test_websupport.py:222: AttributeError
_________________________________ test_voting __________________________________
support = <sphinxcontrib.websupport.core.WebSupport object at 0xf4e145cc>
    @pytest.mark.skipif(sqlalchemy_missing, reason='needs sqlalchemy')
    @with_support()
    def test_voting(support):
        session = Session()
        nodes = session.query(Node).all()
>       node = nodes[0]
E       IndexError: list index out of range
tests/test_websupport.py:237: IndexError
========== 8 failed, 4 passed, 1 skipped, 75 warnings in 6.24 seconds ==========

Now, with Sphinx 2.0.0, the failure is different and reported to upstream:

https://github.com/sphinx-doc/sphinx/issues/6190

Comment 1 Miro Hrončok 2019-03-21 08:50:33 UTC
Fixed upstream: https://github.com/sphinx-doc/sphinxcontrib-websupport/pull/28


Note You need to log in before you can comment on or make changes to this bug.