summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/model_meta/models.py9
-rw-r--r--tests/model_meta/tests.py2
2 files changed, 11 insertions, 0 deletions
diff --git a/tests/model_meta/models.py b/tests/model_meta/models.py
index 882ac2c9fd..bd7e7f1889 100644
--- a/tests/model_meta/models.py
+++ b/tests/model_meta/models.py
@@ -9,6 +9,13 @@ class Relation(models.Model):
pass
+class InstanceOnlyDescriptor(object):
+ def __get__(self, instance, cls=None):
+ if instance is None:
+ raise AttributeError('Instance only')
+ return 1
+
+
class AbstractPerson(models.Model):
# DATA fields
data_abstract = models.CharField(max_length=10)
@@ -43,6 +50,8 @@ class AbstractPerson(models.Model):
def test_property(self):
return 1
+ test_instance_only_descriptor = InstanceOnlyDescriptor()
+
class BasePerson(AbstractPerson):
# DATA fields
diff --git a/tests/model_meta/tests.py b/tests/model_meta/tests.py
index 265e180331..1b71c95b3e 100644
--- a/tests/model_meta/tests.py
+++ b/tests/model_meta/tests.py
@@ -276,4 +276,6 @@ class ParentListTests(SimpleTestCase):
class PropertyNamesTests(SimpleTestCase):
def test_person(self):
+ # Instance only descriptors don't appear in _property_names.
+ self.assertEqual(AbstractPerson().test_instance_only_descriptor, 1)
self.assertEqual(AbstractPerson._meta._property_names, frozenset(['pk', 'test_property']))