def test_update_someone_elses_sequence_asset(self): someone_else = UserFactory() sa = SequenceAssetFactory(author=someone_else) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'media_elements': [], 'text_elements': [ { 'text': 'My text', 'start_time': 0, 'end_time': 10, } ], }, format='json') self.assertEqual(r.status_code, 403) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, someone_else) self.assertEqual(sa.spine, None) self.assertEqual(SequenceAsset.objects.count(), 1) self.assertEqual(ProjectSequenceAsset.objects.count(), 1) self.assertEqual(SequenceTextElement.objects.count(), 0)
def test_update_someone_elses_sequence_asset(self): someone_else = UserFactory() sa = SequenceAssetFactory(author=someone_else) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'spine_volume': 100, 'media_elements': [], 'text_elements': [ { 'text': 'My text', 'start_time': Decimal('0'), 'end_time': Decimal('10'), } ], }, format='json') self.assertEqual(r.status_code, 403) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, someone_else) self.assertEqual(sa.spine, None) self.assertEqual(sa.spine_volume, 80) self.assertEqual(SequenceAsset.objects.count(), 1) self.assertEqual(ProjectSequenceAsset.objects.count(), 1) self.assertEqual(SequenceTextElement.objects.count(), 0)
def test_update(self): sa = SequenceAssetFactory(author=self.u) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'media_elements': [], 'text_elements': [], }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(SequenceAsset.objects.count(), 1) self.assertEqual(ProjectSequenceAsset.objects.count(), 1)
def test_update(self): sa = SequenceAssetFactory(author=self.u) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'media_elements': [], 'text_elements': [], }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(SequenceAsset.objects.count(), 1) self.assertEqual(ProjectSequenceAsset.objects.count(), 1)
def test_update_with_track_elements(self): sa = SequenceAssetFactory(author=self.u) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() element_note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'media_elements': [ { 'media': element_note.pk, 'start_time': 0, 'end_time': 10, } ], 'text_elements': [ { 'text': 'My text', 'start_time': 0, 'end_time': 10, } ] }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(SequenceMediaElement.objects.count(), 1) self.assertEqual(SequenceTextElement.objects.count(), 1) r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'spine': note.pk, 'media_elements': [ { 'media': element_note.pk, 'start_time': 0, 'end_time': 10, } ], 'text_elements': [ { 'text': 'My text', 'start_time': 0, 'end_time': 10, } ] }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(SequenceMediaElement.objects.count(), 1) self.assertEqual(SequenceTextElement.objects.count(), 1)
def test_update_with_track_elements(self): sa = SequenceAssetFactory(author=self.u) psa = ProjectSequenceAssetFactory(sequence_asset=sa) note = SherdNoteFactory() element_note = SherdNoteFactory() r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'project': psa.project.pk, 'spine': note.pk, 'spine_volume': 0, 'media_elements': [ { 'media': element_note.pk, 'start_time': Decimal('0'), 'end_time': Decimal('10'), 'volume': 0, } ], 'text_elements': [ { 'text': 'My text', 'start_time': Decimal('0'), 'end_time': Decimal('10'), } ] }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(sa.spine_volume, 0) self.assertEqual(SequenceMediaElement.objects.count(), 1) element = SequenceMediaElement.objects.first() self.assertEqual(element.volume, 0) self.assertEqual(SequenceTextElement.objects.count(), 1) r = self.client.put( reverse('sequenceasset-detail', args=(sa.pk,)), { 'course': sa.course.pk, 'spine': note.pk, 'spine_volume': 65, 'media_elements': [ { 'media': element_note.pk, 'start_time': Decimal('0'), 'end_time': Decimal('10'), 'volume': 30, } ], 'text_elements': [ { 'text': 'My text', 'start_time': Decimal('0'), 'end_time': Decimal('10'), }, { 'text': 'My text', 'start_time': Decimal('10'), 'end_time': Decimal('12'), } ] }, format='json') self.assertEqual(r.status_code, 200) sa.refresh_from_db() self.assertEqual(sa.course, sa.course) self.assertEqual(sa.author, self.u) self.assertEqual(sa.spine, note) self.assertEqual(sa.spine_volume, 65) self.assertEqual(SequenceMediaElement.objects.count(), 1) element = SequenceMediaElement.objects.first() self.assertEqual(element.volume, 30) self.assertEqual(SequenceTextElement.objects.count(), 2)