@ -7,11 +7,10 @@ if sys.version_info[0] < 3:
print ( " This script requires Python version 3 " )
print ( " This script requires Python version 3 " )
sys . exit ( 1 )
sys . exit ( 1 )
from distutils . version import LooseVersion
import unittest
import unittest
import unittest . mock
import unittest . mock
from check_kernel import clean_kernel_version
from check_kernel import clean_kernel_version , Version
import check_kernel
import check_kernel
@ -19,25 +18,35 @@ class CleanKernelVersionTestCase(unittest.TestCase):
def testDebian ( self ) :
def testDebian ( self ) :
versions = [ ( ' 3.16.7-ckt9-3~deb8u2 ' , ' 3.16.7-ckt9-3~deb8u2 ' ) ]
versions = [ ( ' 3.16.7-ckt9-3~deb8u2 ' , ' 3.16.7-ckt9-3~deb8u2 ' ) ]
for dirty , clean in versions :
for dirty , clean in versions :
self . assertEqual ( clean_kernel_version ( dirty ) , Loose Version( clean ) )
self . assertEqual ( clean_kernel_version ( dirty ) , Version( clean ) )
def testFedora ( self ) :
def testFedora ( self ) :
versions = [ ( ' 4.0.4-301.fc22.x86_64 ' , ' 4.0.4-301 ' ) ,
versions = [ ( ' 4.0.4-301.fc22.x86_64 ' , ' 4.0.4-301 ' ) ,
( ' 4.0.0-1.fc22 ' , ' 4.0.0-1 ' ) ]
( ' 4.0.0-1.fc22 ' , ' 4.0.0-1 ' ) ]
for dirty , clean in versions :
for dirty , clean in versions :
self . assertEqual ( clean_kernel_version ( dirty ) , Loose Version( clean ) )
self . assertEqual ( clean_kernel_version ( dirty ) , Version( clean ) )
class RunningKernelVersionTestCase ( unittest . TestCase ) :
class RunningKernelVersionTestCase ( unittest . TestCase ) :
def testFedora ( self ) :
def testFedora ( self ) :
with unittest . mock . patch . object ( check_kernel , ' proc_version ' , return_value = ' Linux version 4.0.3-301.fc22.x86_64 (mockbuild@bkernel02.phx2.fedoraproject.org) (gcc version 5.1.1 20150422 (Red Hat 5.1.1-1) (GCC) ) #1 SMP Thu May 21 13:10:33 UTC 2015 ' ) :
with unittest . mock . patch . object ( check_kernel , ' proc_version ' , return_value = ' Linux version 4.0.3-301.fc22.x86_64 (mockbuild@bkernel02.phx2.fedoraproject.org) (gcc version 5.1.1 20150422 (Red Hat 5.1.1-1) (GCC) ) #1 SMP Thu May 21 13:10:33 UTC 2015 ' ) :
self . assertEqual ( check_kernel . running_kernel_version ( ) ,
self . assertEqual ( check_kernel . running_kernel_version ( ) ,
Loose Version( ' 4.0.3-301 ' ) )
Version( ' 4.0.3-301 ' ) )
def testDebian ( self ) :
def testDebian ( self ) :
with unittest . mock . patch . object ( check_kernel , ' proc_version ' , return_value = ' Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) ' ) :
with unittest . mock . patch . object ( check_kernel , ' proc_version ' , return_value = ' Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) ' ) :
self . assertEqual ( check_kernel . running_kernel_version ( ) ,
self . assertEqual ( check_kernel . running_kernel_version ( ) ,
LooseVersion ( ' 3.16.7-ckt9-3~deb8u1 ' ) )
Version ( ' 3.16.7-ckt9-3~deb8u1 ' ) )
class VersionTestCase ( unittest . TestCase ) :
def testComparingTrivial ( self ) :
self . assertEqual ( Version ( ' 1.0 ' ) , Version ( ' 1.0 ' ) )
self . assertGreater ( Version ( ' 2.0 ' ) , Version ( ' 1.0 ' ) )
def testComparingNonTrivial ( self ) :
self . assertGreater ( Version ( ' 2.12 ' ) , Version ( ' 2.2 ' ) )
self . assertGreater ( Version ( ' 3.12-12 ' ) , Version ( ' 3.12-2 ' ) )
if __name__ == ' __main__ ' :
if __name__ == ' __main__ ' :