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,25 +31,49 @@ 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)')
# ispell won't find any results. aspell will make some # ispell won't find any results. aspell will make some
# suggestions. # suggestions.
self.assertRegexp('spell z0opadfnaf83nflafl230kasdf023hflasdf', self.assertRegexp('spell z0opadfnaf83nflafl230kasdf023hflasdf',
'not find|Possible spellings') 'not find|Possible spellings')
self.assertNotError('spell Strizzike') self.assertNotError('spell Strizzike')
self.assertError('spell foo bar baz') self.assertError('spell foo bar baz')
self.assertError('spell -') self.assertError('spell -')
self.assertError('spell .') self.assertError('spell .')
self.assertError('spell ?') self.assertError('spell ?')
self.assertNotError('spell whereever') self.assertNotError('spell whereever')
self.assertNotRegexp('spell foo', 'whatever') self.assertNotRegexp('spell foo', 'whatever')
def testErrno(self): def testErrno(self):
self.assertRegexp('errno 12', '^ENOMEM') self.assertRegexp('errno 12', '^ENOMEM')
@ -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')
def testPingCount(self): @skipUnlessPing
self.assertNotError('unix ping --c 1 127.0.0.1') def testPingCount(self):
self.assertError('unix ping --c a 127.0.0.1') self.assertNotError('unix ping --c 1 127.0.0.1')
self.assertRegexp('unix ping --c 11 127.0.0.1','10 packets') self.assertError('unix ping --c a 127.0.0.1')
self.assertRegexp('unix ping 127.0.0.1','5 packets') self.assertRegexp('unix ping --c 11 127.0.0.1','10 packets')
def testPingInterval(self): self.assertRegexp('unix ping 127.0.0.1','5 packets')
self.assertNotError('unix ping --i 1 --c 1 127.0.0.1') @skipUnlessPing
self.assertError('unix ping --i a --c 1 127.0.0.1') def testPingInterval(self):
# Super-user privileged interval setting self.assertNotError('unix ping --i 1 --c 1 127.0.0.1')
self.assertError('unix ping --i 0.1 --c 1 127.0.0.1') self.assertError('unix ping --i a --c 1 127.0.0.1')
def testPingTtl(self): # Super-user privileged interval setting
self.assertNotError('unix ping --t 64 --c 1 127.0.0.1') self.assertError('unix ping --i 0.1 --c 1 127.0.0.1')
self.assertError('unix ping --t a --c 1 127.0.0.1') @skipUnlessPing
def testPingWait(self): def testPingTtl(self):
self.assertNotError('unix ping --W 1 --c 1 127.0.0.1') self.assertNotError('unix ping --t 64 --c 1 127.0.0.1')
self.assertError('unix ping --W a --c 1 127.0.0.1') self.assertError('unix ping --t a --c 1 127.0.0.1')
@skipUnlessPing
def testPingWait(self):
self.assertNotError('unix ping --W 1 --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')
def testPing6Count(self): @skipUnlessPing6
self.assertNotError('unix ping6 --c 1 ::1') def testPing6Count(self):
self.assertError('unix ping6 --c a ::1') self.assertNotError('unix ping6 --c 1 ::1')
self.assertRegexp('unix ping6 --c 11 ::1','10 packets', self.assertError('unix ping6 --c a ::1')
timeout=12) self.assertRegexp('unix ping6 --c 11 ::1','10 packets',
self.assertRegexp('unix ping6 ::1','5 packets') timeout=12)
def testPing6Interval(self): self.assertRegexp('unix ping6 ::1','5 packets')
self.assertNotError('unix ping6 --i 1 --c 1 ::1') @skipUnlessPing6
self.assertError('unix ping6 --i a --c 1 ::1') def testPing6Interval(self):
# Super-user privileged interval setting self.assertNotError('unix ping6 --i 1 --c 1 ::1')
self.assertError('unix ping6 --i 0.1 --c 1 ::1') self.assertError('unix ping6 --i a --c 1 ::1')
def testPing6Ttl(self): # Super-user privileged interval setting
self.assertNotError('unix ping6 --t 64 --c 1 ::1') self.assertError('unix ping6 --i 0.1 --c 1 ::1')
self.assertError('unix ping6 --t a --c 1 ::1') @skipUnlessPing6
def testPing6Wait(self): def testPing6Ttl(self):
self.assertNotError('unix ping6 --W 1 --c 1 ::1') self.assertNotError('unix ping6 --t 64 --c 1 ::1')
self.assertError('unix ping6 --W a --c 1 ::1') self.assertError('unix ping6 --t a --c 1 ::1')
@skipUnlessPing6
def testPing6Wait(self):
self.assertNotError('unix ping6 --W 1 --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):