You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
992 B
39 lines
992 B
from disco.state import State, StateConfig
|
|
from holster.emitter import Emitter
|
|
from disco.gateway.events import VoiceStateUpdate
|
|
|
|
|
|
class MockClient(object):
|
|
def __init__(self):
|
|
self.events = Emitter()
|
|
|
|
|
|
def get_state(config=None):
|
|
return State(MockClient(), config or StateConfig())
|
|
|
|
|
|
def test_state_remove_expired_voice_states_device_change():
|
|
state = get_state()
|
|
|
|
event = VoiceStateUpdate.create({
|
|
'session_id': 'a',
|
|
'guild_id': 1,
|
|
'channel_id': 1,
|
|
'user_id': 1,
|
|
}, None)
|
|
state.client.events.emit('VoiceStateUpdate', event)
|
|
|
|
assert len(state.voice_states) == 1
|
|
assert 'a' in state.voice_states
|
|
|
|
event = VoiceStateUpdate.create({
|
|
'session_id': 'b',
|
|
'guild_id': 1,
|
|
'channel_id': 1,
|
|
'user_id': 1,
|
|
}, None)
|
|
state.client.events.emit('VoiceStateUpdate', event)
|
|
|
|
assert len(state.voice_states) == 1
|
|
assert 'a' not in state.voice_states
|
|
assert 'b' in state.voice_states
|
|
|