|  | @@ -13,6 +13,7 @@ import copy
 | 
	
		
			
				|  |  |  from test.helper import FakeYDL, assertRegexpMatches
 | 
	
		
			
				|  |  |  from youtube_dl import YoutubeDL
 | 
	
		
			
				|  |  |  from youtube_dl.extractor import YoutubeIE
 | 
	
		
			
				|  |  | +from youtube_dl.postprocessor.common import PostProcessor
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class YDL(FakeYDL):
 | 
	
	
		
			
				|  | @@ -370,5 +371,36 @@ class TestFormatSelection(unittest.TestCase):
 | 
	
		
			
				|  |  |              'vbr': 10,
 | 
	
		
			
				|  |  |          }), '^\s*10k$')
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    def test_postprocessors(self):
 | 
	
		
			
				|  |  | +        filename = 'post-processor-testfile.mp4'
 | 
	
		
			
				|  |  | +        audiofile = filename + '.mp3'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        class SimplePP(PostProcessor):
 | 
	
		
			
				|  |  | +            def run(self, info):
 | 
	
		
			
				|  |  | +                print(audiofile)
 | 
	
		
			
				|  |  | +                with open(audiofile, 'wt') as f:
 | 
	
		
			
				|  |  | +                    f.write('EXAMPLE')
 | 
	
		
			
				|  |  | +                info['filepath']
 | 
	
		
			
				|  |  | +                return False, info
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        def run_pp(params):
 | 
	
		
			
				|  |  | +            with open(filename, 'wt') as f:
 | 
	
		
			
				|  |  | +                f.write('EXAMPLE')
 | 
	
		
			
				|  |  | +            ydl = YoutubeDL(params)
 | 
	
		
			
				|  |  | +            ydl.add_post_processor(SimplePP())
 | 
	
		
			
				|  |  | +            ydl.post_process(filename, {'filepath': filename})
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        run_pp({'keepvideo': True})
 | 
	
		
			
				|  |  | +        self.assertTrue(os.path.exists(filename), '%s doesn\'t exist' % filename)
 | 
	
		
			
				|  |  | +        self.assertTrue(os.path.exists(audiofile), '%s doesn\'t exist' % audiofile)
 | 
	
		
			
				|  |  | +        os.unlink(filename)
 | 
	
		
			
				|  |  | +        os.unlink(audiofile)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        run_pp({'keepvideo': False})
 | 
	
		
			
				|  |  | +        self.assertFalse(os.path.exists(filename), '%s exists' % filename)
 | 
	
		
			
				|  |  | +        self.assertTrue(os.path.exists(audiofile), '%s doesn\'t exist' % audiofile)
 | 
	
		
			
				|  |  | +        os.unlink(audiofile)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  if __name__ == '__main__':
 | 
	
		
			
				|  |  |      unittest.main()
 |