Bug 988845 - A platform unit test loads real entry points for installed plugins, which can fail
Summary: A platform unit test loads real entry points for installed plugins, which can...
Alias: None
Product: Pulp
Classification: Retired
Component: z_other
Version: Master
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
: ---
Assignee: pulp-bugs
QA Contact: pulp-qe-list
Depends On:
TreeView+ depends on / blocked
Reported: 2013-07-26 14:32 UTC by Randy Barlow
Modified: 2015-02-28 21:57 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2015-02-28 21:57:46 UTC

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Pulp Redmine 364 0 None None None Never

Description Randy Barlow 2013-07-26 14:32:31 UTC
If you have the 2.2 branch checked out for Pulp platform, and the master branch checked out for pulp_rpm, running the unit tests on the platform will cause this error:

ERROR: test_init_calls_entry_points (server.test_plugin_api.TestAPI)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mock.py", line 1224, in patched
    return func(*args, **keywargs)
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/test_plugin_api.py", line 26, in test_init_calls_entry_points
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/../../../src/pulp/plugins/loader/api.py", line 70, in initialize
    loading.load_plugins_from_path(path, base_class, plugin_map)
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/../../../src/pulp/plugins/loader/loading.py", line 73, in load_plugins_from_path
    plugin_tuples = load_plugins(dir_, base_class, base_class.__name__.lower())
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/../../../src/pulp/plugins/loader/loading.py", line 162, in load_plugins
    cls_list = load_plugin_classes('.'.join((package_name, module_name)), base_class)
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/../../../src/pulp/plugins/loader/loading.py", line 179, in load_plugin_classes
    module = import_module(module_name)
  File "/home/rbarlow/devel/pulp/platform/test/unit/server/../../../src/pulp/plugins/loader/loading.py", line 231, in import_module
    mod = __import__(name)
  File "/usr/lib/pulp/plugins/profilers/rpm_errata_profiler/profiler.py", line 19, in <module>
    from pulp.plugins.model import ApplicabilityReport
ImportError: cannot import name ApplicabilityReport

The platform unit tests should not be using the real entry points for its tests, as it can lead to these sorts of issues with broken test isolation. This also raises the question about whether this test will test anything if there are no entry points installed on the system.

Comment 1 Brian Bouterse 2015-02-28 21:57:46 UTC
Moved to https://pulp.plan.io/issues/364

Note You need to log in before you can comment on or make changes to this bug.