|
@@ -326,7 +326,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_icontains(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__icontains="BaX"),
|
|
|
self.objs[6:8],
|
|
|
)
|
|
@@ -495,7 +495,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_expression_wrapper_key_transform(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.annotate(
|
|
|
expr=ExpressionWrapper(
|
|
|
KeyTransform("c", "value"),
|
|
@@ -506,7 +506,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_has_key(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__has_key="a"),
|
|
|
[self.objs[3], self.objs[4]],
|
|
|
)
|
|
@@ -570,7 +570,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_has_any_keys(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__has_any_keys=["c", "l"]),
|
|
|
[self.objs[3], self.objs[4], self.objs[6]],
|
|
|
)
|
|
@@ -622,7 +622,7 @@ class TestQuerying(TestCase):
|
|
|
for value, expected in tests:
|
|
|
with self.subTest(value=value):
|
|
|
qs = NullableJSONModel.objects.filter(value__contains=value)
|
|
|
- self.assertSequenceEqual(qs, expected)
|
|
|
+ self.assertCountEqual(qs, expected)
|
|
|
|
|
|
@skipIfDBFeature("supports_json_field_contains")
|
|
|
def test_contains_unsupported(self):
|
|
@@ -647,7 +647,7 @@ class TestQuerying(TestCase):
|
|
|
qs = NullableJSONModel.objects.filter(
|
|
|
value__contained_by={"a": "b", "c": 14, "h": True}
|
|
|
)
|
|
|
- self.assertSequenceEqual(qs, self.objs[2:4])
|
|
|
+ self.assertCountEqual(qs, self.objs[2:4])
|
|
|
|
|
|
@skipIfDBFeature("supports_json_field_contains")
|
|
|
def test_contained_by_unsupported(self):
|
|
@@ -656,7 +656,7 @@ class TestQuerying(TestCase):
|
|
|
NullableJSONModel.objects.filter(value__contained_by={"a": "b"}).get()
|
|
|
|
|
|
def test_deep_values(self):
|
|
|
- qs = NullableJSONModel.objects.values_list("value__k__l")
|
|
|
+ qs = NullableJSONModel.objects.values_list("value__k__l").order_by("pk")
|
|
|
expected_objs = [(None,)] * len(self.objs)
|
|
|
expected_objs[4] = ("m",)
|
|
|
self.assertSequenceEqual(qs, expected_objs)
|
|
@@ -670,15 +670,15 @@ class TestQuerying(TestCase):
|
|
|
|
|
|
def test_isnull_key(self):
|
|
|
# key__isnull=False works the same as has_key='key'.
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__a__isnull=True),
|
|
|
self.objs[:3] + self.objs[5:],
|
|
|
)
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__j__isnull=True),
|
|
|
self.objs[:4] + self.objs[5:],
|
|
|
)
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__a__isnull=False),
|
|
|
[self.objs[3], self.objs[4]],
|
|
|
)
|
|
@@ -689,7 +689,7 @@ class TestQuerying(TestCase):
|
|
|
|
|
|
def test_isnull_key_or_none(self):
|
|
|
obj = NullableJSONModel.objects.create(value={"a": None})
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(
|
|
|
Q(value__a__isnull=True) | Q(value__a=None)
|
|
|
),
|
|
@@ -723,7 +723,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_shallow_obj_lookup(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__a="b"),
|
|
|
[self.objs[3], self.objs[4]],
|
|
|
)
|
|
@@ -734,7 +734,7 @@ class TestQuerying(TestCase):
|
|
|
NullableJSONModel.objects.filter(pk=OuterRef("pk")).values("value")
|
|
|
),
|
|
|
).filter(field__a="b")
|
|
|
- self.assertSequenceEqual(qs, [self.objs[3], self.objs[4]])
|
|
|
+ self.assertCountEqual(qs, [self.objs[3], self.objs[4]])
|
|
|
|
|
|
def test_deep_lookup_objs(self):
|
|
|
self.assertSequenceEqual(
|
|
@@ -761,11 +761,11 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_deep_lookup_transform(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__c__gt=2),
|
|
|
[self.objs[3], self.objs[4]],
|
|
|
)
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(value__c__gt=2.33),
|
|
|
[self.objs[3], self.objs[4]],
|
|
|
)
|
|
@@ -777,11 +777,11 @@ class TestQuerying(TestCase):
|
|
|
(Q(value__foo="bax"), [self.objs[0], self.objs[7]]),
|
|
|
]
|
|
|
for condition, expected in tests:
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.exclude(condition),
|
|
|
expected,
|
|
|
)
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(~condition),
|
|
|
expected,
|
|
|
)
|
|
@@ -791,7 +791,7 @@ class TestQuerying(TestCase):
|
|
|
condition = Q(value__foo="bax")
|
|
|
objs_with_value = [self.objs[6]]
|
|
|
objs_with_different_value = [self.objs[0], self.objs[7]]
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.exclude(condition),
|
|
|
objs_with_different_value,
|
|
|
)
|
|
@@ -808,7 +808,7 @@ class TestQuerying(TestCase):
|
|
|
objs_with_value + objs_with_different_value,
|
|
|
)
|
|
|
# Add the __isnull lookup to get an exhaustive set.
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.exclude(condition & Q(value__foo__isnull=False)),
|
|
|
self.objs[0:6] + self.objs[7:],
|
|
|
)
|
|
@@ -818,7 +818,7 @@ class TestQuerying(TestCase):
|
|
|
)
|
|
|
|
|
|
def test_usage_in_subquery(self):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(
|
|
|
id__in=NullableJSONModel.objects.filter(value__c=14),
|
|
|
),
|
|
@@ -876,7 +876,7 @@ class TestQuerying(TestCase):
|
|
|
]
|
|
|
for lookup, value, expected in tests:
|
|
|
with self.subTest(lookup=lookup, value=value):
|
|
|
- self.assertSequenceEqual(
|
|
|
+ self.assertCountEqual(
|
|
|
NullableJSONModel.objects.filter(**{lookup: value}),
|
|
|
expected,
|
|
|
)
|