base directory in tests

master
Bob Mottram 2019-07-01 11:25:03 +01:00
parent 006cc3bbb3
commit 888e4831f2
4 changed files with 21 additions and 11 deletions

View File

@ -109,13 +109,13 @@ class PubServer(BaseHTTPRequestHandler):
self.wfile.write(json.dumps(outboxFeed).encode('utf-8')) self.wfile.write(json.dumps(outboxFeed).encode('utf-8'))
self.GETbusy=False self.GETbusy=False
return return
following=getFollowingFeed(self.server.domain,self.server.port,self.path,self.server.https,followsPerPage) following=getFollowingFeed(self.server.baseDir,self.server.domain,self.server.port,self.path,self.server.https,followsPerPage)
if following: if following:
self._set_headers('application/json') self._set_headers('application/json')
self.wfile.write(json.dumps(following).encode('utf-8')) self.wfile.write(json.dumps(following).encode('utf-8'))
self.GETbusy=False self.GETbusy=False
return return
followers=getFollowingFeed(self.server.domain,self.server.port,self.path,self.server.https,followsPerPage,'followers') followers=getFollowingFeed(self.server.baseDir,self.server.domain,self.server.port,self.path,self.server.https,followsPerPage,'followers')
if followers: if followers:
self._set_headers('application/json') self._set_headers('application/json')
self.wfile.write(json.dumps(followers).encode('utf-8')) self.wfile.write(json.dumps(followers).encode('utf-8'))

View File

@ -16,6 +16,7 @@ from posts import deleteAllPosts
from posts import createOutbox from posts import createOutbox
from posts import archivePosts from posts import archivePosts
from posts import sendPost from posts import sendPost
from posts import getPersonBox
from session import createSession from session import createSession
from session import getJson from session import getJson
import json import json
@ -82,7 +83,7 @@ setBio(baseDir,username,domain,'Some personal info')
#outboxJson=createOutbox(baseDir,username,domain,port,https,2,True,None) #outboxJson=createOutbox(baseDir,username,domain,port,https,2,True,None)
#pprint(outboxJson) #pprint(outboxJson)
#testPostMessageBetweenServers() testPostMessageBetweenServers()
#runDaemon(domain,port,https,federationList,useTor) #runDaemon(domain,port,https,federationList,useTor)
#testHttpsig() #testHttpsig()
@ -96,6 +97,11 @@ handle="https://mastodon.social/@Gargron"
wfRequest = webfingerHandle(session,handle,True) wfRequest = webfingerHandle(session,handle,True)
if not wfRequest: if not wfRequest:
sys.exit() sys.exit()
personJson,pubKeyId,pubKey,personId=getPersonBox(session,wfRequest)
pprint(personJson)
sys.exit()
wfResult = json.dumps(wfRequest, indent=4, sort_keys=True) wfResult = json.dumps(wfRequest, indent=4, sort_keys=True)
print(str(wfResult)) print(str(wfResult))
sys.exit() sys.exit()

View File

