def METHOD_NAME(self):
    template = "desi_extract_spectra -i {} -p {} -w 7500,7600,0.75 -f {} -s 0 -n 5 --bundlesize 5 -o {} -m {}"
    cmd = template.format(self.imgfile, self.psffile, self.fibermapfile, self.outfile, self.outmodel)
    opts = cmd.split(" ")[1:]
    args = desispec.scripts.extract.parse(opts)
    desispec.scripts.extract.main(args)  #- gpu_specter
    self.assertTrue(os.path.exists(self.outfile))
    frame1 = desispec.io.read_frame(self.outfile)
    model1 = fits.getdata(self.outmodel)
    os.remove(self.outfile)
    os.remove(self.outmodel)
    desispec.scripts.extract.main_mpi(args, comm=None) #- specter
    self.assertTrue(os.path.exists(self.outfile))
    frame2 = desispec.io.read_frame(self.outfile)
    model2 = fits.getdata(self.outmodel)
    chi = (frame1.flux - frame2.flux) * np.sqrt(frame1.ivar)
    self.assertLess(np.max(np.abs(chi)), 0.05)
    #- specter and gpu_specter models of extracted pure noise don't agree
    #- TODO: add a test of modeling non-noise extration
    ### self.assertTrue(np.allclose(model1, model2, rtol=1e-15, atol=1e-15))
    ### self.assertTrue(np.allclose(model1, model2, rtol=1e-11, atol=1e-11))
    #- Check that units made it into the file
    self.assertEqual(frame1.meta['BUNIT'], 'electron/Angstrom')
    self.assertEqual(frame2.meta['BUNIT'], 'electron/Angstrom')