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