summaryrefslogtreecommitdiff
path: root/tests/modeltests/expressions/models.py
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2009-09-16 12:09:47 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2009-09-16 12:09:47 +0000
commitd56c1ab7f07eeaae3a0fc996169be7cae6a94bf4 (patch)
tree3c6a6cf93dae622192cdaf422f3a0b0225f862ac /tests/modeltests/expressions/models.py
parentf3af2d98830923ce3bb775e46ff336a159d211cb (diff)
Fixed #11886 -- Corrected handling of F() expressions that use parentheses. Thanks to Brent Hagany for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11581 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/modeltests/expressions/models.py')
-rw-r--r--tests/modeltests/expressions/models.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/tests/modeltests/expressions/models.py b/tests/modeltests/expressions/models.py
index 27daabad71..b515682a9c 100644
--- a/tests/modeltests/expressions/models.py
+++ b/tests/modeltests/expressions/models.py
@@ -56,6 +56,16 @@ __test__ = {'API_TESTS': """
>>> company_query
[{'num_chairs': 2302, 'name': u'Example Inc.', 'num_employees': 2300}, {'num_chairs': 5, 'name': u'Foobar Ltd.', 'num_employees': 3}, {'num_chairs': 34, 'name': u'Test GmbH', 'num_employees': 32}]
+# Law of order of operations is followed
+>>> _ =company_query.update(num_chairs=F('num_employees') + 2 * F('num_employees'))
+>>> company_query
+[{'num_chairs': 6900, 'name': u'Example Inc.', 'num_employees': 2300}, {'num_chairs': 9, 'name': u'Foobar Ltd.', 'num_employees': 3}, {'num_chairs': 96, 'name': u'Test GmbH', 'num_employees': 32}]
+
+# Law of order of operations can be overridden by parentheses
+>>> _ =company_query.update(num_chairs=((F('num_employees') + 2) * F('num_employees')))
+>>> company_query
+[{'num_chairs': 5294600, 'name': u'Example Inc.', 'num_employees': 2300}, {'num_chairs': 15, 'name': u'Foobar Ltd.', 'num_employees': 3}, {'num_chairs': 1088, 'name': u'Test GmbH', 'num_employees': 32}]
+
# The relation of a foreign key can become copied over to an other foreign key.
>>> Company.objects.update(point_of_contact=F('ceo'))
3