Bug #20274

Filter fixtures for plugins are created with many resource_types

Added by Daniel Lobato Garcia about 1 year ago. Updated 9 days ago.

Status:Closed
Priority:Normal
Assignee:Daniel Lobato Garcia
Category:Tests
Target version:1.15.3
Difficulty: Team Backlog:
Triaged: Fixed in Releases:
Bugzilla link: Found in Releases:
Pull request:https://github.com/theforeman/foreman/pull/4657

Description

Filters cannot have many resource_types - each filter needs to have its own resource type, e.g: one filter does not accommodate permissions for "Host" and "DiscoveredHost".
This is enforced by a validator in the model, but our fixtures are able to completely skip it. The result is that plugins have Filters with multiple resource types. This has not been a problem until recently, as we added a test that checks that the db filter cache can be recreated (CacheManagerTest). On plugins, this test fails to pass as fixtures are wrongly created.

Associated revisions

Revision be92dc95
Added by Daniel Lobato Garcia about 1 year ago

Fixes #20274 - Filter fixtures have many resource_types

Filters cannot have many resource_types - each filter needs to have its
own resource type, e.g: one filter does not accommodate permissions for
"Host" and "DiscoveredHost".

This is enforced by a validator in the model, but our fixtures are able
to completely skip it. The result is that plugins have Filters with
multiple resource types.

This has not been a problem until recently, as we added a test that
checks that the db filter cache can be recreated (CacheManagerTest).
On plugins, this test fails to pass as fixtures are
wrongly created.

To reproduce, make sure your test DB is either Postgres or MySQL, add a
plugin (like foreman_discovery), and try to run the CacheManagerTest

Revision 536e1298
Added by Daniel Lobato Garcia 11 months ago

Fixes #20274 - Filter fixtures have many resource_types

Filters cannot have many resource_types - each filter needs to have its
own resource type, e.g: one filter does not accommodate permissions for
"Host" and "DiscoveredHost".

This is enforced by a validator in the model, but our fixtures are able
to completely skip it. The result is that plugins have Filters with
multiple resource types.

This has not been a problem until recently, as we added a test that
checks that the db filter cache can be recreated (CacheManagerTest).
On plugins, this test fails to pass as fixtures are
wrongly created.

To reproduce, make sure your test DB is either Postgres or MySQL, add a
plugin (like foreman_discovery), and try to run the CacheManagerTest

(cherry picked from commit be92dc95928c289a76bab84c3b03862a29a480db)

History

#1 Updated by The Foreman Bot about 1 year ago

  • Status changed from New to Ready For Testing
  • Assignee set to Daniel Lobato Garcia
  • Pull request https://github.com/theforeman/foreman/pull/4657 added

#2 Updated by Daniel Lobato Garcia about 1 year ago

  • Legacy Backlogs Release (now unused) set to 276

#3 Updated by Anonymous about 1 year ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF