This essentially restores the original code from c425b554b8
(https://github.com/hasura/graphql-engine/pull/4013). Prior to this
commit we would slurp messages as fast as possible from the database
(one thing c425b55 fixed).
Another thing broken as a consequence of the same logic was the
removeEventFromLockedEvents logic which unlocks in-flight events
(breaking at-least-once delivery)
Some archeology, post-c425b55:
- cc8e2ccc erroneously attempted to refactor using `bracket`, resulting
in the same slurp-all-events behavior (since we don't ever wait for
processEvent to complete)
- at some point event processing within a batch is made serial, this
reported as a bug. See: https://github.com/hasura/graphql-engine/issues/5189
- in 0ef52292b5 (which I approved...) an `async` is added, again
causing the same issue...
GitOrigin-RevId: d8cbaab385267a4c3f1f173e268a385265980fb1
This should install python dependencies if required, and run in isolation. The output format is described in the pytest documentation. Errors and failures are indicated by Fs and Es.
Tests Structure
Tests are grouped as test classes in test modules (names starting with test_)
The configuration files (if needed) for the tests in a class are usually kept in one folder.
The folder name is usually either the dir variable or the dir() function
Some tests (like in test_graphql_queries.py) requires a setup and teardown per class.
Here we are extending the DefaultTestSelectQueries class.
This class defines a fixture which will run the configurations in setup.yaml and teardown.yaml once per class
Extending test class should define a function name dir(), which returns the configuration folder
For mutation tests (like in test_graphql_mutations.py)
We need a schema_setup and schema_teardown per class
And values_setup and values_teardown per test
Doing schema setup and teardown per test is expensive.
We are extending the DefaultTestMutations class for this.
This class defines a fixture which will run the configuration in setup.yaml and teardown.yaml once per class.
Another fixture defined in this class runs the configuration in values_setup.yaml and values_teardown.yaml once per class.