Massage the test suite for non-taipan instruments

This commit is contained in:
Douglas Clowes
2014-06-11 14:54:01 +10:00
parent 3ae5310af9
commit f4f29c2d84

View File

@ -26,7 +26,10 @@ class Able(unittest.TestCase):
def cb_login(client, *args, **kw):
if debug:
print "cb_login:", client, args, kw
if 'test_suite' not in globals():
if 'instrument_name' not in globals():
d = self.get_instrument_name()
d.addCallback(cb_login, "Test_Suite")
elif 'test_suite' not in globals():
d = self.load_test_suite()
d.addCallback(cb_login, "Test_Suite")
elif 'sicsconfig' not in globals():
@ -55,6 +58,20 @@ class Able(unittest.TestCase):
#print "Command:", command, d
return d
def get_instrument_name(self):
debug = False
def cb1(result, *args, **kw):
global instrument_name
if debug:
print "instrument:", result, args, kw
self.assertTrue(result[0].lower().startswith("instrument = "))
instrument_name = result[0].split("=")[1].strip().lower()
if debug:
print "Instrument:", instrument_name
d = self.send_command("instrument")
d.addCallback(cb1)
return d
def load_test_suite(self):
debug = False
def cb1(result, *args, **kw):
@ -232,7 +249,7 @@ class Baker(Able):
for m in ["m1", "m2", "s1", "s2", "a1", "a2"]:
if m not in motors:
missing.append(m)
if len(missing) > 0:
if instrument_name == "taipan" and len(missing) > 0:
raise Exception("Missing motors:" + repr(missing))
d.addCallback(cb3)
return d
@ -336,6 +353,9 @@ class Baker(Able):
Should finish quickly
"""
if instrument_name != "taipan":
raise unittest.SkipTest("Cannot drive motor m1, m2: not taipan")
self.deferred = defer.Deferred()
def cb3(result, *args, **kw):
#print "Drive:", result
@ -371,6 +391,9 @@ class Baker(Able):
Should finish quickly
"""
if instrument_name != "taipan":
raise unittest.SkipTest("Cannot drive motor m1, m2: not taipan")
self.deferred = defer.Deferred()
def cb3(result, *args, **kw):
#print "Drive:", result
@ -481,10 +504,13 @@ class Baker(Able):
for line in text:
print line
class Charlie(Able):
class Posit(Able):
timeout = 5
def test_000_000_posit(self):
debug = True
if instrument_name != "taipan":
raise unittest.SkipTest("Cannot posit motor m1, m2: not taipan")
def cb(result, *args, **kw):
if debug:
print "\nposit:", result, args, kw
@ -526,9 +552,12 @@ class Charlie(Able):
d.addCallback(cb, 1)
return self.deferred
class Python(Able):
timeout = 5
def test_001_000_python(self):
debug = True
debug = False
def cb(result, *args, **kw):
global python_installed
if debug:
print "\npython:", result, args, kw
phase = args[0]
@ -536,12 +565,27 @@ class Charlie(Able):
target += 1
if phase == target:
if result[0].startswith("python=obj, type=python,"):
d = self.send_command("python sics.puts(\"Hello Sailor\")")
d.addCallback(cb, phase + 1)
python_installed = True
else:
raise unittest.SkipTest("Python is not configured")
return
python_installed = False
self.deferred.callback(True)
self.deferred = defer.Deferred();
d = self.send_command("sicslist python")
d.addCallback(cb, 1)
return self.deferred
def test_002_000_python(self):
debug = False
if debug:
print "Python_Installed:", python_installed
if not python_installed:
raise unittest.SkipTest("Python is not installed")
def cb(result, *args, **kw):
if debug:
print "\npython:", result, args, kw
phase = args[0]
target = 0
target += 1
if phase == target:
if result[0].startswith("Hello Sailor"):
@ -555,7 +599,7 @@ class Charlie(Able):
self.deferred.callback(True)
self.deferred = defer.Deferred();
d = self.send_command("sicslist python")
d = self.send_command("python sics.puts(\"Hello Sailor\")")
d.addCallback(cb, 1)
return self.deferred