Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow ringing sessions to be recorded and played back as test cases #191

Open
kneasle opened this issue May 2, 2021 · 2 comments
Open
Labels
enhancement New feature or request internal Things which only impact us devs and not the end users

Comments

@kneasle
Copy link
Owner

kneasle commented May 2, 2021

This would provide an excellent mechanism for testing Wheatley's performance, since if we mocked the Tower class and make the sleep function just increment a counter then we can simulate Wheatley ringing for huge amounts of time.

If someone else wants to have a crack at this then they're very welcome, but if I had to do it I'd probably do something like:

  1. Move all the knowledge of timing (i.e. time.time() and time.sleep()) into the Tower class so that it can be mocked easily.
  2. Make some kind of running mode which records the events passing through the Tower class and records them to some format (probably JSON)
  3. Make a mocked version of Tower which never interacts with RR but instead replays any given simulation using mocked sleep and time functions to go wayyyy faster than real time.
@kneasle kneasle added enhancement New feature or request internal Things which only impact us devs and not the end users labels May 2, 2021
@annag42
Copy link
Contributor

annag42 commented Aug 5, 2021

A record-and-playback feature could also be used for other purposes than just testing, such as for inclusion in pre-recorded worship services, or even semi-live demonstrations (playbacks) for (spatially-) distributed listeners of a single online tower.

It might be useful to somehow indicate visually to onlookers (casual, non-participating listeners, watching the playback ringingroom) a status message that a recording or playback is in session, when it is.

@kneasle
Copy link
Owner Author

kneasle commented Aug 5, 2021

A record-and-playback feature could also be used for other purposes than just testing, such as for inclusion in pre-recorded worship services, or even semi-live demonstrations (playbacks) for (spatially-) distributed listeners of a single online tower.

Agreed. Real-time playback wouldn't be super useful for testing Wheatley, but once we have some kind of recording format it would be really easy to play them back to Ringing Room (we probably don't even need Wheatley - we could just ring the bells directly using WebSocket or a library like belltower).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request internal Things which only impact us devs and not the end users
Projects
None yet
Development

No branches or pull requests

2 participants