Esempio n. 1
0
def test_sync_node_unaviable_on_branch_point(
        fx_user: User, fx_session: scoped_session, fx_server: WSGIServer,
        fx_other_session: Session, fx_novice_status: typing.Mapping[str, str],
        code: int):
    move = fx_user.create_novice(fx_novice_status)
    block = Block.create(fx_user, [move])
    Block.sync(Node(url=fx_server.url), fx_other_session)
    assert fx_other_session.query(Block).count() == 1
    serialized = block.serialize(use_bencode=False,
                                 include_suffix=True,
                                 include_moves=True,
                                 include_hash=True)
    serialized['id'] = block.id + 1
    with Mocker() as m:
        m.register_uri(
            'GET',
            f'{fx_server.url}/blocks/last',
            json={'block': serialized},
            status_code=200,
        )
        m.register_uri(
            'GET',
            f'{fx_server.url}/blocks/1',
            status_code=code,
        )
        assert not Block.sync(Node(url=fx_server.url), fx_other_session)
Esempio n. 2
0
def test_sync_node_unavailable_on_get_last_block(
        fx_user: User, fx_session: scoped_session, fx_other_session: Session,
        fx_server: WSGIServer, fx_novice_status: typing.Mapping[str, str],
        code: int):
    move = fx_user.create_novice(fx_novice_status)
    Block.create(fx_user, [move])
    with Mocker() as m:
        m.get(url=f'{fx_server.url}/blocks/last', status_code=code)
        Block.sync(Node(url=fx_server.url), fx_other_session)
        assert fx_other_session.query(Block).count() == 0
Esempio n. 3
0
def test_sync(fx_user, fx_session, fx_other_user, fx_other_session, fx_server,
              fx_novice_status):
    assert fx_other_session.query(Block).count() == 0
    assert fx_session.query(Block).count() == 0

    Block.sync(Node(url=fx_server.url), fx_other_session)
    assert fx_other_session.query(Block).count() == 0
    assert fx_session.query(Block).count() == 0

    Block.create(fx_other_user, [])
    Block.sync(Node(url=fx_server.url), fx_other_session)
    assert fx_other_session.query(Block).count() == 1
    assert fx_session.query(Block).count() == 0

    move = fx_user.create_novice(fx_novice_status)
    Block.create(fx_user, [move])
    Block.create(fx_user, [])
    Block.create(fx_user, [])

    assert fx_other_session.query(Block).count() == 1
    assert fx_other_session.query(Move).count() == 0
    assert fx_session.query(Block).count() == 3
    assert fx_session.query(Move).count() == 1

    Block.sync(Node(url=fx_server.url), fx_other_session)
    assert fx_other_session.query(Block).count() == 3
    assert fx_other_session.query(Move).count() == 1
    assert fx_session.query(Block).count() == 3
    assert fx_session.query(Move).count() == 1