mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Refs #33476 -- Reformatted code with Black.
This commit is contained in:
committed by
Mariusz Felisiak
parent
f68fa8b45d
commit
9c19aff7c7
@@ -8,54 +8,66 @@ class ValuesExpressionsTests(TestCase):
|
||||
@classmethod
|
||||
def setUpTestData(cls):
|
||||
Company.objects.create(
|
||||
name='Example Inc.', num_employees=2300, num_chairs=5,
|
||||
ceo=Employee.objects.create(firstname='Joe', lastname='Smith', salary=10)
|
||||
name="Example Inc.",
|
||||
num_employees=2300,
|
||||
num_chairs=5,
|
||||
ceo=Employee.objects.create(firstname="Joe", lastname="Smith", salary=10),
|
||||
)
|
||||
Company.objects.create(
|
||||
name='Foobar Ltd.', num_employees=3, num_chairs=4,
|
||||
ceo=Employee.objects.create(firstname='Frank', lastname='Meyer', salary=20)
|
||||
name="Foobar Ltd.",
|
||||
num_employees=3,
|
||||
num_chairs=4,
|
||||
ceo=Employee.objects.create(firstname="Frank", lastname="Meyer", salary=20),
|
||||
)
|
||||
Company.objects.create(
|
||||
name='Test GmbH', num_employees=32, num_chairs=1,
|
||||
ceo=Employee.objects.create(firstname='Max', lastname='Mustermann', salary=30)
|
||||
name="Test GmbH",
|
||||
num_employees=32,
|
||||
num_chairs=1,
|
||||
ceo=Employee.objects.create(
|
||||
firstname="Max", lastname="Mustermann", salary=30
|
||||
),
|
||||
)
|
||||
|
||||
def test_values_expression(self):
|
||||
self.assertSequenceEqual(
|
||||
Company.objects.values(salary=F('ceo__salary')),
|
||||
[{'salary': 10}, {'salary': 20}, {'salary': 30}],
|
||||
Company.objects.values(salary=F("ceo__salary")),
|
||||
[{"salary": 10}, {"salary": 20}, {"salary": 30}],
|
||||
)
|
||||
|
||||
def test_values_expression_group_by(self):
|
||||
# values() applies annotate() first, so values selected are grouped by
|
||||
# id, not firstname.
|
||||
Employee.objects.create(firstname='Joe', lastname='Jones', salary=2)
|
||||
joes = Employee.objects.filter(firstname='Joe')
|
||||
Employee.objects.create(firstname="Joe", lastname="Jones", salary=2)
|
||||
joes = Employee.objects.filter(firstname="Joe")
|
||||
self.assertSequenceEqual(
|
||||
joes.values('firstname', sum_salary=Sum('salary')).order_by('sum_salary'),
|
||||
[{'firstname': 'Joe', 'sum_salary': 2}, {'firstname': 'Joe', 'sum_salary': 10}],
|
||||
joes.values("firstname", sum_salary=Sum("salary")).order_by("sum_salary"),
|
||||
[
|
||||
{"firstname": "Joe", "sum_salary": 2},
|
||||
{"firstname": "Joe", "sum_salary": 10},
|
||||
],
|
||||
)
|
||||
self.assertSequenceEqual(
|
||||
joes.values('firstname').annotate(sum_salary=Sum('salary')),
|
||||
[{'firstname': 'Joe', 'sum_salary': 12}]
|
||||
joes.values("firstname").annotate(sum_salary=Sum("salary")),
|
||||
[{"firstname": "Joe", "sum_salary": 12}],
|
||||
)
|
||||
|
||||
def test_chained_values_with_expression(self):
|
||||
Employee.objects.create(firstname='Joe', lastname='Jones', salary=2)
|
||||
joes = Employee.objects.filter(firstname='Joe').values('firstname')
|
||||
Employee.objects.create(firstname="Joe", lastname="Jones", salary=2)
|
||||
joes = Employee.objects.filter(firstname="Joe").values("firstname")
|
||||
self.assertSequenceEqual(
|
||||
joes.values('firstname', sum_salary=Sum('salary')),
|
||||
[{'firstname': 'Joe', 'sum_salary': 12}]
|
||||
joes.values("firstname", sum_salary=Sum("salary")),
|
||||
[{"firstname": "Joe", "sum_salary": 12}],
|
||||
)
|
||||
self.assertSequenceEqual(
|
||||
joes.values(sum_salary=Sum('salary')),
|
||||
[{'sum_salary': 12}]
|
||||
joes.values(sum_salary=Sum("salary")), [{"sum_salary": 12}]
|
||||
)
|
||||
|
||||
def test_values_list_expression(self):
|
||||
companies = Company.objects.values_list('name', F('ceo__salary'))
|
||||
self.assertSequenceEqual(companies, [('Example Inc.', 10), ('Foobar Ltd.', 20), ('Test GmbH', 30)])
|
||||
companies = Company.objects.values_list("name", F("ceo__salary"))
|
||||
self.assertSequenceEqual(
|
||||
companies, [("Example Inc.", 10), ("Foobar Ltd.", 20), ("Test GmbH", 30)]
|
||||
)
|
||||
|
||||
def test_values_list_expression_flat(self):
|
||||
companies = Company.objects.values_list(F('ceo__salary'), flat=True)
|
||||
companies = Company.objects.values_list(F("ceo__salary"), flat=True)
|
||||
self.assertSequenceEqual(companies, (10, 20, 30))
|
||||
|
||||
Reference in New Issue
Block a user