openedx / openedx/openedx-events

Better testing of event bus consumer API changes

Open
#223 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
13
Forks
33
Avg merge
14h 37m
Merged PRs (30d)
4

Description

I'm not clear if this is really an issue for the implementation repos (Kafka or Redis), or for openedx-event where the consumer API interface is defined. However, at some point a breaking change was made to this interface, and we did not have proper test coverage to prevent us from breaking (at least) one of the implementations.

  • Is this an issue with how we define the interface? We think an abstract class is used, but maybe not enough of the details make it to the interface?
  • Or is this just a test coverage issue?

This ticket is to understand what went wrong and how this could be prevented in the future. This may also include doc enhancements regarding the right way to create and test an implementation.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the consumer API interface in openedx-events with the Kafka and Redis implementation repositories mentioned in the issue, then trace the breaking change that lacked coverage. Done means identifying whether the interface or tests were insufficient and documenting or testing the prevention approach, including any guidance for creating and testing implementations.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend-api-design, testing-qa
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.