versioning: 0.0.4, feat: create listing, source image
Build Release EXE / build-windows-exe (release) Successful in 52s
Build Release EXE / build-windows-exe (release) Successful in 52s
This commit is contained in:
+63
-3
@@ -230,7 +230,10 @@ class FakeCornerstone:
|
||||
"url": f"{self.base_url}/ShipSalvageMods1/{item_id}",
|
||||
"html": """
|
||||
<html>
|
||||
<head><title>Star Citizen - Salvage modifier - Abrade Scraper Module</title></head>
|
||||
<head>
|
||||
<title>Star Citizen - Salvage modifier - Abrade Scraper Module</title>
|
||||
<meta property="og:image" content="/images/abrade.png">
|
||||
</head>
|
||||
<body>
|
||||
<table>
|
||||
<tr><td>NAME</td><td>Abrade Scraper Module</td></tr>
|
||||
@@ -246,6 +249,15 @@ class FakeCornerstone:
|
||||
""",
|
||||
}
|
||||
|
||||
async def get_image_data(self, url, max_bytes=10_000_000):
|
||||
assert url == f"{self.base_url}/images/abrade.png"
|
||||
return {
|
||||
"url": url,
|
||||
"content_type": "image/png",
|
||||
"size_bytes": 12,
|
||||
"image_data": "ZmFrZS1pbWFnZQ==",
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_search_marketplace_listings_filters_locally():
|
||||
@@ -379,6 +391,8 @@ def test_schemas_expose_cornerstone_item_tools():
|
||||
|
||||
assert "search_cornerstone_items" in names
|
||||
assert "get_cornerstone_item_locations" in names
|
||||
assert "get_cornerstone_item_media" in names
|
||||
assert "draft_marketplace_listing_with_cornerstone_image" in names
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@@ -441,18 +455,64 @@ async def test_get_cornerstone_item_locations_parses_store_prices():
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_cornerstone_item_media_returns_absolute_image_urls():
|
||||
registry = ToolRegistry(FakeUEX(), cornerstone=FakeCornerstone())
|
||||
|
||||
result = await registry.get_cornerstone_item_media(query="abrade")
|
||||
|
||||
assert result["media"] == [
|
||||
{
|
||||
"url": "https://finder.cstone.test/images/abrade.png",
|
||||
"source": "og:image",
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_draft_marketplace_listing_with_cornerstone_image_adds_image_data_and_redacts_display():
|
||||
registry = ToolRegistry(FakeUEX(), cornerstone=FakeCornerstone())
|
||||
|
||||
result = await registry.draft_marketplace_listing_with_cornerstone_image(
|
||||
item_query="abrade",
|
||||
id_category=3,
|
||||
operation="sell",
|
||||
type="item",
|
||||
unit="unit",
|
||||
title="Abrade Scraper Module",
|
||||
description="Clean module, ready for pickup.",
|
||||
price=21250,
|
||||
currency="UEC",
|
||||
language="en_US",
|
||||
source="purchased_in_game",
|
||||
in_stock=1,
|
||||
)
|
||||
|
||||
pending = result["pending_action"]
|
||||
stored = registry.pending_actions[pending["id"]]
|
||||
|
||||
assert pending["endpoint"] == "marketplace_advertise"
|
||||
assert pending["payload"]["image_data"].startswith("<base64 image data redacted")
|
||||
assert stored.payload["image_data"] == "ZmFrZS1pbWFnZQ=="
|
||||
assert pending["metadata"]["cornerstone_image_status"] == "included"
|
||||
|
||||
|
||||
def test_parse_cornerstone_item_page_extracts_locations():
|
||||
parsed = parse_cornerstone_item_page(
|
||||
"""
|
||||
<html><head><title>Star Citizen - Food - Whamburger</title></head>
|
||||
<html><head><title>Star Citizen - Food - Whamburger</title><meta property="og:image" content="/img/wham.png"></head>
|
||||
<body><table><tr><td>NAME</td><td>Whamburger</td></tr></table>
|
||||
<img src="https://example.test/extra.png" alt="Whamburger">
|
||||
<table><tr><th>LOCATION</th><th>BASE PRICE</th><th>VERIFIED</th></tr>
|
||||
<tr><td>Stanton - Area18 - Cubby Blast</td><td>9</td><td>2956-01-01</td></tr></table></body></html>
|
||||
"""
|
||||
""",
|
||||
"https://finder.cstone.test/Search/item-wham",
|
||||
)
|
||||
|
||||
assert parsed["name"] == "Whamburger"
|
||||
assert parsed["locations"][0]["base_price"] == 9
|
||||
assert parsed["media"][0]["url"] == "https://finder.cstone.test/img/wham.png"
|
||||
assert parsed["media"][1]["url"] == "https://example.test/extra.png"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
Reference in New Issue
Block a user