44import sys
55import time
66import random
7+ import tempfile
8+
9+ from utils import dummy_loa_document
710
811sys .path .insert (0 , os .path .abspath ('.' ))
912sys .path .insert (0 , os .path .abspath ('..' ))
@@ -68,31 +71,38 @@ def test_addressing_loa_documents():
6871 """ test_addressing_loa_documents """
6972 loa_documents = cf .accounts .addressing .loa_documents (account_id )
7073 assert isinstance (loa_documents , list )
71- for loa_document in loa_documents :
74+ for loa_document in loa_documents [ - 4 :] :
7275 assert isinstance (loa_document , dict )
7376 assert 'id' in loa_document
77+ assert 'created' in loa_document
7478 assert 'filename' in loa_document
7579 assert 'verified' in loa_document
7680 assert 'size_bytes' in loa_document
77- print ('%s: filename=%s size_bytes=%d verified=%s' % (
81+ print ('%s: %s filename=%s size_bytes=%d verified=%s' % (
7882 loa_document ['id' ],
83+ loa_document ['created' ],
7984 loa_document ['filename' ],
8085 loa_document ['size_bytes' ],
8186 loa_document ['verified' ]
8287 ), file = sys .stderr )
8388
8489def test_addressing_loa_documents_upload (filename = None ):
8590 """ test_addressing_loa_documents_upload """
86- if not filename :
87- filename = 'CloudFlare/tests/dummy_loa_document.pdf'
88- try :
89- pdf_file = open (filename , 'rb' )
90- except (FileNotFoundError , IsADirectoryError , PermissionError ) as e :
91- print ('%s: %s' % (filename , e ), file = sys .stderr )
92- assert False
91+ if filename :
92+ # use provided file
93+ try :
94+ pdf_file = open (filename , 'rb' )
95+ except (FileNotFoundError , IsADirectoryError , PermissionError ) as e :
96+ print ('%s: %s' % (filename , e ), file = sys .stderr )
97+ assert False
98+ else :
99+ # create a dummy temporary file
100+ pdf_file = tempfile .NamedTemporaryFile (mode = 'w+b' , prefix = 'dummy-loa-document-' , suffix = '.pdf' , delete = False )
101+ pdf_file .write (dummy_loa_document .encode ())
102+ pdf_file .seek (0 )
93103
94104 size_bytes = os .fstat (pdf_file .fileno ()).st_size
95- print ('filename=%s size_bytes=%d' % (filename , size_bytes ), file = sys .stderr )
105+ print ('filename=%s size_bytes=%d' % (pdf_file . name , size_bytes ), file = sys .stderr )
96106
97107 files = {'loa_document' : pdf_file }
98108 try :
@@ -115,6 +125,8 @@ def test_addressing_loa_documents_upload(filename=None):
115125
116126def ispdf (s ):
117127 """ ispdf """
128+ if isinstance (s , str ):
129+ s = s .encode ()
118130 idx = 0
119131 while s [idx ] in [b'\r ' , b'\n ' ]:
120132 idx += 1
@@ -129,21 +141,24 @@ def ispdf(s):
129141 if b'%PDF-' in s [0 :1024 ]:
130142 return True
131143 # give up!
144+ print ('ispdf: failing with content="%s..."' % (s [0 :50 ]), file = sys .stderr )
132145 return False
133146
134147def test_addressing_loa_documents_download ():
135148 """ test_addressing_loa_documents_download """
136149 loa_documents = cf .accounts .addressing .loa_documents (account_id )
137150 assert isinstance (loa_documents , list )
138- for loa_document in loa_documents :
151+ for loa_document in loa_documents [ - 4 :] :
139152 assert isinstance (loa_document , dict )
140153 assert 'id' in loa_document
154+ assert 'created' in loa_document
141155 assert 'filename' in loa_document
142156 assert 'verified' in loa_document
143157 assert 'size_bytes' in loa_document
144158 assert isinstance (loa_document ['size_bytes' ], int )
145- print ('%s: filename=%s size_bytes=%d verified=%s' % (
159+ print ('%s: %s filename=%s size_bytes=%d verified=%s' % (
146160 loa_document ['id' ],
161+ loa_document ['created' ],
147162 loa_document ['filename' ],
148163 loa_document ['size_bytes' ],
149164 loa_document ['verified' ]
@@ -152,7 +167,6 @@ def test_addressing_loa_documents_download():
152167 size_bytes = loa_document ['size_bytes' ]
153168 pdf_content = cf .accounts .addressing .loa_documents .download (account_id , loa_document_identifier )
154169 assert size_bytes == len (pdf_content )
155- print ('%s: %s' % (loa_document_identifier , pdf_content [0 :10 ]))
156170 assert ispdf (pdf_content )
157171
158172if __name__ == '__main__' :
0 commit comments