mirror of
https://github.com/arcan1s/ffxivbis.git
synced 2025-04-25 01:37:17 +00:00
68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
from typing import Any, List
|
|
|
|
from ffxivbis.api.utils import make_json
|
|
from ffxivbis.core.party import Party
|
|
from ffxivbis.models.piece import Piece
|
|
from ffxivbis.models.player import Player
|
|
|
|
|
|
async def test_bis_get(server: Any, party: Party, player: Player, player2: Player,
|
|
head_with_upgrade: Piece, weapon: Piece) -> None:
|
|
await party.set_item_bis(player.player_id, weapon)
|
|
await party.set_item_bis(player2.player_id, weapon)
|
|
await party.set_item_bis(player2.player_id, head_with_upgrade)
|
|
|
|
response = await server.get('/api/v1/party/bis')
|
|
assert response.status == 200
|
|
assert await response.text() == make_json([weapon, weapon, head_with_upgrade])
|
|
|
|
|
|
async def test_bis_get_with_filter(server: Any, party: Party, player: Player, player2: Player,
|
|
head_with_upgrade: Piece, weapon: Piece) -> None:
|
|
await party.set_item_bis(player.player_id, weapon)
|
|
await party.set_item_bis(player2.player_id, weapon)
|
|
await party.set_item_bis(player2.player_id, head_with_upgrade)
|
|
|
|
response = await server.get('/api/v1/party/bis', params={'nick': player.nick})
|
|
assert response.status == 200
|
|
assert await response.text() == make_json([weapon])
|
|
|
|
response = await server.get('/api/v1/party/bis', params={'nick': player2.nick})
|
|
assert response.status == 200
|
|
assert await response.text() == make_json([weapon, head_with_upgrade])
|
|
|
|
|
|
async def test_bis_post_add(server: Any, player: Player, head_with_upgrade: Piece) -> None:
|
|
response = await server.post('/api/v1/party/bis', json={
|
|
'action': 'add',
|
|
'name': head_with_upgrade.name,
|
|
'is_tome': head_with_upgrade.is_tome,
|
|
'job': player.job.name,
|
|
'nick': player.nick
|
|
})
|
|
assert response.status == 200
|
|
assert player.bis.has_piece(head_with_upgrade)
|
|
|
|
|
|
async def test_bis_post_remove(server: Any, player: Player, player2: Player, weapon: Piece) -> None:
|
|
response = await server.post('/api/v1/party/bis', json={
|
|
'action': 'remove',
|
|
'name': weapon.name,
|
|
'is_tome': weapon.is_tome,
|
|
'job': player.job.name,
|
|
'nick': player.nick
|
|
})
|
|
assert response.status == 200
|
|
assert not player.bis.has_piece(weapon)
|
|
assert player2.bis.has_piece(weapon)
|
|
|
|
|
|
async def test_bis_put(server: Any, player: Player, bis_link: str, bis_set: List[Piece]) -> None:
|
|
response = await server.put('/api/v1/party/bis', json={
|
|
'job': player.job.name,
|
|
'link': bis_link,
|
|
'nick': player.nick
|
|
})
|
|
assert response.status == 200
|
|
assert player.bis.pieces == bis_set
|