comparison carton.py @ 24:bb19d3dac4c5

fix tests
author Jeff Hammel <jhammel@mozilla.com>
date Sun, 10 Jul 2011 18:17:54 -0700
parents 987086aad234
children e6ee0410ceef
comparison
equal deleted inserted replaced
23:987086aad234 24:bb19d3dac4c5
184 # local directory or tarball 184 # local directory or tarball
185 assert os.path.exists(source), "%s does not exist" % source 185 assert os.path.exists(source), "%s does not exist" % source
186 186
187 # package up the source if applicable 187 # package up the source if applicable
188 if options.package and os.path.exists(os.path.join(source, 'setup.py')): 188 if options.package and os.path.exists(os.path.join(source, 'setup.py')):
189 call([sys.executable, 'setup.py', 'sdist'], cwd=source) 189
190 # create a .tar.gz package
191 call([sys.executable, 'setup.py', 'sdist'], cwd=source, stdout=subprocess.PIPE)
190 dist_dir = os.path.join(source, 'dist') 192 dist_dir = os.path.join(source, 'dist')
191 assert os.path.isdir(dist_dir), "dist directory not created in %s" % source 193 assert os.path.isdir(dist_dir), "dist directory not created in %s" % source
192 tarfiles = [i for i in os.listdir(dist_dir) 194 tarfiles = [i for i in os.listdir(dist_dir)
193 if i.endswith('.tar.gz')] 195 if i.endswith('.tar.gz')]
194 assert tarfiles, "no .tar.gz files found in %s" % dist_dir 196 assert tarfiles, "no .tar.gz files found in %s" % dist_dir
197
198 # use the last modified tarball
195 def last_modified(filename): 199 def last_modified(filename):
196 return os.path.getmtime(os.path.join(dist_dir, filename)) 200 return os.path.getmtime(os.path.join(dist_dir, filename))
197 tarfiles.sort(key=last_modified) 201 tarfiles.sort(key=last_modified)
198 source = os.path.join(dist_dir, tarfiles[-1]) 202 source = os.path.join(dist_dir, tarfiles[-1])
199 203
200 if (not os.path.isdir(source)) and tarfile.is_tarfile(source): 204 if (not os.path.isdir(source)) and tarfile.is_tarfile(source):
201 # check for a tarball 205 # check for a tarball
202 buffer = file(source).read() 206 buffer = file(source).read()
203 else: 207 else:
208 # add other sources (files and directories) to the archive
204 source_buffer = StringIO() 209 source_buffer = StringIO()
205 source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer) 210 source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer)
206 source_tar.add(source, arcname=os.path.basename(source)) 211 source_tar.add(source, arcname=os.path.basename(source))
207 source_tar.close() 212 source_tar.close()
208 buffer = source_buffer.getvalue() 213 buffer = source_buffer.getvalue()