Skip to content

Commit e855572

Browse files
committed
force ENABLE_PUBLIC_WORKSPACE_ISSUE
1 parent 8fbb532 commit e855572

File tree

2 files changed

+47
-8
lines changed

2 files changed

+47
-8
lines changed

backend/tests/test_api.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,18 @@ def test_importable() -> None:
1111

1212
def test_create_and_delete_listing() -> None:
1313
os.environ["DATABASE_URL"] = "sqlite+pysqlite:///:memory:"
14+
os.environ["ENABLE_PUBLIC_WORKSPACE_ISSUE"] = "1"
1415
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
1516

1617
from fastapi.testclient import TestClient
1718

1819
from app.main import app
1920

2021
with TestClient(app) as client:
22+
token_res = client.post("/api/workspaces/issue")
23+
assert token_res.status_code == 200, token_res.text
24+
token = token_res.json()["workspace_token"]
25+
headers = {"Authorization": f"Bearer {token}"}
2126
created = client.post(
2227
"/api/listings",
2328
json={
@@ -28,14 +33,15 @@ def test_create_and_delete_listing() -> None:
2833
"price_period": "unknown",
2934
"captured_at": "2026-01-30T10:00:00Z",
3035
},
36+
headers=headers,
3137
)
3238
assert created.status_code == 200, created.text
3339
listing_id = created.json()["id"]
3440

35-
deleted = client.delete(f"/api/listings/{listing_id}")
41+
deleted = client.delete(f"/api/listings/{listing_id}", headers=headers)
3642
assert deleted.status_code == 200, deleted.text
3743
assert deleted.json()["deleted"] is True
3844

39-
after = client.get("/api/listings")
45+
after = client.get("/api/listings", headers=headers)
4046
assert after.status_code == 200, after.text
4147
assert after.json() == []

backend/tests/test_targets_compare.py

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
1+
import os
2+
13
from fastapi.testclient import TestClient
24

5+
os.environ["DATABASE_URL"] = "sqlite+pysqlite:///:memory:"
6+
os.environ["ENABLE_PUBLIC_WORKSPACE_ISSUE"] = "1"
7+
38
import app.main as main
49
from app.distance import haversine_km
510
from app.geocoding import GeocodeResult, ReverseGeocodeResult
611

712

13+
def _auth_headers(client: TestClient) -> dict[str, str]:
14+
token_res = client.post("/api/workspaces/issue")
15+
assert token_res.status_code == 200, token_res.text
16+
token = token_res.json()["workspace_token"]
17+
return {"Authorization": f"Bearer {token}"}
18+
19+
820
def test_geocode_endpoint_uses_provider(monkeypatch) -> None:
921
def fake_geocode_address(query: str, *, limit: int = 5) -> list[GeocodeResult]:
1022
assert query.strip() == "Waymo"
@@ -14,7 +26,8 @@ def fake_geocode_address(query: str, *, limit: int = 5) -> list[GeocodeResult]:
1426
monkeypatch.setattr(main, "geocode_address", fake_geocode_address)
1527

1628
with TestClient(main.app) as client:
17-
res = client.get("/api/geocode", params={"query": "Waymo", "limit": 1})
29+
headers = _auth_headers(client)
30+
res = client.get("/api/geocode", params={"query": "Waymo", "limit": 1}, headers=headers)
1831
assert res.status_code == 200, res.text
1932
data = res.json()
2033
assert data == [{"display_name": "Waymo HQ", "lat": 37.416, "lng": -122.077}]
@@ -33,8 +46,11 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
3346
monkeypatch.setattr(main, "reverse_geocode", fake_reverse_geocode)
3447

3548
with TestClient(main.app) as client:
49+
headers = _auth_headers(client)
3650
res = client.get(
37-
"/api/reverse_geocode", params={"lat": 37.416, "lng": -122.077, "zoom": 18}
51+
"/api/reverse_geocode",
52+
params={"lat": 37.416, "lng": -122.077, "zoom": 18},
53+
headers=headers,
3854
)
3955
assert res.status_code == 200, res.text
4056
data = res.json()
@@ -51,12 +67,14 @@ def fake_geocode_address(query: str, *, limit: int = 5) -> list[GeocodeResult]:
5167
monkeypatch.setattr(main, "geocode_address", fake_geocode_address)
5268

