[py3] Let InstanceCommand.run_arg() always return an int
The caller of this method (which is method "run_args") does `max(status,
self.run_arg(appid))` and run_arg might return None if the underlying
<cmdname>_instance method returns None. On python3 max(1, None) breaks
with "TypeError: unorderable types: int() > NoneType()". So we enforce
run_arg() method to return an integer even if the underlying method
returns None.
This fixes call of "cubicweb-ctl i18ninstance" with Python3.
--- a/cubicweb/cwctl.py Mon Jun 18 08:47:03 2018 +0200
+++ b/cubicweb/cwctl.py Wed Jun 13 11:09:17 2018 +0200
@@ -148,7 +148,7 @@
def run_arg(self, appid):
cmdmeth = getattr(self, '%s_instance' % self.name)
try:
- status = cmdmeth(appid)
+ status = cmdmeth(appid) or 0
except (ExecutionError, ConfigurationError) as ex:
sys.stderr.write('instance %s not %s: %s\n' % (
appid, self.actionverb, ex))