It seems there have been some silent assumptions with this change that we need to discuss.
Prior to this change, all functional tests were required to be able to run against a Pulp API served at whatever URL that the test runner could reach. This implied that pulp-smash was used to configure how to reach the Pulp under test though the api. But also some methods to execute code in the shell or python environment of that Pulp were provided. Let us refer to this setup as a remote test run.
The change announced and executed here is a change to greatly simplify the way we run tests by running them inside the environment in which Pulp itself is running, a local test run.
To me this implies immediately that the requirement for tests to be fit for remote test runs would be dropped immediately and completely. But I heard that we may still want to be able to run most of the tests in remote test runs. A marker for tests that need to run local was thus introduced.
My claim is that without regularly testing it and investing a lot of dev-hours, we cannot maintain the use of this marker in a quality that will give a good QE experience. Resorting to guess-work will give the worst possible experience. Also telling a new contributor “Yes, that test you wrote looks nice and it is green, even in the CI. BUT…” is something i really want to avoid.
So my proposal to be straight forward about this change:
Let’s embrace the fact that the tests run locally as a great simplification for the test suite. Going forward, let’s further simplify the tests by gradually moving all the pytest facilities in pulp-smash over to Pulpcore (with the opinionated configuration for localhost). Replace all the execute-code-on-server interfaces with easier (hopefully faster) implementations that need not bother using remote shell access. Eventually remove the test dependency on pulp-smash altogether. That last step should specifically be helpful, as pulp-smash is not versioned and changes there are always risky.
FWIW, the CLI test suite is still running from outside the CI container on plugins that use it. We could use parts of those as remote against a cluster smoke tests.