class TOperonImageExtract(TOperonBase): # [--dry-run] [--primary] [-d <destination>] <file> [<files>] def setUp(self): super(TOperonImageExtract, self).setUp() h, self.fcover = mkstemp(".wma") os.close(h) shutil.copy(os.path.join(DATA_DIR, 'test-2.wma'), self.fcover) self.cover = MusicFile(self.fcover) def tearDown(self): os.unlink(self.fcover) super(TOperonImageExtract, self).tearDown() def test_misc(self): self.check_true(["image-extract", "-h"], True, False) self.check_true(["image-extract", self.f], False, False) self.check_true(["image-extract", self.f, self.f2], False, False) self.check_false(["image-extract"], False, True) def test_extract_all(self): target_dir = os.path.dirname(self.fcover) self.check_true(["image-extract", "-d", target_dir, self.fcover], False, False) self.assertEqual(len(self.cover.get_images()), 1) image = self.cover.get_primary_image() name = os.path.splitext(os.path.basename(self.fcover))[0] expected = "%s-00.%s" % (name, image.extensions[0]) expected_path = os.path.join(target_dir, expected) self.assertTrue(os.path.exists(expected_path)) with open(expected_path, "rb") as h: self.assertEqual(h.read(), image.file.read()) def test_extract_primary(self): target_dir = os.path.dirname(self.fcover) self.check_true( ["image-extract", "-d", target_dir, "--primary", self.fcover], False, False) self.assertEqual(len(self.cover.get_images()), 1) image = self.cover.get_primary_image() name = os.path.splitext(os.path.basename(self.fcover))[0] expected = "%s.%s" % (name, image.extensions[0]) expected_path = os.path.join(target_dir, expected) self.assertTrue(os.path.exists(expected_path)) with open(expected_path, "rb") as h: self.assertEqual(h.read(), image.file.read())
class TAudioFileAllBase(object): FILE = None def setUp(self): fd, filename = mkstemp(os.path.splitext(self.FILE)[-1]) os.close(fd) shutil.copy(self.FILE, filename) self.song = MusicFile(filename) self.filename = filename def tearDown(self): try: os.remove(self.filename) except OSError: pass def test_clear_images_noent(self): os.remove(self.filename) self.assertRaises(AudioFileError, self.song.clear_images) def test_set_image_noent(self): os.remove(self.filename) image = EmbeddedImage(None, "image/png") self.assertRaises(AudioFileError, self.song.set_image, image) def test_get_primary_image_noent(self): os.remove(self.filename) self.assertTrue(self.song.get_primary_image() is None) def test_get_images_noent(self): os.remove(self.filename) self.assertEqual(self.song.get_images(), []) def test_write_noent(self): os.remove(self.filename) try: self.song.write() except AudioFileError: pass def test_load_noent(self): os.remove(self.filename) self.assertRaises(AudioFileError, type(self.song), self.filename) @classmethod def create_tests(cls): for i, file_ in enumerate(FILES): new_type = type(cls.__name__ + str(i), (cls, TestCase), {"FILE": file_}) assert new_type.__name__ not in globals() globals()[new_type.__name__] = new_type
class TAudioFileAllBase(object): FILE = None def setUp(self): self.filename = get_temp_copy(self.FILE) self.song = MusicFile(self.filename) def tearDown(self): try: os.remove(self.filename) except OSError: pass def test_clear_images_noent(self): os.remove(self.filename) self.assertRaises(AudioFileError, self.song.clear_images) def test_set_image_noent(self): os.remove(self.filename) image = EmbeddedImage(None, "image/png") self.assertRaises(AudioFileError, self.song.set_image, image) def test_get_primary_image_noent(self): os.remove(self.filename) self.assertTrue(self.song.get_primary_image() is None) def test_get_images_noent(self): os.remove(self.filename) self.assertEqual(self.song.get_images(), []) def test_write_noent(self): os.remove(self.filename) try: self.song.write() except AudioFileError: pass def test_load_noent(self): os.remove(self.filename) self.assertRaises(AudioFileError, type(self.song), self.filename) @classmethod def create_tests(cls): for i, file_ in enumerate(FILES): new_type = type(cls.__name__ + str(i), (cls, TestCase), {"FILE": file_}) assert new_type.__name__ not in globals() globals()[new_type.__name__] = new_type