Exemple #1
0
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
Exemple #4
0
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'
Exemple #8
0
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