Failing test looking for module icon

Here’s a traceback. TL;DR: Why is run-tests looking for a module icon?

$ bench run-tests --doctype "Credit Memo"
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 97, in <module>
    main()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 18, in main
    click.Group(commands=commands)(prog_name='bench')
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/home/frappe/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 25, in _func
    ret = f(frappe._dict(ctx.obj), *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/commands/utils.py", line 356, in run_tests
    ui_tests = ui_tests, doctype_list_path = doctype_list_path)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/test_runner.py", line 61, in main
    frappe.get_attr(fn)()
  File "/home/frappe/frappe-bench/apps/erpnext/erpnext/setup/utils.py", line 53, in before_tests
    enable_all_roles_and_domains()
  File "/home/frappe/frappe-bench/apps/erpnext/erpnext/setup/utils.py", line 121, in enable_all_roles_and_domains
    [d.name for d in domains])
  File "/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/domain_settings/domain_settings.py", line 15, in set_active_domains
    self.save()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 256, in save
    return self._save(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 307, in _save
    self.run_post_save_methods()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 887, in run_post_save_methods
    self.run_method("on_update")
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 755, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1029, in composer
    return composed(self, method, *args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 1012, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "/home/frappe/frappe-bench/apps/frappe/frappe/model/document.py", line 749, in <lambda>
    fn = lambda self, *args, **kwargs: getattr(self, method)(*args, **kwargs)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/domain_settings/domain_settings.py", line 23, in on_update
    domain.setup_domain()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/domain/domain.py", line 22, in setup_domain
    self.setup_desktop_icons()
  File "/home/frappe/frappe-bench/apps/frappe/frappe/core/doctype/domain/domain.py", line 96, in setup_desktop_icons
    set_desktop_icons(self.data.desktop_icons)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/doctype/desktop_icon/desktop_icon.py", line 227, in set_desktop_icons
    set_order(visible_list)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/doctype/desktop_icon/desktop_icon.py", line 189, in set_order
    name = add_user_icon(module_name, standard=1)
  File "/home/frappe/frappe-bench/apps/frappe/frappe/desk/doctype/desktop_icon/desktop_icon.py", line 136, in add_user_icon
    module_icon = frappe.get_value('Desktop Icon', {'standard':1, 'module_name':userdefined_icon.module},
AttributeError: 'NoneType' object has no attribute 'module'

Hi @tmatteson I am getting this same error when i run bench migrate, please how did you fix your issue??

@Ebuka_Joseph_Akeru I only vaguely remember this. I think one of the applications wasn’t installed.

@tmatteson My case is on a server and it happened because i switched branches of erpnext and frappe from develop to master.

Confirm that both Frappe and ERPNext are on the same branch. V12 is not going to look for the Desktop module doctype.

1 Like