複数のユーザーを選択する Thing の作成を行うビューをテストしたいと思います (他の詳細の中でも特に)。
User モデルに「 users」 ManyToManyField を持つ Thing モデルを定義しました(Django の出荷済み認証アプリから)。
ここに私のテストコードがあります:
class ViewsTest(TestCase):
def test_create(self):
my_users = [...some User instances...]
response = self.client.post("/create/", {...stuff...,
'users': [user.id for user in my_users]})
self.assertEqual(200, response.status_code)
created_thing = Thing.objects.get(...)
self.assertListEqual(my_users, [user for user in created_thing.users.all()])
このテストはパスしたので、すべて問題ありませんが、最後のリスト内包表記に悩まされています。created_thing.usersをリストとして取得するよりエレガントな方法はありませんか?
私はDjango 1.4.1を使用しています。