webish: tolerate not having a checker, since some unit tests don't make one

This commit is contained in:
Brian Warner 2007-10-23 17:35:31 -07:00
parent 046bda2b47
commit 42bd2bcf8e
1 changed files with 22 additions and 15 deletions

View File

@ -227,22 +227,29 @@ class Directory(rend.Page):
ctx.fillSlots("data", childdata)
checker = IClient(ctx).getServiceNamed("checker")
checker_results = checker.checker_results_for(target.get_verifier())
recent_results = reversed(checker_results[-5:])
if IFileNode.providedBy(target):
results = ("[" +
", ".join(["%d/%d" % (found, needed)
for (when, (needed, total, found, sharemap))
in recent_results]) +
"]")
elif IDirectoryNode.providedBy(target):
results = ("[" +
"".join([{True:"+",False:"-"}[res]
for (when, res) in recent_results]) +
"]")
try:
checker = IClient(ctx).getServiceNamed("checker")
except KeyError:
checker = None
if checker:
checker_results = checker.checker_results_for(target.get_verifier())
recent_results = reversed(checker_results[-5:])
if IFileNode.providedBy(target):
results = ("[" +
", ".join(["%d/%d" % (found, needed)
for (when,
(needed, total, found, sharemap))
in recent_results]) +
"]")
elif IDirectoryNode.providedBy(target):
results = ("[" +
"".join([{True:"+",False:"-"}[res]
for (when, res) in recent_results]) +
"]")
else:
results = "%d results" % len(checker_results)
else:
results = "%d results" % len(checker_results)
results = "--"
ctx.fillSlots("checker_results", results)
return ctx.tag