Add a grandchild comment test.
This commit is contained in:
parent
fb77cbcc2b
commit
fe800dd9a5
2 changed files with 37 additions and 0 deletions
|
@ -52,3 +52,22 @@ def test_post_and_comment(accounts):
|
||||||
post_response = client.get(post.url)
|
post_response = client.get(post.url)
|
||||||
assert post_response.status_code == 200
|
assert post_response.status_code == 200
|
||||||
assert comment_body in post_response.text
|
assert comment_body in post_response.text
|
||||||
|
|
||||||
|
# yank the ID out again
|
||||||
|
comment = util.ItemData.from_json(submit_comment_response.text)
|
||||||
|
|
||||||
|
# post a comment grandchild!
|
||||||
|
grandcomment_body = util.generate_text()
|
||||||
|
submit_grandcomment_response = client.post("/comment", data={
|
||||||
|
"parent_fullname": comment.id_full,
|
||||||
|
"parent_level": 1,
|
||||||
|
"submission": comment.id,
|
||||||
|
"body": grandcomment_body,
|
||||||
|
"formkey": util.formkey_from(submit_post_response.text),
|
||||||
|
})
|
||||||
|
assert submit_grandcomment_response.status_code == 200
|
||||||
|
|
||||||
|
# verify it actually got posted
|
||||||
|
post_response = client.get(post.url)
|
||||||
|
assert post_response.status_code == 200
|
||||||
|
assert grandcomment_body in post_response.text
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
|
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
import json
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
import string
|
import string
|
||||||
|
@ -34,3 +35,20 @@ class ItemData:
|
||||||
result.id_full = f"t2_{result.id}"
|
result.id_full = f"t2_{result.id}"
|
||||||
result.url = url
|
result.url = url
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def from_json(text):
|
||||||
|
data = json.loads(text)
|
||||||
|
|
||||||
|
soup = BeautifulSoup(data["comment"], 'html.parser')
|
||||||
|
divid = soup.find("div")["id"]
|
||||||
|
|
||||||
|
match = re.search(r'comment-(\d+)', divid)
|
||||||
|
if match is None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
result = ItemData()
|
||||||
|
result.id = match.group(1) # this really should get yanked out of the JS, not the HTML
|
||||||
|
result.id_full = f"t3_{result.id}"
|
||||||
|
result.url = f"/comment/{result.id}"
|
||||||
|
return result
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue