mirror of https://gitlab.com/bashrc2/epicyon
Test for extracting pgp key from message
parent
8e2799ea3d
commit
09a7b3200b
27
pgp.py
27
pgp.py
|
@ -225,3 +225,30 @@ def setPGPfingerprint(actorJson: {}, fingerprint: str) -> None:
|
||||||
"value": fingerprint
|
"value": fingerprint
|
||||||
}
|
}
|
||||||
actorJson['attachment'].append(newPGPfingerprint)
|
actorJson['attachment'].append(newPGPfingerprint)
|
||||||
|
|
||||||
|
|
||||||
|
def extractPGPPublicKey(content: str) -> str:
|
||||||
|
"""Returns the PGP key from the given text
|
||||||
|
"""
|
||||||
|
startBlock = '--BEGIN PGP PUBLIC KEY BLOCK--'
|
||||||
|
endBlock = '--END PGP PUBLIC KEY BLOCK--'
|
||||||
|
if not startBlock in content:
|
||||||
|
return None
|
||||||
|
if not endBlock in content:
|
||||||
|
return None
|
||||||
|
if '\n' not in content:
|
||||||
|
return None
|
||||||
|
linesList = content.split('\n')
|
||||||
|
extracting = False
|
||||||
|
publicKey = ''
|
||||||
|
for line in linesList:
|
||||||
|
if not extracting:
|
||||||
|
if startBlock in line:
|
||||||
|
extracting = True
|
||||||
|
else:
|
||||||
|
if endBlock in line:
|
||||||
|
publicKey += line
|
||||||
|
break
|
||||||
|
if extracting:
|
||||||
|
publicKey += line + '\n'
|
||||||
|
return publicKey
|
||||||
|
|
31
tests.py
31
tests.py
|
@ -102,6 +102,7 @@ from mastoapiv1 import getNicknameFromMastoApiV1Id
|
||||||
from webapp_post import prepareHtmlPostNickname
|
from webapp_post import prepareHtmlPostNickname
|
||||||
from webapp_utils import markdownToHtml
|
from webapp_utils import markdownToHtml
|
||||||
from speaker import speakerReplaceLinks
|
from speaker import speakerReplaceLinks
|
||||||
|
from pgp import extractPGPPublicKey
|
||||||
|
|
||||||
testServerAliceRunning = False
|
testServerAliceRunning = False
|
||||||
testServerBobRunning = False
|
testServerBobRunning = False
|
||||||
|
@ -3414,9 +3415,39 @@ def testEmojiImages():
|
||||||
assert os.path.isfile(emojiImageFilename)
|
assert os.path.isfile(emojiImageFilename)
|
||||||
|
|
||||||
|
|
||||||
|
def testExtractPGPPublicKey():
|
||||||
|
print('testExtractPGPPublicKey')
|
||||||
|
pubKey = \
|
||||||
|
'-----BEGIN PGP PUBLIC KEY BLOCK-----\n' + \
|
||||||
|
'mDMEWZBueBYJKwYBBAHaRw8BAQdAKx1t6wL0RTuU6/' + \
|
||||||
|
'IBjngMbVJJ3Wg/3UW73/PV\n' + \
|
||||||
|
'I47xKTS0IUJvYiBNb3R0cmFtIDxib2JAZnJlZWRvb' + \
|
||||||
|
'WJvbmUubmV0PoiQBBMWCAA4\n' + \
|
||||||
|
'FiEEmruCwAq/OfgmgEh9zCU2GR+nwz8FAlmQbngCG' + \
|
||||||
|
'wMFCwkIBwMFFQoJCAsFFgID\n' + \
|
||||||
|
'AQACHgECF4AACgkQzCU2GR+nwz/9sAD/YgsHnVszH' + \
|
||||||
|
'Nz1zlVc5EgY1ByDupiJpHj0\n' + \
|
||||||
|
'XsLYk3AbNRgBALn45RqgD4eWHpmOriH09H5Rc5V9i' + \
|
||||||
|
'N4+OiGUn2AzJ6oHuDgEWZBu\n' + \
|
||||||
|
'eBIKKwYBBAGXVQEFAQEHQPRBG2ZQJce475S3e0Dxe' + \
|
||||||
|
'b0Fz5WdEu2q3GYLo4QG+4Ry\n' + \
|
||||||
|
'AwEIB4h4BBgWCAAgFiEEmruCwAq/OfgmgEh9zCU2G' + \
|
||||||
|
'R+nwz8FAlmQbngCGwwACgkQ\n' + \
|
||||||
|
'zCU2GR+nwz+OswD+JOoyBku9FzuWoVoOevU2HH+bP' + \
|
||||||
|
'OMDgY2OLnST9ZSyHkMBAMcK\n' + \
|
||||||
|
'fnaZ2Wi050483Sj2RmQRpb99Dod7rVZTDtCqXk0J\n' + \
|
||||||
|
'=gv5G\n' + \
|
||||||
|
'-----END PGP PUBLIC KEY BLOCK-----'
|
||||||
|
testStr = "Some introduction\n\n" + pubKey + "\n\nSome message."
|
||||||
|
result = extractPGPPublicKey(testStr)
|
||||||
|
assert result
|
||||||
|
assert result == pubKey
|
||||||
|
|
||||||
|
|
||||||
def runAllTests():
|
def runAllTests():
|
||||||
print('Running tests...')
|
print('Running tests...')
|
||||||
testFunctions()
|
testFunctions()
|
||||||
|
testExtractPGPPublicKey()
|
||||||
testEmojiImages()
|
testEmojiImages()
|
||||||
testCamelCaseSplit()
|
testCamelCaseSplit()
|
||||||
testSpeakerReplaceLinks()
|
testSpeakerReplaceLinks()
|
||||||
|
|
Loading…
Reference in New Issue