blob: 8b2ff63482cdaf7f6e8a365a89e845513d713326 [file] [log] [blame]
import unittest
from build.checksums import parseChecksumsFile
class TestParseChecksumFile(unittest.TestCase):
def testSimple(self):
expected = {'xxxxx': {'size': 1, 'hashes': {'sha512': 'aaa'}}}
got = parseChecksumsFile("aaa sha512 1 xxxxx")
self.assertEquals(got, expected)
def testMultipleHashes(self):
expected = {'yyy': {'size': 5, 'hashes': {'sha512': 'aaa',
'md5': 'bbb'}}}
got = parseChecksumsFile("""\
aaa sha512 5 yyy
bbb md5 5 yyy
""")
self.assertEquals(got, expected)
def testMultipleFiles(self):
expected = {'a': {'size': 1, 'hashes': {'sha512': 'd'}},
'b': {'size': 2, 'hashes': {'sha512': 'e'}}}
got = parseChecksumsFile("""\
d sha512 1 a
e sha512 2 b
""")
self.assertEquals(got, expected)
def testSpacesInFilename(self):
expected = {'b d': {'size': 2, 'hashes': {'sha512': 'g'}}}
got = parseChecksumsFile("""\
g sha512 2 b d
""")
self.assertEquals(got, expected)
def testFilesizeMismatch(self):
self.assertRaises(
ValueError, parseChecksumsFile, """a a 1 a\nb b 2 a""")
def testHashMismatch(self):
self.assertRaises(
ValueError, parseChecksumsFile, """c c 3 c\nd c 3 c""")
def testInvalidSize(self):
self.assertRaises(ValueError, parseChecksumsFile, "b c -2 d")