2018-05-26 02:57:27 -05:00
|
|
|
import time
|
2018-05-26 02:50:59 -05:00
|
|
|
import os
|
|
|
|
|
|
|
|
import requests
|
|
|
|
from html2text import html2text
|
|
|
|
|
|
|
|
|
|
|
|
def resp2plaintext(resp):
|
|
|
|
"""Convert the body of a requests reponse to plain text in order to make basic assertions."""
|
|
|
|
return html2text(resp.text)
|
|
|
|
|
|
|
|
|
|
|
|
def test_federation():
|
|
|
|
"""Ensure the homepage is accessible."""
|
|
|
|
resp = requests.get('http://localhost:5006')
|
|
|
|
resp.raise_for_status()
|
|
|
|
assert resp.status_code == 200
|
|
|
|
|
|
|
|
resp = requests.get('http://localhost:5007')
|
|
|
|
resp.raise_for_status()
|
|
|
|
assert resp.status_code == 200
|
|
|
|
|
|
|
|
# Keep one session per instance
|
|
|
|
|
|
|
|
# Login
|
|
|
|
session1 = requests.Session()
|
|
|
|
resp = session1.post('http://localhost:5006/login', data={'pass': 'hello'})
|
|
|
|
assert resp.status_code == 200
|
|
|
|
|
|
|
|
# Login
|
|
|
|
session2 = requests.Session()
|
|
|
|
resp = session2.post('http://localhost:5007/login', data={'pass': 'hello'})
|
|
|
|
assert resp.status_code == 200
|
|
|
|
|
|
|
|
# Instance1 follows instance2
|
|
|
|
resp = session1.get('http://localhost:5006/api/follow', params={'actor': 'http://instance2_web_1:5005'})
|
|
|
|
assert resp.status_code == 201
|
|
|
|
|
2018-05-26 02:57:27 -05:00
|
|
|
|
|
|
|
time.sleep(2)
|
2018-05-26 02:50:59 -05:00
|
|
|
resp = requests.get('http://localhost:5007/followers', headers={'Accept': 'application/activity+json'})
|
|
|
|
resp.raise_for_status()
|
|
|
|
|
2018-05-26 02:57:27 -05:00
|
|
|
print(resp.json())
|
|
|
|
|
2018-05-26 02:50:59 -05:00
|
|
|
assert resp.json()['first']['orderedItems'] == ['http://instance1_web_1:5005']
|