Esempio n. 1
0
    def test_ufid_tag_checks(self):
        ufid_tag = mutagen.id3.UFID(owner="bad", data="bad")
        self.au_file.mutagen_id3.add(ufid_tag)
        self.assertTagError(checker.ERROR_TAG_MISSING_REQUIRED + "UFID")

        ufid_tag.owner = constants.UFID_OWNER_IDENTIFIER
        # Need to re-add since changing the owner also changes the
        # hash key.  A very annoying corner case, more proof that
        # mutagen's "just make it look like a dict" strategy is
        # ultimately misguided.
        self.au_file.mutagen_id3.add(ufid_tag)
        self.assertTagError(checker.ERROR_UFID_BAD_MALFORMED)

        bad_ufid_data = ufid.ufid(TEST_VOL + 1, TEST_TS, TEST_FP)
        ufid_tag.data = bad_ufid_data
        self.assertTagError(checker.ERROR_UFID_BAD_VOLUME)

        bad_ufid_data = ufid.ufid(TEST_VOL, TEST_TS + 1, TEST_FP)
        ufid_tag.data = bad_ufid_data
        self.assertTagError(checker.ERROR_UFID_BAD_TIMESTAMP)

        bad_ufid_data = ufid.ufid(TEST_VOL, TEST_TS, "2" * 40)
        ufid_tag.data = bad_ufid_data
        self.assertTagError(checker.ERROR_UFID_BAD_FINGERPRINT)

        ufid_tag.data = self.au_file.ufid()
        errors = checker.find_tags_errors(self.au_file)
        self.assertNoTagError(checker.ERROR_TAG_MISSING_REQUIRED + "UFID")
        self.assertNoTagError(checker.ERROR_UFID_BAD_OWNER)
        self.assertNoTagError(checker.ERROR_UFID_BAD_MALFORMED)
        self.assertNoTagError(checker.ERROR_UFID_BAD_VOLUME)
        self.assertNoTagError(checker.ERROR_UFID_BAD_TIMESTAMP)
        self.assertNoTagError(checker.ERROR_UFID_BAD_FINGERPRINT)
Esempio n. 2
0
 def test_basic(self):
     test_vol = 11
     test_ts_human = "20090102-030405"
     test_ts = timestamp.parse_human_readable(test_ts_human)
     test_fp = "1234" * 10
     # The UFID prefix should contain the volume and timestamp info.
     self.assertEqual(
         "vol0b/%s/" % test_ts_human,  # 0b = 11
         ufid.ufid_prefix(test_vol, test_ts))
     # The UFID should equal the UFID prefix + the fingerprint.
     test_ufid = ufid.ufid(test_vol, test_ts, test_fp)
     self.assertEqual(
         ufid.ufid_prefix(test_vol, test_ts) + test_fp, test_ufid)
     # We should be able to make a tag too.
     test_tag = ufid.ufid_tag(test_vol, test_ts, test_fp)
     self.assertEqual("UFID", test_tag.FrameID)
     self.assertEqual(constants.UFID_OWNER_IDENTIFIER, test_tag.owner)
     self.assertEqual(test_ufid, test_tag.data)
     # Make sure we can parse information back out of the test UFID.
     vol, ts, fp = ufid.parse(test_ufid)
     self.assertEqual(test_vol, vol)
     self.assertEqual(test_ts, ts)
     self.assertEqual(test_fp, fp)
     # Raise ValueError if we try to parse a bad UFID.
     self.assertRaises(ValueError, ufid.parse, "bad")
     self.assertRaises(ValueError, ufid.parse,
                       "vol01/20091399-666666/" + "1" * 40)
     self.assertRaises(ValueError, ufid.parse,
                       "vol01/20991001-123456" + "1" * 40)
 def test_basic(self):
     test_vol = 11
     test_ts_human = "20090102-030405"
     test_ts = timestamp.parse_human_readable(test_ts_human)
     test_fp = "1234" * 10
     # The UFID prefix should contain the volume and timestamp info.
     self.assertEqual("vol0b/%s/" % test_ts_human, ufid.ufid_prefix(test_vol, test_ts))  # 0b = 11
     # The UFID should equal the UFID prefix + the fingerprint.
     test_ufid = ufid.ufid(test_vol, test_ts, test_fp)
     self.assertEqual(ufid.ufid_prefix(test_vol, test_ts) + test_fp, test_ufid)
     # We should be able to make a tag too.
     test_tag = ufid.ufid_tag(test_vol, test_ts, test_fp)
     self.assertEqual("UFID", test_tag.FrameID)
     self.assertEqual(constants.UFID_OWNER_IDENTIFIER, test_tag.owner)
     self.assertEqual(test_ufid, test_tag.data)
     # Make sure we can parse information back out of the test UFID.
     vol, ts, fp = ufid.parse(test_ufid)
     self.assertEqual(test_vol, vol)
     self.assertEqual(test_ts, ts)
     self.assertEqual(test_fp, fp)
     # Raise ValueError if we try to parse a bad UFID.
     self.assertRaises(ValueError, ufid.parse, "bad")
     self.assertRaises(ValueError, ufid.parse, "vol01/20091399-666666/" + "1" * 40)
     self.assertRaises(ValueError, ufid.parse, "vol01/20991001-123456" + "1" * 40)
