hail icon indicating copy to clipboard operation
hail copied to clipboard

[query] Batch Backend Job Creation Contract Tests

Open ehigham opened this issue 2 months ago • 1 comments

Python integration tests often fail waiting to allocate highmem instances for worker jobs. Since we control both APIs, it seems reasonable to move the testing burdon for vm allocation onto batch and use contract testing on the query driver side.

These contract tests cover:

  • uploading the the ServiceBackendRPConfig to remote storage in python
  • reading that config and forwarding the relevant sections to the batch service in scala

Admittedly these are fairly busy tests and make bare a lot of lower-level implementation details. While I believe these tests are good to have, they perhaps don't warrant the time investment to properly refactor for cleaner mocking. Should details of the main implementation change, these will likely break.

I've made tweaks to the python unittest annotations for backend test filtering. The old system skipped tests after all required fixtures had been acquired. Using @pytest.mark.{feature} allows us to exclude tests before fixtures are setup as well as add additional setup/teardown code.

ehigham avatar Apr 29 '24 22:04 ehigham