普通文本  |  145行  |  4.66 KB

#!/usr/bin/python

import unittest
from kernelexpand import decompose_kernel
from kernelexpand import mirror_kernel_components

km = 'http://www.kernel.org/pub/linux/kernel/'
akpm = km + 'people/akpm/patches/'

kml = 'http://www.example.com/mirror/kernel.org/'
akpml = 'http://www.example.com/mirror/akpm/'

mirrorA = [
        [ akpm, akpml ],
        [ km, kml ],
]

class kernelexpandTest(unittest.TestCase):
    def test_decompose_simple(self):
        correct = [ [ km + 'v2.6/linux-2.6.23.tar.bz2' ] ]
        sample = decompose_kernel('2.6.23')
        self.assertEqual(sample, correct)


    def test_decompose_fail(self):
        success = False
        try:
            sample = decompose_kernel('1.0.0.0.0')
            success = True
        except NameError:
            pass
        except Exception, e:
            self.fail('expected NameError, got something else')

        if success:
            self.fail('expected NameError, was successful')


    def test_decompose_rcN(self):
        correct = [
          [ km + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2']
        ]
        sample = decompose_kernel('2.6.23-rc1')
        self.assertEqual(sample, correct)


    def test_decompose_mmN(self):
        correct = [
          [ km + 'v2.6/linux-2.6.23.tar.bz2' ],
          [ akpm + '2.6/2.6.23/2.6.23-mm1/2.6.23-mm1.bz2' ]
        ]
        sample = decompose_kernel('2.6.23-mm1')
        self.assertEqual(sample, correct)


    def test_decompose_gitN(self):
        correct = [
          [ km + 'v2.6/linux-2.6.23.tar.bz2' ],
          [ km + 'v2.6/snapshots/old/patch-2.6.23-git1.bz2',
            km + 'v2.6/snapshots/patch-2.6.23-git1.bz2']
        ]
        sample = decompose_kernel('2.6.23-git1')
        self.assertEqual(sample, correct)


    def test_decompose_rcN_mmN(self):
        correct = [
          [ km + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2' ],
          [ akpm + '2.6/2.6.23-rc1/2.6.23-rc1-mm1/2.6.23-rc1-mm1.bz2']
        ]
        sample = decompose_kernel('2.6.23-rc1-mm1')
        self.assertEqual(sample, correct)


    def test_mirrorA_simple(self):
        correct = [
          [ kml + 'v2.6/linux-2.6.23.tar.bz2',
            km + 'v2.6/linux-2.6.23.tar.bz2' ]
        ]
        sample = decompose_kernel('2.6.23')
        sample = mirror_kernel_components(mirrorA, sample)

        self.assertEqual(sample, correct)


    def test_mirrorA_rcN(self):
        correct = [
          [ kml + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            kml + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2' ]
        ]
        sample = decompose_kernel('2.6.23-rc1')
        sample = mirror_kernel_components(mirrorA, sample)
        self.assertEqual(sample, correct)


    def test_mirrorA_mmN(self):
        correct = [
          [ kml + 'v2.6/linux-2.6.23.tar.bz2',
            km + 'v2.6/linux-2.6.23.tar.bz2'],
          [ akpml + '2.6/2.6.23/2.6.23-mm1/2.6.23-mm1.bz2',
            kml + 'people/akpm/patches/2.6/2.6.23/2.6.23-mm1/2.6.23-mm1.bz2',
            akpm + '2.6/2.6.23/2.6.23-mm1/2.6.23-mm1.bz2' ]
        ]

        sample = decompose_kernel('2.6.23-mm1')
        sample = mirror_kernel_components(mirrorA, sample)
        self.assertEqual(sample, correct)


    def test_mirrorA_gitN(self):
        correct = [
          [ kml + 'v2.6/linux-2.6.23.tar.bz2',
            km + 'v2.6/linux-2.6.23.tar.bz2'],
          [ kml + 'v2.6/snapshots/old/patch-2.6.23-git1.bz2',
            kml + 'v2.6/snapshots/patch-2.6.23-git1.bz2',
            km + 'v2.6/snapshots/old/patch-2.6.23-git1.bz2',
            km + 'v2.6/snapshots/patch-2.6.23-git1.bz2' ]
        ]
        sample = decompose_kernel('2.6.23-git1')
        sample = mirror_kernel_components(mirrorA, sample)
        self.assertEqual(sample, correct)


    def test_mirrorA_rcN_mmN(self):
        correct = [
          [ kml + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            kml + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/v2.6.23/linux-2.6.23-rc1.tar.bz2',
            km + 'v2.6/testing/linux-2.6.23-rc1.tar.bz2'],
          [ akpml + '2.6/2.6.23-rc1/2.6.23-rc1-mm1/2.6.23-rc1-mm1.bz2',
            kml + 'people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm1/2.6.23-rc1-mm1.bz2',
            akpm + '2.6/2.6.23-rc1/2.6.23-rc1-mm1/2.6.23-rc1-mm1.bz2' ]
        ]
        sample = decompose_kernel('2.6.23-rc1-mm1')
        sample = mirror_kernel_components(mirrorA, sample)
        self.assertEqual(sample, correct)


if __name__ == '__main__':
    unittest.main()