Repository: sphinx-doc/sphinx

Issue:
Regression in autodoc
**Describe the bug**
A regression from 2.0.1 to 2.1.0 breaks some aspect of autodoc. I don't know enough about sphinx internals to say exactly what, but I have provided copy/pasteable steps to reproduce below.

**To Reproduce**

Setup:
```
python -mvenv /tmp/sphinx-autodoc-regression
source /tmp/sphinx-autodoc-regression/bin/activate
git clone https://github.com/bluesky/databroker
cd databroker/
pip install wheel
pip install .
pip install -r test-requirements.txt
pip install -r docs-requirements.txt 
```

Reproduce success on 2.0.1:
```
sphinx-build --version  # should be 2.0.1
make -C doc html  # runs successfully
```

Reproduce failure on 2.1.0:

```
pip install sphinx==2.1.0
make -C doc clean
make -C doc html
```

**Expected behavior**
I expect it to succeed on 2.1.0 same as it does on 2.0.1.

**Your project**
https://github.com/bluesky/databroker

**Environment info**
- OS: Ubuntu Linux
- Python version: 3.6.7
- Sphinx version: 2.1.0
- Sphinx extensions:  sphinx.ext.autodoc



Discussion:

Patch:
diff --git a/CHANGES b/CHANGES
index d21c82a5e..f8e8f46ee 100644
--- a/CHANGES
+++ b/CHANGES
@@ -16,9 +16,8 @@ Features added
 Bugs fixed
 ----------
 
-* #6442: LaTeX: admonitions of :rst:dir:`note` type can get separated from
-  immediately preceding section title by pagebreak
 * #6448: autodoc: crashed when autodocumenting classes with ``__slots__ = None``
+* #6452: autosummary: crashed when generating document of properties
 
 Testing
 --------
diff --git a/sphinx/ext/autosummary/generate.py b/sphinx/ext/autosummary/generate.py
index ba1ec219a..1bfbb0da4 100644
--- a/sphinx/ext/autosummary/generate.py
+++ b/sphinx/ext/autosummary/generate.py
@@ -221,7 +221,7 @@ def get_members(obj, types, include_public=[], imported=True):
                     get_members(obj, {'attribute', 'property'})
 
             parts = name.split('.')
-            if doc.objtype in ('method', 'attribute'):
+            if doc.objtype in ('method', 'attribute', 'property'):
                 mod_name = '.'.join(parts[:-2])
                 cls_name = parts[-2]
                 obj_name = '.'.join(parts[-2:])
diff --git a/sphinx/texinputs/sphinx.sty b/sphinx/texinputs/sphinx.sty
index 184b0d820..6ace6a9ce 100644
--- a/sphinx/texinputs/sphinx.sty
+++ b/sphinx/texinputs/sphinx.sty
@@ -6,7 +6,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{sphinx}[2019/06/04 v2.1.1 LaTeX package (Sphinx markup)]
+\ProvidesPackage{sphinx}[2019/01/12 v1.8.4 LaTeX package (Sphinx markup)]
 
 % provides \ltx@ifundefined
 % (many packages load ltxcmds: graphicx does for pdftex and lualatex but
@@ -1444,7 +1444,7 @@
 % Some are quite plain
 % the spx@notice@bordercolor etc are set in the sphinxadmonition environment
 \newenvironment{sphinxlightbox}{%
-  \par
+  \par\allowbreak
   \noindent{\color{spx@notice@bordercolor}%
             \rule{\linewidth}{\spx@notice@border}}\par\nobreak
   {\parskip\z@skip\noindent}%


Test patch:
diff --git a/tests/test_ext_autosummary.py b/tests/test_ext_autosummary.py
index 04af9ed85..ae97d3b57 100644
--- a/tests/test_ext_autosummary.py
+++ b/tests/test_ext_autosummary.py
@@ -10,7 +10,7 @@
 
 import sys
 from io import StringIO
-from unittest.mock import Mock
+from unittest.mock import Mock, patch
 
 import pytest
 from docutils import nodes
@@ -19,6 +19,7 @@
 from sphinx.ext.autosummary import (
     autosummary_table, autosummary_toc, mangle_signature, import_by_name, extract_summary
 )
+from sphinx.ext.autosummary.generate import generate_autosummary_docs
 from sphinx.testing.util import assert_node, etree_parse
 from sphinx.util.docutils import new_document
 
@@ -286,3 +287,18 @@ def test_autosummary_imported_members(app, status, warning):
                 '   \n' in module)
     finally:
         sys.modules.pop('autosummary_dummy_package', None)
+
+
+@pytest.mark.sphinx(testroot='ext-autodoc')
+def test_generate_autosummary_docs_property(app):
+    with patch('sphinx.ext.autosummary.generate.find_autosummary_in_files') as mock:
+        mock.return_value = [('target.methods.Base.prop', 'prop', None)]
+        generate_autosummary_docs([], output_dir=app.srcdir, builder=app.builder, app=app)
+
+    content = (app.srcdir / 'target.methods.Base.prop.rst').text()
+    assert content == ("target.methods.Base.prop\n"
+                       "========================\n"
+                       "\n"
+                       ".. currentmodule:: target.methods\n"
+                       "\n"
+                       ".. autoproperty:: Base.prop")