def test_calc_sums(self): expected = dict(calc_sums=dict( status='ok', saveset=self.saveset, size=780, processed=780)) shutil.copytree(self.testdata_path, os.path.join(self.volume_path, self.testhost)) obj = Actions(self.cli, db_engine=self.engine, db_session=self.session) obj.inject(self.testhost, self.volume, self.volume_path, self.saveset_id) ret = obj.calc_sums(self.saveset_id) self.assertEqual(ret, expected) count = 0 with open( os.path.join(self.volume_path, self.testhost, Constants.OPTS_DEFAULTS['manifest']), 'r') as mfile: headers = mfile.readline() self.assertEqual(headers, 'file_id,type,file_size,has_checksum\n') for line in mfile: file_id, file_type, file_size, has_sum = line.split(',') file = self.session.query(File).filter_by(id=file_id).one() if file_type != 'f': continue print('filename=%s, file_id=%s' % (file.filename, file_id)) self.assertEqual(file.shasum, binascii.unhexlify(file.filename[9:41])) count += 1 self.assertEqual(count, 15)
def test_verify(self): expected = dict(verify=dict(status='ok', results=[ dict(saveset=self.saveset, count=15, errors=0, missing=0, skipped=0) ])) shutil.copytree(self.testdata_path, os.path.join(self.volume_path, self.testhost)) obj = Actions(self.cli, db_engine=self.engine, db_session=self.session) obj.inject(self.testhost, self.volume, self.volume_path, self.saveset_id) ret = obj.calc_sums(self.saveset_id) ret = obj.verify([self.saveset]) self.assertEqual(ret, expected)