DjangoでImageFieldに画像が設定されていないことをテストする
ImageFieldに画像が設定されていないことをテストで確認したい場合はどうするか
以下の例の通り、画像を設定していないImageFieldはNoneではないので、TestCaseのassertIsNoneなどでは正しくテストできない
>>> p = Person.objects.get(pk=1) >>> p.profile_image <ImageFieldFile: None> >>> p.profile_image is None False
ImageFieldの値をそのままboolに渡すと、画像が設定されていない場合は結果がFalseになるので、assertFalseを使ってテストできる
>>> bool(p.profile_image) False >>> p.another_image <ImageFieldFile: another_image/dummy.png> >>> bool(p.another_image) True
他にもやりかたあるんだろうけど、とりあえずこれで確認できた