def test_get_upload_status(self): video = Video(filename='bears.mov', name='STATUS TEST The Bears', short_description='Opening roll for an exciting soccer match.') video.tags.append('unittest') video.save() status = video.get_upload_status() self.assertEquals(status, enums.UploadStatusEnum.PROCESSING)
def test_delete(self): video = Video(filename='bears.mov', name='DELETE TEST The Bears', short_description='Opening roll for an exciting soccer match.') video.tags.append('unittest') video.save() video.delete() self.assertEquals(video.id, None)
def test_save_update(self): video = Video(id=TEST_VIDEO_ID) video.tags.append('tag-%s' % self.test_uuid) video.tags.append('unittest') lmd = video.last_modified_date video.save() self.assertEquals(video.reference_id, TEST_VIDEO_REF_ID) self.assertNotEquals(video.last_modified_date, lmd)
def test_set_image(self): video = Video(id=TEST_VIDEO_ID) self.assertEquals(video.image, None) image = Image(reference_id="img-%s" % self.test_uuid, display_name="My Test Image", type=enums.ImageTypeEnum.VIDEO_STILL) video.set_image(image, filename='IMG_0050.JPG') self.assertEquals(video.image != None, True) self.assertEquals(video.image.id > 0, True)
def test_invalid_video_full_length(self): try: video = Video(name="Name is too long", short_description="ok desc", filename="somefile.mov") video.video_full_length = 10 except PyBrightcoveError, e: self.assertEqual(e.message, "Video.video_full_length must be of type Rendition")
def test_invalid_long_description(self): try: video = Video(name="Name is too long", short_description="ok desc", filename="somefile.mov") video.long_description = "Very long"*5000 except PyBrightcoveError, e: self.assertEqual(e.message, "Video.long_description must be 5000 characters or less.")
def test_invalid_reference_id(self): try: video = Video(name="Name is too long", short_description="ok desc", filename="somefile.mov") video.reference_id = "long ref id"*100 except PyBrightcoveError, e: self.assertEqual(e.message, "Video.reference_id must be 150 characters or less.")
def test_batch_provision_video(self, OpenMockClass, GetSizeMockClass, Md5MockClass, FTPMockClass): o = OpenMockClass() o.read.return_value = None m = Md5MockClass() m.hexdigest.return_value = 'a78fa9f8asd' GetSizeMockClass.return_value = 10000 f = FTPMockClass() ftp = FTPConnection(host='host', user='******', password='******', publisher_id='111111111', preparer='Patrick', report_success=True) v = Video(name="Some title", reference_id='a532kallk3252a', short_description="A short description.", connection=ftp) v.long_description = "An even longer description" v.tags.extend(["blah", "nah", "tag"]) v.add_asset('1500.flv', enums.AssetTypeEnum.VIDEO_FULL, 'High quality rendition', encoding_rate=1500000, frame_width=640, frame_height=360) v.add_asset('700.flv', enums.AssetTypeEnum.VIDEO_FULL, 'Medium quality rendition', encoding_rate=700000, frame_width=640, frame_height=360) v.add_asset('poster.png', enums.AssetTypeEnum.VIDEO_STILL, 'Poster frame', frame_width=640, frame_height=360) v.save() self.assertEqual('login', f.method_calls[0][0]) self.assertEqual('set_pasv', f.method_calls[1][0]) self.assertEqual('storbinary', f.method_calls[2][0]) self.assertEqual('STOR 1500.flv', f.method_calls[2][1][0]) self.assertEqual('login', f.method_calls[3][0]) self.assertEqual('set_pasv', f.method_calls[4][0]) self.assertEqual('storbinary', f.method_calls[5][0]) self.assertEqual('STOR 700.flv', f.method_calls[5][1][0]) self.assertEqual('login', f.method_calls[6][0]) self.assertEqual('set_pasv', f.method_calls[7][0]) self.assertEqual('storbinary', f.method_calls[8][0]) self.assertEqual('STOR poster.png', f.method_calls[8][1][0]) self.assertEqual('write', o.method_calls[6][0]) valid_xml = minidom.parse( open('test_ftp_video_batch_provision_manifest.xml', 'rb')) test_xml = minidom.parseString(o.method_calls[6][1][0]) self.assertEqual( valid_xml.toxml().replace('\t', '').replace('\n', ''), test_xml.toxml().replace('\t', '').replace('\n', ''))
def test_invalid_item_state(self): try: video = Video(name="Name is too long", short_description="ok desc", filename="somefile.mov") video.item_state = "Invalid" except PyBrightcoveError, e: err = "Video.item_state must be either ItemStateEnum.ACTIVE or " err += "ItemStateEnum.INACTIVE" self.assertEqual(e.message, err)
def test_invalid_economics(self): try: video = Video(name="Name is too long", short_description="ok desc", filename="somefile.mov") video.economics = "The Keynesian view is Wrong" except PyBrightcoveError, e: err = "Video.economics must be either EconomicsEnum.FREE or" err += " EconomicsEnum.AD_SUPPORTED" self.assertEqual(e.message, err)
def test_find_modified_filtered(self): yesterday = datetime.now() - timedelta(days=1) filters = [FilterChoicesEnum.PLAYABLE, FilterChoicesEnum.DELETED] videos = Video.find_modified(since=yesterday, filter_list=filters) for video in videos: self.assertEquals(type(video), Video) self.assertEquals(video.id > 0, True)
def test_delete(self): playlist = Playlist(name="DELETE - Unit Test Videos", type=PlaylistTypeEnum.EXPLICIT) for video in Video.find_by_tags(and_tags=["unittest"]): playlist.videos.append(video) playlist.save() playlist.delete() self.assertEquals(playlist.id, None)
def test_save_new(self): playlist = Playlist(name="Unit Test Videos", type=PlaylistTypeEnum.EXPLICIT) for video in Video.find_by_tags(and_tags=['unittest', ]): playlist.videos.append(video) playlist.save() self.assertEquals(playlist.id > 0, True)
def test_find_all(self): videos = Video.find_all() for video in videos: self.assertEquals(type(video), Video) self.assertEquals(video.id not in (0, None), True) if not video: self.fail("Did not find any videos.")
def test_find_by_tags(self): videos = Video.find_by_tags(and_tags=['unittest', ]) for video in videos: self.assertEquals(type(video), Video) self.assertEquals('unittest' in video.tags, True)
def test_find_by_text(self): videos = Video.find_by_text('bear') for video in videos: self.assertEquals(type(video), Video)
def test_find_by_campaign(self): videos = Video.find_by_campaign(988756758) for video in videos: self.assertEquals(type(video), Video)
def test_save_new(self): video = Video(filename='bears.mov', name='The Bears', short_description='Opening roll for an exciting soccer match.') video.tags.append('unittest') video.save() self.assertEquals(video.id not in (0, '', None), True)
def test_find_by_user(self): videos = Video.find_by_user(12312431) for video in videos: self.assertEquals(type(video), Video)
def test_find_by_ids(self): videos = Video.find_by_ids(TEST_VIDEO_IDS) for video in videos: self.assertEquals(video.id in TEST_VIDEO_IDS, True)
def test_find_modified_unfiltered(self): yesterday = datetime.now() - timedelta(days=1) videos = Video.find_modified(since=yesterday) for video in videos: self.assertEquals(type(video), Video) self.assertEquals(video.id > 0, True)
def test_find_related(self): video = Video(id=TEST_VIDEO_IDS[1]) for related_video in video.find_related(): self.assertEquals(type(related_video), Video) self.assertEquals(related_video.id > 0, True)