Esempio n. 4
0
    def ufid(self):
        """Returns this file's unique identifier.

        This call will fail if has_ufid() returns False.
        """
        return ufid.ufid(self.volume, self.import_timestamp, self.fingerprint)
Esempio n. 5
0
    talb = mutagen.id3.TALB(text=["TALB %d" % n])
    au_file.mutagen_id3.add(talb)
    trck = mutagen.id3.TRCK(text=["%d/7" % ((n % 7) + 1)])
    au_file.mutagen_id3.add(trck)
    talb = mutagen.id3.TPUB(text=["  Bad    whitespace    "])
    au_file.mutagen_id3.add(talb)
    # Finally return the thing.
    return au_file


get_test_audio_file.__test__ = False  # not a test itself

TEST_VOL = 65
TEST_TS = 1230430574
TEST_FP = "7" * 40
TEST_UFID = ufid.ufid(TEST_VOL, TEST_TS, TEST_FP)
TEST_UFID_PREFIX = ufid.ufid_prefix(TEST_VOL, TEST_TS)


class AudioFileTest(unittest.TestCase):
    def test_basic(self):
        # Assemble a basic test object.
        au_file = audio_file.AudioFile()
        au_file.volume = TEST_VOL
        au_file.import_timestamp = TEST_TS
        au_file.fingerprint = TEST_FP

        # Check the generated UFID.
        self.assertEqual(TEST_UFID, au_file.ufid())

        # Check the generated UFID tag.
Esempio n. 6
0
    def ufid(self):
        """Returns this file's unique identifier.

        This call will fail if has_ufid() returns False.
        """
        return ufid.ufid(self.volume, self.import_timestamp, self.fingerprint)
    talb = mutagen.id3.TALB(text=["TALB %d" % n])
    au_file.mutagen_id3.add(talb)
    trck = mutagen.id3.TRCK(text=["%d/7" % ((n % 7) + 1)])
    au_file.mutagen_id3.add(trck)
    talb = mutagen.id3.TPUB(text=["  Bad    whitespace    "])
    au_file.mutagen_id3.add(talb)
    # Finally return the thing.
    return au_file

get_test_audio_file.__test__ = False  # not a test itself


TEST_VOL = 65
TEST_TS = 1230430574
TEST_FP = "7" * 40
TEST_UFID = ufid.ufid(TEST_VOL, TEST_TS, TEST_FP)
TEST_UFID_PREFIX = ufid.ufid_prefix(TEST_VOL, TEST_TS)


class AudioFileTest(unittest.TestCase):

    def test_basic(self):
        # Assemble a basic test object.
        au_file = audio_file.AudioFile()
        au_file.volume = TEST_VOL
        au_file.import_timestamp = TEST_TS
        au_file.fingerprint = TEST_FP

        # Check the generated UFID.
        self.assertEqual(TEST_UFID, au_file.ufid())