5369
with TestClient(main.app) as client:
70+
headers = _auth_headers(client)
5471
res = client.post(
5572
"/api/targets",
5673
json={
5774
"name": "Workplace",
5875
"address": "690 E Middlefield Rd, Mountain View, CA 94043",
5976
},
77+
headers=headers,
6078
)
6179
assert res.status_code == 200, res.text
6280
data = res.json()
@@ -77,9 +95,11 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
7795
monkeypatch.setattr(main, "reverse_geocode", fake_reverse_geocode)
7896

7997
with TestClient(main.app) as client:
98+
headers = _auth_headers(client)
8099
res = client.post(
81100
"/api/targets",
82101
json={"name": "Workplace", "lat": 37.416, "lng": -122.077},
102+
headers=headers,
83103
)
84104
assert res.status_code == 200, res.text
85105
data = res.json()
@@ -90,6 +110,7 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
90110

91111
def test_target_rejects_both_address_and_coords() -> None:
92112
with TestClient(main.app) as client:
113+
headers = _auth_headers(client)
93114
res = client.post(
94115
"/api/targets",
95116
json={
@@ -98,6 +119,7 @@ def test_target_rejects_both_address_and_coords() -> None:
98119
"lat": 37.416,
99120
"lng": -122.077,
100121
},
122+
headers=headers,
101123
)
102124
assert res.status_code == 422, res.text
103125

@@ -109,7 +131,12 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
109131
monkeypatch.setattr(main, "reverse_geocode", fake_reverse_geocode)
110132

111133
with TestClient(main.app) as client:
112-
t = client.post("/api/targets", json={"name": "Workplace", "lat": 37.416, "lng": -122.077})
134+
headers = _auth_headers(client)
135+
t = client.post(
136+
"/api/targets",
137+
json={"name": "Workplace", "lat": 37.416, "lng": -122.077},
138+
headers=headers,
139+
)
113140
assert t.status_code == 200, t.text
114141
target_id = t.json()["id"]
115142

@@ -127,6 +154,7 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
127154
"location_text": "Mountain View, CA",
128155
"captured_at": "2026-01-30T12:00:00Z",
129156
},
157+
headers=headers,
130158
)
131159
assert l1.status_code == 200, l1.text
132160

@@ -141,10 +169,11 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
141169
"price_value": 2500,
142170
"captured_at": "2026-01-30T10:00:00Z",
143171
},
172+
headers=headers,
144173
)
145174
assert l2.status_code == 200, l2.text
146175

147-
res = client.get("/api/compare", params={"target_id": target_id})
176+
res = client.get("/api/compare", params={"target_id": target_id}, headers=headers)
148177
assert res.status_code == 200, res.text
149178
data = res.json()
150179

@@ -163,7 +192,8 @@ def fake_reverse_geocode(lat: float, lng: float, *, zoom: int = 10) -> ReverseGe
163192

164193
def test_listings_summary_empty_then_one() -> None:
165194
with TestClient(main.app) as client:
166-
empty = client.get("/api/listings/summary")
195+
headers = _auth_headers(client)
196+
empty = client.get("/api/listings/summary", headers=headers)
167197
assert empty.status_code == 200, empty.text
168198
assert empty.json() == {"count": 0, "latest_id": None, "latest_captured_at": None}
169199

@@ -177,11 +207,12 @@ def test_listings_summary_empty_then_one() -> None:
177207
"price_period": "unknown",
178208
"captured_at": "2026-01-30T10:00:00Z",
179209
},
210+
headers=headers,
180211
)
181212
assert created.status_code == 200, created.text
182213
listing_id = created.json()["id"]
183214

184-
after = client.get("/api/listings/summary")
215+
after = client.get("/api/listings/summary", headers=headers)
185216
assert after.status_code == 200, after.text
186217
data = after.json()
187218
assert data["count"] == 1
@@ -191,6 +222,7 @@ def test_listings_summary_empty_then_one() -> None:
191222

192223
def test_upsert_listing_accepts_blueground_source() -> None:
193224
with TestClient(main.app) as client:
225+
headers = _auth_headers(client)
194226
created = client.post(
195227
"/api/listings",
196228
json={
@@ -204,6 +236,7 @@ def test_upsert_listing_accepts_blueground_source() -> None:
204236
"lng": -122.104919,
205237
"location_text": "Mountain View, CA",
206238
},
239+
headers=headers,
207240
)
208241
assert created.status_code == 200, created.text
209242
data = created.json()

0 commit comments

Comments
 (0)