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)
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
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