Пример #1
0
 def test_matches_only_v1_or_v2_responses(self):
     self.assertEqual(
         verify_result(self.result, [self.responses[0]], self.checksums),
         True)
     self.assertEqual(
         verify_result(self.result, [self.responses[1]], self.checksums),
         True)
Пример #2
0
 def test_matches_only_v1_or_v2_responses(self):
     self.assertEquals(
         verify_result(
             self.result, [self.responses[0]], self.checksums
         ),
         True
     )
     self.assertEquals(
         verify_result(
             self.result, [self.responses[1]], self.checksums
         ),
         True
     )
Пример #3
0
 def test_incomplete_checksums(self):
     self.assertEqual(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', '9cc1f32e'],
             'v2': [None, 'dd97d2c3'],
         }), True)
     self.assertEqual(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', None],
             'v2': ['dc77f9ab', 'dd97d2c3'],
         }), True)
     self.assertEqual(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', None],
             'v2': [None, 'dd97d2c3'],
         }), True)
Пример #4
0
 def test_stores_accuraterip_results_on_result(self):
     self.assertEqual(
         verify_result(self.result, self.responses, self.checksums), True)
     self.assertEqual(
         self.result.tracks[0].AR, {
             'v1': {
                 'CRC': '284fc705',
                 'DBCRC': '284fc705',
                 'DBConfidence': 12,
             },
             'v2': {
                 'CRC': 'dc77f9ab',
                 'DBCRC': 'dc77f9ab',
                 'DBConfidence': 7
             },
             'DBMaxConfidence': 12,
             'DBMaxConfidenceCRC': '284fc705',
         })
     self.assertEqual(
         self.result.tracks[1].AR, {
             'v1': {
                 'CRC': '9cc1f32e',
                 'DBCRC': '9cc1f32e',
                 'DBConfidence': 20,
             },
             'v2': {
                 'CRC': 'dd97d2c3',
                 'DBCRC': 'dd97d2c3',
                 'DBConfidence': 7,
             },
             'DBMaxConfidence': 20,
             'DBMaxConfidenceCRC': '9cc1f32e',
         })
Пример #5
0
 def test_stores_accuraterip_results_on_result(self):
     self.assertEquals(
         verify_result(self.result, self.responses, self.checksums),
         True
     )
     self.assertEquals(self.result.tracks[0].AR, {
         'v1': {
             'CRC': '284fc705',
             'DBCRC': '284fc705',
             'DBConfidence': 12,
         },
         'v2': {
             'CRC': 'dc77f9ab',
             'DBCRC': 'dc77f9ab',
             'DBConfidence': 4,
         },
         'DBMaxConfidence': 12,
         'DBMaxConfidenceCRC': '284fc705',
     })
     self.assertEquals(self.result.tracks[1].AR, {
         'v1': {
             'CRC': '9cc1f32e',
             'DBCRC': '9cc1f32e',
             'DBConfidence': 20,
         },
         'v2': {
             'CRC': 'dd97d2c3',
             'DBCRC': 'dd97d2c3',
             'DBConfidence': 4,
         },
         'DBMaxConfidence': 20,
         'DBMaxConfidenceCRC': '9cc1f32e',
     })
Пример #6
0
    def verifyImage(self, runner, table):
        """Verify table against accuraterip and cue_path track lengths.

        Verify our image against the given AccurateRip responses.

        Needs an initialized self.result.
        Will set accurip and friends on each TrackResult.

        Populates self.result.tracks with above TrackResults.

        :param runner:
        :type runner:
        :param table:
        :type table:
        """
        cueImage = image.Image(self.cuePath)
        # assigns track lengths
        verifytask = image.ImageVerifyTask(cueImage)
        runner.run(verifytask)
        if verifytask.exception:
            logger.error(verifytask.exceptionMessage)
            return False

        responses = accurip.get_db_entry(table.accuraterip_path())
        logger.info('%d AccurateRip response(s) found' % len(responses))

        checksums = accurip.calculate_checksums([
            os.path.join(os.path.dirname(self.cuePath), t.indexes[1].path)
            for t in filter(lambda t: t.number != 0, cueImage.cue.table.tracks)
        ])
        if not (checksums and any(checksums['v1']) and any(checksums['v2'])):
            return False
        return accurip.verify_result(self.result, responses, checksums)
Пример #7
0
    def verifyImage(self, runner, table):
        """
        verify table against accuraterip and cue_path track lengths
        Verify our image against the given AccurateRip responses.

        Needs an initialized self.result.
        Will set accurip and friends on each TrackResult.

        Populates self.result.tracks with above TrackResults.
        """
        cueImage = image.Image(self.cuePath)
        # assigns track lengths
        verifytask = image.ImageVerifyTask(cueImage)
        runner.run(verifytask)
        if verifytask.exception:
            logger.error(verifytask.exceptionMessage)
            return False

        responses = accurip.get_db_entry(table.accuraterip_path())
        logger.info('%d AccurateRip response(s) found', len(responses))

        checksums = accurip.calculate_checksums([
            os.path.join(os.path.dirname(self.cuePath), t.indexes[1].path)
            for t in [t for t in cueImage.cue.table.tracks if t.number != 0]
        ])
        if not (checksums and any(checksums['v1']) and any(checksums['v2'])):
            return False
        return accurip.verify_result(self.result, responses, checksums)
Пример #8
0
 def test_passes_with_htoa(self):
     htoa = TrackResult()
     htoa.number = 0
     self.result.tracks.append(htoa)
     self.assertEquals(
         verify_result(self.result, self.responses, self.checksums),
         True
     )
Пример #9
0
 def test_wrong_checksums_returns_false(self):
     self.assertEquals(
         verify_result(self.result, self.responses, {
             'v1': ['deadbeef', '89abcdef'],
             'v2': ['76543210', '01234567']
         }),
         False
     )
Пример #10
0
 def test_incomplete_checksums(self):
     self.assertEquals(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', '9cc1f32e'],
             'v2': [None, 'dd97d2c3'],
         }),
         True
     )
     self.assertEquals(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', None],
             'v2': ['dc77f9ab', 'dd97d2c3'],
         }),
         True
     )
     self.assertEquals(
         verify_result(self.result, self.responses, {
             'v1': ['284fc705', None],
             'v2': [None, 'dd97d2c3'],
         }),
         True
     )
Пример #11
0
 def test_empty_checksums_returns_false(self):
     self.assertEqual(verify_result(self.result, self.responses, {}), False)
Пример #12
0
 def test_empty_result_returns_false(self):
     self.assertEqual(
         verify_result(RipResult(), self.responses, self.checksums), False)
Пример #13
0
 def test_empty_checksums_returns_false(self):
     self.assertEquals(
         verify_result(self.result, self.responses, {}),
         False
     )
Пример #14
0
 def test_empty_responses_returns_false(self):
     self.assertEquals(
         verify_result(self.result, [], self.checksums),
         False
     )
Пример #15
0
 def test_empty_result_returns_false(self):
     self.assertEquals(
         verify_result(RipResult(), self.responses, self.checksums),
         False
     )
Пример #16
0
 def test_empty_responses_returns_false(self):
     self.assertEqual(
         verify_result(self.result, [], self.checksums),
         False
     )