def test_post_create_resource_on_activity_as_author(self): form_data = { 'name': "A sample name", 'description': "A short description", 'type': ResourceType.FILE.name, 'language': 'fr', 'licence': Licences.CC_BY.name, 'access': ResourceAccess.PUBLIC.name, 'reuse': ResourceReuse.ONLY_AUTHOR.name, 'duration': Duration.NOT_SPECIFIED.name, 'tags': "A", "media": get_temporary_file() } response = ClientFactory.get_client_for_user("ws").post( reverse("learning:activity/detail/resource/add", kwargs={'slug': self.ws_activity.slug}), form_data) self.assertRedirects(response, status_code=302, target_status_code=200, expected_url=reverse( "learning:activity/detail", kwargs={'slug': self.ws_activity.slug})) resource = Resource.objects.get(slug="a-sample-name") self.assertIsNotNone(resource) self.assertEqual(1, resource.activities.count()) self.assertIn(resource, self.ws_activity.resources.all()) self.assertEqual(resource.author, self.ws)
def test_delete_resource_also_delete_related_media(self): self.resource1.media.save("sample_update.txt", get_temporary_file(), save=True) self.resource1.save() self.assertIsNotNone(self.resource1.media.name) self.assertIn("sample_update", self.resource1.media.name) self.assertTrue(os.path.isfile(self.resource1.media.path)) self.resource1.delete() self.assertFalse(os.path.isfile(self.resource1.media.path))
def test_clean_media_size_equals_settings(self): self.resource1.media.save("sample_update.txt", get_temporary_file(file_size=2**15), save=True) self.resource1.save() self.assertIsNotNone(self.resource1.media.name) self.assertIn("sample_update", self.resource1.media.name) media_path = self.resource1.media.path self.assertTrue(os.path.isfile(media_path)) self.resource1.clean()
def test_clean_attachment_size_equals_default(self): self.resource1.attachment.save( "sample_update.txt", get_temporary_file(file_size=2 ** 20), save=True ) self.resource1.save() self.assertIsNotNone(self.resource1.attachment.name) self.assertIn("sample_update", self.resource1.attachment.name) attachment_path = self.resource1.attachment.path self.assertTrue(os.path.isfile(attachment_path)) self.resource1.clean()
def test_clean_media_larger_than_in_settings(self): self.resource1.media.save("sample_update.txt", get_temporary_file(file_size=2**16), save=True) self.resource1.save() self.assertIsNotNone(self.resource1.media.name) self.assertIn("sample_update", self.resource1.media.name) media_path = self.resource1.media.path self.assertTrue(os.path.isfile(media_path)) with self.assertRaises(ValidationError): self.resource1.clean()
def test_clean_attachment_larger_than_default(self): self.resource1.attachment.save( "sample_update.txt", get_temporary_file(file_size=2 ** 21), save=True ) self.resource1.save() self.assertIsNotNone(self.resource1.attachment.name) self.assertIn("sample_update", self.resource1.attachment.name) attachment_path = self.resource1.attachment.path self.assertTrue(os.path.isfile(attachment_path)) with self.assertRaises(ValidationError): self.resource1.clean()
def test_post_create_resource_on_activity_invalid_form(self): form_data = { 'description': "A short description", 'type': ResourceType.FILE.name, 'language': 'fr', 'licence': Licences.CC_BY.name, 'access': ResourceAccess.PUBLIC.name, 'reuse': ResourceReuse.NO_RESTRICTION.name, 'duration': Duration.NOT_SPECIFIED.name, 'tags': "A", "media": get_temporary_file(name="sample.txt") } response = ClientFactory.get_client_for_user("ws").post( reverse("learning:activity/detail/resource/add", kwargs={'slug': self.ws_activity.slug}), form_data ) self.assertEqual(200, response.status_code) self.assertFalse(Resource.objects.filter(name="A sample name").exists()) self.assertEqual(0, self.ws_activity.resources.count()) self.assertEqual(1, len(response.context.get('form').errors.as_data())) self.assertEqual(0, self.ws_activity.resources.count())