| 175 | ) |
| 176 | |
| 177 | def test_in_bulk(self): |
| 178 | # in_bulk() takes a list of IDs and returns a dictionary mapping IDs to |
| 179 | # objects. |
| 180 | arts = Article.objects.in_bulk([self.a1.id, self.a2.id]) |
| 181 | self.assertEqual(arts[self.a1.id], self.a1) |
| 182 | self.assertEqual(arts[self.a2.id], self.a2) |
| 183 | self.assertEqual( |
| 184 | Article.objects.in_bulk(), |
| 185 | { |
| 186 | self.a1.id: self.a1, |
| 187 | self.a2.id: self.a2, |
| 188 | self.a3.id: self.a3, |
| 189 | self.a4.id: self.a4, |
| 190 | self.a5.id: self.a5, |
| 191 | self.a6.id: self.a6, |
| 192 | self.a7.id: self.a7, |
| 193 | }, |
| 194 | ) |
| 195 | self.assertEqual(Article.objects.in_bulk([self.a3.id]), {self.a3.id: self.a3}) |
| 196 | self.assertEqual(Article.objects.in_bulk({self.a3.id}), {self.a3.id: self.a3}) |
| 197 | self.assertEqual( |
| 198 | Article.objects.in_bulk(frozenset([self.a3.id])), {self.a3.id: self.a3} |
| 199 | ) |
| 200 | self.assertEqual(Article.objects.in_bulk((self.a3.id,)), {self.a3.id: self.a3}) |
| 201 | self.assertEqual(Article.objects.in_bulk([1000]), {}) |
| 202 | self.assertEqual(Article.objects.in_bulk([]), {}) |
| 203 | self.assertEqual( |
| 204 | Article.objects.in_bulk(iter([self.a1.id])), {self.a1.id: self.a1} |
| 205 | ) |
| 206 | self.assertEqual(Article.objects.in_bulk(iter([])), {}) |
| 207 | with self.assertRaises(TypeError): |
| 208 | Article.objects.in_bulk(headline__startswith="Blah") |
| 209 | |
| 210 | def test_in_bulk_lots_of_ids(self): |
| 211 | test_range = 2000 |