forked from retoor/devplacepy
ticket #148 attempt 1
This commit is contained in:
@@ -427,3 +427,65 @@ def test_grant_ineligible_when_rich_returns_400(app_server, seeded_db):
|
||||
)
|
||||
r = session.post(f"{BASE_URL}/game/grant", headers=JSON)
|
||||
assert r.status_code == 400
|
||||
|
||||
|
||||
def test_defense_item_purchase_success(app_server, seeded_db):
|
||||
session, name = _signup()
|
||||
_reset_farm(name, 10000)
|
||||
refresh_snapshot()
|
||||
user = get_table("users").find_one(username=name)
|
||||
farm = store.get_farm(user["uid"])
|
||||
r = session.post(
|
||||
f"{BASE_URL}/game/farm/{name}/defense-item",
|
||||
data={"farm_uid": farm["uid"], "item_type": "mines"},
|
||||
headers=JSON,
|
||||
)
|
||||
assert r.status_code == 200
|
||||
body = r.json()
|
||||
assert body["item_type"] == "mines"
|
||||
assert body["cost"] == economy.DEFENSE_ITEM_COST["mines"]
|
||||
|
||||
|
||||
def test_defense_item_purchase_not_owner_returns_403(app_server, seeded_db):
|
||||
session, name = _signup()
|
||||
owner_session, owner_name = _signup()
|
||||
_reset_farm(owner_name, 10000)
|
||||
refresh_snapshot()
|
||||
owner_user = get_table("users").find_one(username=owner_name)
|
||||
farm = store.get_farm(owner_user["uid"])
|
||||
r = session.post(
|
||||
f"{BASE_URL}/game/farm/{owner_name}/defense-item",
|
||||
data={"farm_uid": farm["uid"], "item_type": "mines"},
|
||||
headers=JSON,
|
||||
)
|
||||
assert r.status_code in (400, 403)
|
||||
assert r.status_code != 200
|
||||
|
||||
|
||||
def test_defense_item_purchase_requires_auth(app_server, seeded_db):
|
||||
r = requests.post(
|
||||
f"{BASE_URL}/game/farm/test/defense-item",
|
||||
data={"farm_uid": "x", "item_type": "mines"},
|
||||
headers=JSON,
|
||||
)
|
||||
assert r.status_code in (401, 303)
|
||||
|
||||
|
||||
def test_insurance_purchase_duplicate_rejected(app_server, seeded_db):
|
||||
session, name = _signup()
|
||||
_reset_farm(name, 10000)
|
||||
refresh_snapshot()
|
||||
user = get_table("users").find_one(username=name)
|
||||
farm = store.get_farm(user["uid"])
|
||||
r1 = session.post(
|
||||
f"{BASE_URL}/game/farm/{name}/defense-item",
|
||||
data={"farm_uid": farm["uid"], "item_type": "insurance"},
|
||||
headers=JSON,
|
||||
)
|
||||
assert r1.status_code == 200
|
||||
r2 = session.post(
|
||||
f"{BASE_URL}/game/farm/{name}/defense-item",
|
||||
data={"farm_uid": farm["uid"], "item_type": "insurance"},
|
||||
headers=JSON,
|
||||
)
|
||||
assert r2.status_code == 400
|
||||
|
||||
Reference in New Issue
Block a user