XLS exporter crashes if the number of tests is 0

Bug #1325898 reported by Ara Pulido
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
PlainBox (Toolkit)
Fix Released
Low
Zygmunt Krynicki

Bug Description

Steps to reproduce:

1) Run checkbox-cli --new-ui
2) Select the client-cert whitelist
3) Deselect all tests and re-select the category "Informational Tests"

Expected results:

The run finishes without errors

Actual results:

The XLS exporter crashes:

CRITICAL plainbox.crashes: Executable 'checkbox' invoked with Namespace(check_config=False, command=<checkbox_ng.commands.cli.CliCommand object at 0x7fd0ebb9fda0>, debug_console=False, debug_interrupt=False, dry_run=False, exclude_pattern_list=[], include_pattern_list=[], log_level=None, new_ui=True, not_interactive=False, pdb=False, providers=None, trace=[], whitelist=[]) has crashed
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 513, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 509, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/cli.py", line 59, in invoked
    self.settings).run()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 108, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 161, in do_normal_sequence
    self.export_and_send_results()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 324, in export_and_send_results
    exporter.dump(data_subset, stream)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/xlsx.py", line 632, in dump
    self.write_summary(data)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/xlsx.py", line 350, in write_summary
    self.total_pass / self.total * 100,
ZeroDivisionError: division by zero
Traceback (most recent call last):
  File "/usr/bin/checkbox-cli", line 9, in <module>
    load_entry_point('checkbox-ng==0.4.dev', 'console_scripts', 'checkbox-cli')()
  File "/usr/lib/python3/dist-packages/checkbox_ng/main.py", line 175, in checkbox_cli
    CheckBoxNGTool().main(['checkbox-cli'] + args))
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 291, in main
    return self.dispatch_and_catch_exceptions(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 513, in dispatch_and_catch_exceptions
    return self.dispatch_command(ns)
  File "/usr/lib/python3/dist-packages/plainbox/impl/clitools.py", line 509, in dispatch_command
    return ns.command.invoked(ns)
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/cli.py", line 59, in invoked
    self.settings).run()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 108, in run
    return self.do_normal_sequence()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 161, in do_normal_sequence
    self.export_and_send_results()
  File "/usr/lib/python3/dist-packages/checkbox_ng/commands/newcli.py", line 324, in export_and_send_results
    exporter.dump(data_subset, stream)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/xlsx.py", line 632, in dump
    self.write_summary(data)
  File "/usr/lib/python3/dist-packages/plainbox/impl/exporter/xlsx.py", line 350, in write_summary
    self.total_pass / self.total * 100,
ZeroDivisionError: division by zero
Exception ignored in: <bound method Workbook.__del__ of <xlsxwriter.workbook.Workbook object at 0x7fd0e5232b38>>
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/xlsxwriter/workbook.py", line 127, in __del__
    self.close()
  File "/usr/lib/python3/dist-packages/xlsxwriter/workbook.py", line 237, in close
    self._store_workbook()
  File "/usr/lib/python3/dist-packages/xlsxwriter/workbook.py", line 420, in _store_workbook
    xlsx_file.write(os_filename, xml_filename)
  File "/usr/lib/python3.4/zipfile.py", line 1343, in write
    zinfo.header_offset = self.fp.tell() # Start of header bytes
ValueError: I/O operation on closed file
Exception ignored in: <bound method ZipFile.__del__ of <zipfile.ZipFile object at 0x7fd0ecac7d68>>

Related branches

Zygmunt Krynicki (zyga)
Changed in plainbox:
status: New → In Progress
assignee: nobody → Zygmunt Krynicki (zkrynicki)
milestone: none → 0.6
Zygmunt Krynicki (zyga)
Changed in plainbox:
status: In Progress → Fix Committed
importance: Undecided → Low
Changed in plainbox:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.