def test_active_games(db): g1 = GameFactory(stage='playing') g2 = GameFactory(stage='playing') RoomUserFactory(room=g1.room, user=g1.black_user) RoomUserFactory(room=g1.room, user=g1.white_user) RoomUserFactory(room=g2.room, user=g2.black_user) RoomUserFactory(room=g2.room, user=g2.white_user) assert Game.active_games(db).count() == 2
def test_room_users(db, socket): ru = RoomUserFactory() svc = RoomService(db, socket, ru.user) data = svc.execute('users', {'room_id': ru.room_id}) assert data.get('users') is not None assert len(data.get('users')) == 1
def test_room_users_offline(db, socket): room = RoomFactory() ru = RoomUserFactory(room=room, user__is_online=True) RoomUserFactory(room=room, user__is_online=False) ru2 = RoomUserFactory(room=room, user__is_online=True) svc = RoomService(db, socket, ru.user) data = svc.execute('users', {'room_id': ru.room_id}) users = data.get('users') user_ids = [u['user_id'] for u in users] assert users is not None assert len(users) == 2 assert ru.user_id in user_ids assert ru2.user_id in user_ids
def test_connection_data_rooms(db, socket): room = RoomFactory(type='main') ru = RoomUserFactory(room=room) socket.subscribe('connection_data') ConnectionService(db, socket, ru.user).connect() data = socket.sent_messages[0]['data'] assert 'rooms' in data assert len(data['rooms']) == 1
def test_message_not_in_room(db, socket): room = RoomFactory() ru = RoomUserFactory() svc = RoomService(db, socket, ru.user) with pytest.raises(ServiceError): svc.execute('message', {'room_id': room.id, 'message': 'test'}) assert len(list(ru.room.recent_messages(db))) == 0 assert len(list(room.recent_messages(db))) == 0
def test_message(db, socket): ru = RoomUserFactory() svc = RoomService(db, socket, ru.user) svc.execute('message', {'room_id': ru.room_id, 'message': 'test'}) assert db.query(RoomMessage).count() == 1 msg = db.query(RoomMessage).first() assert msg.message == 'test' assert msg.user == ru.user assert msg.room == ru.room
def test_room_recent_messages(db): room = RoomFactory() ru = RoomUserFactory(room=room) RoomMessageFactory(room=room, user=ru.user, message='new', created_at=datetime(2016, 5, 23)) RoomMessageFactory(room=room, user=ru.user, message='old', created_at=datetime(2016, 5, 22)) RoomMessageFactory(room=room, user=ru.user, message='even older', created_at=datetime(2016, 5, 21)) msg = list(room.recent_messages(db, 2)) assert msg[0].message == 'old' assert msg[1].message == 'new'
def test_active_games_demo_offline(db): demo = DemoGameFactory(demo_owner__is_online=False) RoomUserFactory(room=demo.room, user=demo.demo_owner) assert Game.active_games(db).count() == 0