forked from retoor/devplacepy
ticket #150 attempt 1
This commit is contained in:
@@ -716,3 +716,69 @@ def test_short_post_content_rejected(app_server):
|
||||
allow_redirects=False,
|
||||
)
|
||||
assert "/posts/" not in (r.headers.get("location") or "")
|
||||
|
||||
|
||||
def _new_project(session):
|
||||
return session.post(
|
||||
f"{BASE_URL}/projects/create",
|
||||
headers=JSON_audit_log,
|
||||
data={
|
||||
"title": _unique("aupj"),
|
||||
"description": "project for linked post test",
|
||||
"project_type": "software",
|
||||
"status": "In Development",
|
||||
"platforms": "",
|
||||
},
|
||||
).json()["data"]
|
||||
|
||||
|
||||
def test_post_detail_includes_project_when_linked(app_server):
|
||||
s, _ = _member()
|
||||
project = _new_project(s)
|
||||
project_uid = project["uid"]
|
||||
created = s.post(
|
||||
f"{BASE_URL}/posts/create",
|
||||
headers=JSON_audit_log,
|
||||
data={
|
||||
"title": _unique("aupjpost"),
|
||||
"content": "this post is linked to a project",
|
||||
"topic": "devlog",
|
||||
"project_uid": project_uid,
|
||||
},
|
||||
).json()["data"]
|
||||
slug = created["slug"]
|
||||
detail = s.get(
|
||||
f"{BASE_URL}/posts/{slug}",
|
||||
headers=JSON_audit_log,
|
||||
).json()
|
||||
assert detail.get("project_link") is not None, "linked project must appear in post detail"
|
||||
assert detail["project_link"]["uid"] == project_uid
|
||||
assert detail["project_link"]["name"] is not None
|
||||
assert "/projects/" in detail["project_link"]["url"]
|
||||
|
||||
|
||||
def test_feed_includes_project_when_linked(app_server):
|
||||
s, _ = _member()
|
||||
project = _new_project(s)
|
||||
project_uid = project["uid"]
|
||||
s.post(
|
||||
f"{BASE_URL}/posts/create",
|
||||
headers=JSON_audit_log,
|
||||
data={
|
||||
"title": _unique("aupjfeed"),
|
||||
"content": "this post appears in feed with a project link",
|
||||
"topic": "devlog",
|
||||
"project_uid": project_uid,
|
||||
},
|
||||
)
|
||||
feed = s.get(
|
||||
f"{BASE_URL}/feed",
|
||||
headers=JSON_audit_log,
|
||||
).json()
|
||||
found = False
|
||||
for item in feed["posts"]:
|
||||
if item.get("project_link") is not None and item["project_link"]["uid"] == project_uid:
|
||||
found = True
|
||||
assert "/projects/" in item["project_link"]["url"]
|
||||
break
|
||||
assert found, "feed must include project info for linked posts"
|
||||
|
||||
Reference in New Issue
Block a user