Unix: Skip tests instead of ignoring them if a dep is missing + use ls instead of ping.

This commit is contained in:
Valentin Lorentz 2015-08-26 23:09:55 +02:00
parent f4b51452d7
commit b8f5423130

View File

@ -31,11 +31,35 @@ import os
from supybot.test import * from supybot.test import *
try:
from unittest import skipIf
except ImportError:
def skipUnlessSpell(f):
return None
def skipUnlessFortune(f):
return None
def skipUnlessPing(f):
return None
def skipUnlessPing6(f):
return None
else:
skipUnlessSpell = skipIf(utils.findBinaryInPath('aspell') is None and \
utils.findBinaryInPath('ispell') is None,
'aspell/ispell not available.')
skipUnlessFortune = skipIf(utils.findBinaryInPath('fortune') is None,
'fortune not available.')
skipUnlessPing = skipIf(utils.findBinaryInPath('ping') is None,
'ping not available.')
skipUnlessPing6 = skipIf(utils.findBinaryInPath('ping6') is None,
'ping6 not available.')
if os.name == 'posix': if os.name == 'posix':
class UnixTestCase(PluginTestCase): class UnixTestCase(PluginTestCase):
plugins = ('Unix',) plugins = ('Unix',)
if utils.findBinaryInPath('aspell') is not None or \
utils.findBinaryInPath('ispell') is not None: @skipUnlessSpell
def testSpell(self): def testSpell(self):
self.assertRegexp('spell Strike', self.assertRegexp('spell Strike',
'(correctly|Possible spellings)') '(correctly|Possible spellings)')
@ -61,60 +85,68 @@ if os.name == 'posix':
def testCrypt(self): def testCrypt(self):
self.assertNotError('crypt jemfinch') self.assertNotError('crypt jemfinch')
if utils.findBinaryInPath('fortune') is not None: @skipUnlessFortune
def testFortune(self): def testFortune(self):
self.assertNotError('fortune') self.assertNotError('fortune')
if utils.findBinaryInPath('ping') is not None: @skipUnlessPing
def testPing(self): def testPing(self):
self.assertNotError('unix ping 127.0.0.1') self.assertNotError('unix ping 127.0.0.1')
self.assertError('unix ping') self.assertError('unix ping')
self.assertError('unix ping -localhost') self.assertError('unix ping -localhost')
self.assertError('unix ping local%host') self.assertError('unix ping local%host')
@skipUnlessPing
def testPingCount(self): def testPingCount(self):
self.assertNotError('unix ping --c 1 127.0.0.1') self.assertNotError('unix ping --c 1 127.0.0.1')
self.assertError('unix ping --c a 127.0.0.1') self.assertError('unix ping --c a 127.0.0.1')
self.assertRegexp('unix ping --c 11 127.0.0.1','10 packets') self.assertRegexp('unix ping --c 11 127.0.0.1','10 packets')
self.assertRegexp('unix ping 127.0.0.1','5 packets') self.assertRegexp('unix ping 127.0.0.1','5 packets')
@skipUnlessPing
def testPingInterval(self): def testPingInterval(self):
self.assertNotError('unix ping --i 1 --c 1 127.0.0.1') self.assertNotError('unix ping --i 1 --c 1 127.0.0.1')
self.assertError('unix ping --i a --c 1 127.0.0.1') self.assertError('unix ping --i a --c 1 127.0.0.1')
# Super-user privileged interval setting # Super-user privileged interval setting
self.assertError('unix ping --i 0.1 --c 1 127.0.0.1') self.assertError('unix ping --i 0.1 --c 1 127.0.0.1')
@skipUnlessPing
def testPingTtl(self): def testPingTtl(self):
self.assertNotError('unix ping --t 64 --c 1 127.0.0.1') self.assertNotError('unix ping --t 64 --c 1 127.0.0.1')
self.assertError('unix ping --t a --c 1 127.0.0.1') self.assertError('unix ping --t a --c 1 127.0.0.1')
@skipUnlessPing
def testPingWait(self): def testPingWait(self):
self.assertNotError('unix ping --W 1 --c 1 127.0.0.1') self.assertNotError('unix ping --W 1 --c 1 127.0.0.1')
self.assertError('unix ping --W a --c 1 127.0.0.1') self.assertError('unix ping --W a --c 1 127.0.0.1')
if utils.findBinaryInPath('ping6') is not None: @skipUnlessPing6
def testPing6(self): def testPing6(self):
self.assertNotError('unix ping6 ::1') self.assertNotError('unix ping6 ::1')
self.assertError('unix ping6') self.assertError('unix ping6')
self.assertError('unix ping6 -localhost') self.assertError('unix ping6 -localhost')
self.assertError('unix ping6 local%host') self.assertError('unix ping6 local%host')
@skipUnlessPing6
def testPing6Count(self): def testPing6Count(self):
self.assertNotError('unix ping6 --c 1 ::1') self.assertNotError('unix ping6 --c 1 ::1')
self.assertError('unix ping6 --c a ::1') self.assertError('unix ping6 --c a ::1')
self.assertRegexp('unix ping6 --c 11 ::1','10 packets', self.assertRegexp('unix ping6 --c 11 ::1','10 packets',
timeout=12) timeout=12)
self.assertRegexp('unix ping6 ::1','5 packets') self.assertRegexp('unix ping6 ::1','5 packets')
@skipUnlessPing6
def testPing6Interval(self): def testPing6Interval(self):
self.assertNotError('unix ping6 --i 1 --c 1 ::1') self.assertNotError('unix ping6 --i 1 --c 1 ::1')
self.assertError('unix ping6 --i a --c 1 ::1') self.assertError('unix ping6 --i a --c 1 ::1')
# Super-user privileged interval setting # Super-user privileged interval setting
self.assertError('unix ping6 --i 0.1 --c 1 ::1') self.assertError('unix ping6 --i 0.1 --c 1 ::1')
@skipUnlessPing6
def testPing6Ttl(self): def testPing6Ttl(self):
self.assertNotError('unix ping6 --t 64 --c 1 ::1') self.assertNotError('unix ping6 --t 64 --c 1 ::1')
self.assertError('unix ping6 --t a --c 1 ::1') self.assertError('unix ping6 --t a --c 1 ::1')
@skipUnlessPing6
def testPing6Wait(self): def testPing6Wait(self):
self.assertNotError('unix ping6 --W 1 --c 1 ::1') self.assertNotError('unix ping6 --W 1 --c 1 ::1')
self.assertError('unix ping6 --W a --c 1 ::1') self.assertError('unix ping6 --W a --c 1 ::1')
def testCall(self): def testCall(self):
self.assertNotError('unix call /bin/ping -c 1 localhost') self.assertNotError('unix call /bin/ls .')
self.assertRegexp('unix call /bin/ping -c 1 localhost', 'ping statistics') self.assertRegexp('unix call /bin/ls .', 'src,')
self.assertError('unix call /usr/bin/nosuchcommandaoeuaoeu') self.assertError('unix call /usr/bin/nosuchcommandaoeuaoeu')
def testUptime(self): def testUptime(self):