@ -82,7 +82,7 @@ def parseUserFeed(session,feedUrl,asHeader) -> None:
for item in parseUserFeed(session,nextUrl,asHeader): for item in parseUserFeed(session,nextUrl,asHeader):
yield item yield item
def getPersonBox(session,wfRequest,boxName='inbox'): def getPersonBox(session,wfRequest,boxName='inbox') -> (str,str,str,str):
asHeader = {'Accept': 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'} asHeader = {'Accept': 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"'}
personUrl = getUserUrl(wfRequest) personUrl = getUserUrl(wfRequest)
if not personUrl: if not personUrl:
@ -90,23 +90,27 @@ def getPersonBox(session,wfRequest,boxName='inbox'):
personJson = getPersonFromCache(personUrl) personJson = getPersonFromCache(personUrl)
if not personJson: if not personJson:
personJson = getJson(session,personUrl,asHeader,None) personJson = getJson(session,personUrl,asHeader,None)
pprint(personJson)
if not personJson.get(boxName): if not personJson.get(boxName):
return personPosts return personPosts
personId=None personId=None
if personJson.get('id'): if personJson.get('id'):
personId=personJson['id'] personId=personJson['id']
pubKeyId=None
pubKey=None pubKey=None
if personJson.get('publicKey'): if personJson.get('publicKey'):
if personJson['publicKey'].get('id'):
pubKeyId=personJson['publicKey']['id']
if personJson['publicKey'].get('publicKeyPem'): if personJson['publicKey'].get('publicKeyPem'):
pubKey=personJson['publicKey']['publicKeyPem'] pubKey=personJson['publicKey']['publicKeyPem']
storePersonInCache(personUrl,personJson) storePersonInCache(personUrl,personJson)
return personJson[boxName],pubKey,personId return personJson[boxName],pubKeyId,pubKey,personId
def getUserPosts(session,wfRequest,maxPosts,maxMentions,maxEmoji,maxAttachments,federationList) -> {}: def getUserPosts(session,wfRequest,maxPosts,maxMentions,maxEmoji,maxAttachments,federationList) -> {}:
userPosts={} userPosts={}
feedUrl,pubKey,personId = getPersonBox(session,wfRequest,'outbox') feedUrl,pubKeyId,pubKey,personId = getPersonBox(session,wfRequest,'outbox')
if not feedUrl: if not feedUrl:
return userPosts return userPosts
@ -356,7 +360,7 @@ def sendPost(session,baseDir,username: str, domain: str, port: int, toUsername:
return 1 return 1
# get the actor inbox for the To handle # get the actor inbox for the To handle
inboxUrl,pubKey,toPersonId = getPersonBox(session,wfRequest,'inbox') inboxUrl,pubKeyId,pubKey,toPersonId = getPersonBox(session,wfRequest,'inbox')
if not inboxUrl: if not inboxUrl:
return 2 return 2
if not pubKey: if not pubKey:

View File

@ -106,8 +106,8 @@ def createServerAlice(path: str,port: int):
useTor=False useTor=False
privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(path,username,domain,port,https,True) privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(path,username,domain,port,https,True)
deleteAllPosts(username,domain,path) deleteAllPosts(username,domain,path)
followPerson(username,domain,'bob','127.0.0.1:61936',federationList) followPerson(path,username,domain,'bob','127.0.0.1:61936',federationList)
followerOfPerson(username,domain,'bob','127.0.0.1:61936',federationList) followerOfPerson(path,username,domain,'bob','127.0.0.1:61936',federationList)
createPublicPost(username, domain, https, "No wise fish would go anywhere without a porpoise", False, True) createPublicPost(username, domain, https, "No wise fish would go anywhere without a porpoise", False, True)
createPublicPost(username, domain, https, "Curiouser and curiouser!", False, True) createPublicPost(username, domain, https, "Curiouser and curiouser!", False, True)
createPublicPost(username, domain, https, "In the gardens of memory, in the palace of dreams, that is where you and I shall meet", False, True) createPublicPost(username, domain, https, "In the gardens of memory, in the palace of dreams, that is where you and I shall meet", False, True)
@ -129,8 +129,8 @@ def createServerBob(path: str,port: int):
useTor=False useTor=False
privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(path,username,domain,port,https,True) privateKeyPem,publicKeyPem,person,wfEndpoint=createPerson(path,username,domain,port,https,True)
deleteAllPosts(username,domain,path) deleteAllPosts(username,domain,path)
followPerson(username,domain,'alice','127.0.0.1:61935',federationList) followPerson(path,username,domain,'alice','127.0.0.1:61935',federationList)
followerOfPerson(username,domain,'alice','127.0.0.1:61935',federationList) followerOfPerson(path,username,domain,'alice','127.0.0.1:61935',federationList)
createPublicPost(username, domain, https, "It's your life, live it your way.", False, True) createPublicPost(username, domain, https, "It's your life, live it your way.", False, True)
createPublicPost(username, domain, https, "One of the things I've realised is that I am very simple", False, True) createPublicPost(username, domain, https, "One of the things I've realised is that I am very simple", False, True)
createPublicPost(username, domain, https, "Quantum physics is a bit of a passion of mine", False, True) createPublicPost(username, domain, https, "Quantum physics is a bit of a passion of mine", False, True)