def test_get_next_available_revision_label_with_deleted_revision(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) to_delete = Generators.imageRevision(image=image, label='C') to_delete.delete() self.assertEqual( ImageService(image).get_next_available_revision_label(), 'D')
def test_get_revisions_with_description(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) Generators.imageRevision(image=image, label='C', description='Foo') self.assertEquals( ImageService(image).get_revisions_with_description().count(), 1)
def test_get_corrupted_images_when_non_final_revision_is_corrupted(self): user = Generators.user() image = Generators.image(user=user, is_final=False) Generators.imageRevision(image=image, is_final=False, corrupted=True) Generators.imageRevision(image=image, is_final=True, label='C') self.assertFalse(image in UserService(user).get_corrupted_images())
def test_get_revisions_includes_corrupted(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) Generators.imageRevision(image=image, corrupted=True, label='C') self.assertEquals( ImageService(image).get_revisions(include_corrupted=True).count(), 2)
def test_get_revisions_with_title_or_description_only_title(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) Generators.imageRevision(image=image, label='C', title='Foo') self.assertEqual( ImageService( image).get_revisions_with_title_or_description().count(), 1)
def test_delete_original_when_one_revision_and_revision_is_final(self): image = Generators.image(image_file='original.jpg', is_final=False) Generators.imageRevision(image=image, image_file='revision.jpg', is_final=True) ImageService(image).delete_original() self.assertEqual('revision.jpg', image.image_file) self.assertTrue(image.is_final)
def test_get_corrupted_images_when_corrupted_revision_is_deleted_with_multiple(self): user = Generators.user() image = Generators.image(user=user) Generators.imageRevision(image=image, is_final=False) revision = Generators.imageRevision(image=image, is_final=False, corrupted=True, label='C') revision.delete() self.assertFalse(image in UserService(user).get_corrupted_images())
def test_get_final_revision_label(self): image = Generators.image(is_wip=True) revision = Generators.imageRevision(image=image, is_final=True) self.assertEquals( ImageService(image).get_final_revision_label(), revision.label) another = Generators.imageRevision(image=image, is_final=True, label='C') self.assertEquals( ImageService(image).get_final_revision_label(), another.label)
def test_delete_original_when_two_revisions_and_C_is_final(self): image = Generators.image(image_file='original.jpg', is_final=False) Generators.imageRevision(image=image, image_file='revision_b.jpg', is_final=False, label='B') Generators.imageRevision(image=image, image_file='revision_c.jpg', is_final=True, label='C') ImageService(image).delete_original() self.assertEqual('revision_b.jpg', image.image_file) self.assertFalse(image.is_final) self.assertEqual(1, ImageService(image).get_revisions().count()) self.assertEqual('C', ImageService(image).get_revisions().first().label)
def test_get_default_cropping_revision(self, get_revision): image = Generators.image(is_wip=True) revision = Generators.imageRevision(image=image) revision.w = revision.h = 1000 get_revision.return_value = revision self.assertEquals( ImageService(image).get_default_cropping( revision_label=revision.label), '0,0,1000,1000')
def test_imagerevision_post_save(self, add_story): revision = Generators.imageRevision() add_story.reset_mock() imagerevision_post_save(None, revision, True) self.assertTrue(add_story.called)
def test_imagerevision_post_save_not_created_no_notifications(self, add_story, push_notification): revision = Generators.imageRevision() push_notification.reset_mock() add_story.reset_mock() imagerevision_post_save(None, revision, False) self.assertFalse(push_notification.called) self.assertFalse(add_story.called)
def test_imagerevision_post_save(self, add_story, push_notification): revision = Generators.imageRevision() push_notification.reset_mock() add_story.reset_mock() imagerevision_post_save(None, revision, True) self.assertTrue(push_notification.called) self.assertTrue(add_story.called)
def test_delete_original_preserves_title_and_description_when_deleted_revision_has_none(self): image = Generators.image(image_file='original.jpg', title='Foo') revision = Generators.imageRevision(image=image, image_file='revision.jpg') ImageService(image).delete_original() image = Image.objects.get(pk=image.pk) self.assertEqual('revision.jpg', image.image_file) self.assertEqual('Foo', image.title) self.assertEqual(None, image.description) self.assertEqual(1, Image.objects.all().count())
def test_imagerevision_post_save_wip_no_notifications(self, add_story, push_notification): revision = Generators.imageRevision() revision.image.is_wip = True push_notification.reset_mock() add_story.reset_mock() imagerevision_post_save(None, revision, True) self.assertFalse(push_notification.called) self.assertFalse(add_story.called)
def test_imagerevision_post_save_uploading(self, add_story, push_notification): revision = Generators.imageRevision() revision.uploader_in_progress = True push_notification.reset_mock() add_story.reset_mock() imagerevision_post_save(None, revision, True) self.assertFalse(push_notification.called) self.assertFalse(add_story.called)
def test_delete_original_when_one_revision_and_original_is_final(self): image = Generators.image(image_file='original.jpg') PlateSolvingGenerators.solution(image, image_file='original_solution.jpg') revision = Generators.imageRevision(image=image, image_file='revision.jpg') revision_solution = PlateSolvingGenerators.solution(revision, image_file='revision_solution.jpg') ImageService(image).delete_original() self.assertEqual('revision.jpg', image.image_file) self.assertTrue(image.is_final) self.assertEqual('revision_solution.jpg', revision_solution.image_file) self.assertEqual(image.pk, revision_solution.object_id) self.assertEqual(1, Image.objects.all().count()) self.assertEqual(1, Solution.objects.all().count())
def test_get_hemisphere_positive_declination_revision(self): image = Generators.image() image_solution = PlateSolvingGenerators.solution(image) revision = Generators.imageRevision(image=image) revision_solution = PlateSolvingGenerators.solution(revision) image_solution.dec = 1 image_solution.save() revision_solution.dec = -1 revision_solution.save() self.assertEqual(Image.HEMISPHERE_TYPE_NORTHERN, ImageService(image).get_hemisphere()) self.assertEqual(Image.HEMISPHERE_TYPE_SOUTHERN, ImageService(image).get_hemisphere(revision.label))
def test_get_or_create_advanced_settings_revision_inherits_everything( self): image = Generators.image() solution = PlateSolvingGenerators.solution(image) advanced_settings, created = SolutionService.get_or_create_advanced_settings( image) advanced_settings.sample_raw_frame_file = File( open('astrobin/fixtures/test.fits'), "test.fits") advanced_settings.scaled_font_size = "L" solution.advanced_settings = advanced_settings solution.content_object = image solution.save() advanced_settings.save() advanced_settings, created = SolutionService.get_or_create_advanced_settings( Generators.imageRevision(image=image)) self.assertNotEquals(advanced_settings.sample_raw_frame_file.name, "") self.assertEquals(advanced_settings.scaled_font_size, "L") self.assertFalse(created)
def test_get_final_revision(self): image = Generators.image(is_wip=True) final = Generators.imageRevision(image=image, is_final=True) Generators.imageRevision(image=image, is_final=False, label='C') self.assertEqual(ImageService(image).get_final_revision(), final)
def test_get_revision(self): image = Generators.image(is_wip=True) revision = Generators.imageRevision(image=image) self.assertEqual(ImageService(image).get_revision(revision.label), revision)
def test_get_next_available_revision_label_after_z(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image, label='Z') self.assertEqual(ImageService(image).get_next_available_revision_label(), 'BA')
def test_get_next_available_revision_label(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) self.assertEquals( ImageService(image).get_next_available_revision_label(), 'C')
def test_get_next_available_revision_label_with_corrupted_revision(self): image = Generators.image(is_wip=True) Generators.imageRevision(image=image) Generators.imageRevision(image=image, corrupted=True, label='C') self.assertEquals( ImageService(image).get_next_available_revision_label(), 'D')