def test_create_from_zipfile_with_multiple_images(self, upload_to_s3, Session): skyrider = Production.objects.get(title="Skyrider") link = skyrider.links.create( link_class='BaseUrl', parameter='http://example.com/badzipfile.zip', is_download_link=True ) ArchiveMember.objects.create( archive_sha1='1714c638436d875760cba50fde5ad1382a042ef5', filename='bad-apple.png', file_size=42 ) ArchiveMember.objects.create( archive_sha1='1714c638436d875760cba50fde5ad1382a042ef5', filename='bad-apple-2.png', file_size=42 ) upload_to_s3.return_value = 'http://example.com/screens/skyrider.png' create_screenshot_from_production_link(link.id) link.refresh_from_db() self.assertTrue(link.is_unresolved_for_screenshotting) self.assertEqual(skyrider.screenshots.count(), 0) self.assertEqual(len(upload_to_s3.call_args_list), 0)
def test_previous_bad_image(self): skyrider = Production.objects.get(title="Skyrider") link = skyrider.links.create( link_class='BaseUrl', parameter='http://kestra.exotica.org.uk/files/screenies/28000/154a.png', is_download_link=True, has_bad_image=True ) create_screenshot_from_production_link(link.id) self.assertEqual(skyrider.screenshots.count(), 0)
def test_create_from_zipfile_with_bad_image(self, upload_to_s3, Session): skyrider = Production.objects.get(title="Skyrider") link = skyrider.links.create( link_class='BaseUrl', parameter='http://example.com/rubberbadimage.zip', is_download_link=True) upload_to_s3.return_value = 'http://example.com/screens/skyrider.png' create_screenshot_from_production_link(link.id) link.refresh_from_db() self.assertTrue(link.has_bad_image) self.assertEqual(skyrider.screenshots.count(), 0) self.assertEqual(len(upload_to_s3.call_args_list), 0)
def test_create_from_zipfile(self, upload_to_s3, Session): skyrider = Production.objects.get(title="Skyrider") link = skyrider.links.create(link_class='BaseUrl', parameter='http://example.com/rubber.zip', is_download_link=True) upload_to_s3.return_value = 'http://example.com/screens/skyrider.png' create_screenshot_from_production_link(link.id) screenshot = skyrider.screenshots.first() self.assertEqual(len(upload_to_s3.call_args_list), 3) self.assertEqual(screenshot.original_url, 'http://example.com/screens/skyrider.png') self.assertEqual(screenshot.original_width, 320)
def test_create_from_bad_zipfile(self, upload_to_s3, Session): skyrider = Production.objects.get(title="Skyrider") link = skyrider.links.create( link_class='BaseUrl', parameter='http://example.com/badzipfile.zip', is_download_link=True) # create an archive listing so that fetch-from-mirror won't pre-empt the # BadZipFile error by trying to create one ArchiveMember.objects.create( archive_sha1='1714c638436d875760cba50fde5ad1382a042ef5', filename='bad-apple.png', file_size=42) upload_to_s3.return_value = 'http://example.com/screens/skyrider.png' create_screenshot_from_production_link(link.id) link.refresh_from_db() self.assertTrue(link.has_bad_image) self.assertEqual(skyrider.screenshots.count(), 0) self.assertEqual(len(upload_to_s3.call_args_list), 0)
def test_existing_screenshot(self): skyrider = Production.objects.get(title="Skyrider") screenshot = Screenshot.objects.create( production=skyrider, original_url='http://example.com/screens/skyrider.png', original_width=400, original_height=300 ) link = skyrider.links.create( link_class='BaseUrl', parameter='http://kestra.exotica.org.uk/files/screenies/28000/154a.png', is_download_link=True, is_unresolved_for_screenshotting=True ) create_screenshot_from_production_link(link.id) self.assertEqual(skyrider.screenshots.count(), 1) screenshot = skyrider.screenshots.first() self.assertEqual(screenshot.original_url, 'http://example.com/screens/skyrider.png') link.refresh_from_db() self.assertFalse(link.is_unresolved_for_screenshotting)
def test_missing_link(self): create_screenshot_from_production_link(9999)