Пример #1
0
 def setUp(self):
     self.t = IsolatedTypesetter()
     self.t.clean_up_tmp_dir()
     self.setup_logger()
Пример #2
0
class Test_IsolatedOutput(Harness):
    def setUp(self):
        self.t = IsolatedTypesetter()
        self.t.clean_up_tmp_dir()
        self.setup_logger()

    def tearDown(self):
        self.t.logger.removeHandler(self.handler)
        self.logfile.close()
        self.t.rm_tmp_dir()
        try:
            pdf_name = self.t.current_pdf_name
        except AttributeError:
            pass
        else:
            try:
                os.remove(pdf_name)
            except OSError:
                pass

## 	def mk_tmp(self, content):
## 		import tempfile
## 		f = tempfile.NamedTemporaryFile(suffix='.tex', dir=tmp_dir)
## 		f.write(content)
## 		return f
##

    def test_simple(self):
        self.typeset('simple')
        self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)
        self.assert_contains('Typeset', -1)
        self.assert_contains('This is pdfTeX', regexp=True)
        self.assert_contains(colours['success'])

    def test_error(self):
        try:
            self.typeset('error')
        except LaTeXError:
            pass
        self.assert_contains(
            r'%sUndefined control sequence \nonexistingmacro.' %
            colours['error'])

    def test_non_exist(self):
        self.typeset('nonexistent')
        self.assert_contains(colours['error'])
        self.assert_contains('File %s/latex/nonexistent.tex not found' %
                             test_dir)

    def test_wrong_ext(self):
        self.typeset('simple.xxx')
        self.assert_contains('Wrong extension for %s/latex/simple.xxx' %
                             test_dir)
        self.assert_contains(colours['error'])

    def test_trailing_dot(self):
        self.typeset('simple.')
        self.assert_success()

    def test_ref(self):
        self.typeset('ref')
        self.assert_contains("undefined")
        self.assert_contains("nonexistent")
        self.assert_contains('There were undefined references.', -2)
        ## 		self.assert_contains(ref_warning, -4)
        self.assert_contains(colours['error'], -2)

    @unittest.skip('Rerun is broken')
    def test_rerun(self):
        try:
            os.remove(os.path.join(test_dir, 'latex', 'rerun.aux'))
        except OSError:
            pass
        self.typeset('rerun')
        self.assert_contains('Rerun')
        self.assert_contains('[2] pdflatex ')
        self.assert_contains('\n%sLabel' % colours['warning'])
        self.assert_success()

    def test_twice_label(self):
        self.typeset('twicelabel')
        self.assert_contains(colours['warning'], -3)
        self.assert_contains("Label `label' multiply defined", -3)
        self.assert_contains("There were multiply-defined labels", -2)
        self.assert_contains(colours['error'], -2)

    def test_cite(self):
        self.typeset('cite')
        self.assert_contains('citation')
        self.assert_contains(colours['error'])


## 	def test_no_tmp_dif(self):
## 		self.t.typeset_file('simple')

    def test_binary(self):
        self.typeset('simple', with_binary=True)
        self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)

    def test_box(self):
        self.t.suppress_box_warning = False
        self.typeset('box')
        self.assert_contains('%sOverfull' % colours['box'])
        self.assert_contains('p.1')

    def test_nobox(self):
        self.typeset('box')
        self.assertEqual(self.output.find('Overfull'), -1)

    def test_pdfsync(self):
        """
		The auxiliary file pdfsync was moved to the current directory.
		"""
        aux = os.path.join(test_dir, 'latex', 'pdfsync.pdfsync')
        try:
            os.remove(aux)
        except OSError:
            pass
        self.typeset('pdfsync')
        self.assertTrue(os.path.exists(aux))

    def test_pdfrewritten(self):
        """
		The pdf file is not moved, only rewritten in the same file.
		"""
        self.typeset('simple')
        inode = os.stat('simple.pdf').st_ino
        self.typeset('simple')
        new_inode = os.stat('simple.pdf').st_ino
        self.assertEqual(inode, new_inode)

    @classmethod
    def exists(cls, file_name):
        return os.path.exists(os.path.join(test_dir, 'latex', file_name))

    def test_no_move_pdf_curdir(self):
        self.t.move_pdf_to_curdir = False
        self.typeset('simple')
        self.assertTrue(self.exists('simple.pdf'))

    def test_move_pdf_curdir(self):
        self.t.move_pdf_to_curdir = True  # default
        self.typeset('simple')
        self.assertTrue(os.path.exists('simple.pdf'))

    def test_halt_on_error(self):
        self.t.halt_on_errors = True
        self.t.move_pdf_to_curdir = False
        try:
            self.typeset('continue')
        except LaTeXError:
            pass
        self.assertFalse(self.exists('continue.pdf'))

    def test_continue(self):
        self.t.halt_on_errors = False
        self.t.move_pdf_to_curdir = False
        self.typeset('continue')
        print os.path.exists('./.latex_tmp/continue.pdf')
        print os.path.exists('./latex/continue.pdf')
        self.assertTrue(self.exists('continue.pdf'))

    def test_nostyle(self):
        self.t.colour = False
        self.setup_logger()
        self.typeset('simple')
        self.assert_contains('^Typesetting', regexp=True)

    def test_xetex(self):
        self.t.xetex = True
        self.setup_logger()
        self.typeset('simple')
        self.assert_contains('XeTeX')
Пример #3
0
class Test_IsolatedOutput(Harness):
	def setUp(self):
		self.t = IsolatedTypesetter()
		self.t.clean_up_tmp_dir()
		self.setup_logger()

	def tearDown(self):
		self.t.logger.removeHandler(self.handler)
		self.logfile.close()
		self.t.rm_tmp_dir()
		try:
			pdf_name = self.t.current_pdf_name
		except AttributeError:
			pass
		else:
			try:
				os.remove(pdf_name)
			except OSError:
				pass

## 	def mk_tmp(self, content):
## 		import tempfile
## 		f = tempfile.NamedTemporaryFile(suffix='.tex', dir=tmp_dir)
## 		f.write(content)
## 		return f
## 	

	def test_simple(self):
		self.typeset('simple')
		self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)
		self.assert_contains('Typeset', -1)
		self.assert_contains('This is pdfTeX', regexp=True)
		self.assert_contains(colours['success'])

	def test_error(self):
		try:
			self.typeset('error')
		except LaTeXError:
			pass
		self.assert_contains(r'%sUndefined control sequence \nonexistingmacro.' % colours['error'])

	def test_non_exist(self):
		self.typeset('nonexistent')
		self.assert_contains(colours['error'])
		self.assert_contains('File %s/latex/nonexistent.tex not found' % test_dir)

	def test_wrong_ext(self):
		self.typeset('simple.xxx')
		self.assert_contains('Wrong extension for %s/latex/simple.xxx' % test_dir)
		self.assert_contains(colours['error'])

	def test_trailing_dot(self):
		self.typeset('simple.')
		self.assert_success()

	def test_ref(self):
		self.typeset('ref')
		self.assert_contains("undefined")
		self.assert_contains("nonexistent")
		self.assert_contains('There were undefined references.', -2)
## 		self.assert_contains(ref_warning, -4)
		self.assert_contains(colours['error'], -2)

	@unittest.skip('Rerun is broken')
	def test_rerun(self):
		try:
			os.remove(os.path.join(test_dir, 'latex','rerun.aux'))
		except OSError:
			pass
		self.typeset('rerun')
		self.assert_contains('Rerun')
		self.assert_contains('[2] pdflatex ')
		self.assert_contains('\n%sLabel' % colours['warning'])
		self.assert_success()

	def test_twice_label(self):
		self.typeset('twicelabel')
		self.assert_contains(colours['warning'], -3)
		self.assert_contains("Label `label' multiply defined", -3)
		self.assert_contains("There were multiply-defined labels", -2)
		self.assert_contains(colours['error'], -2)

	def test_cite(self):
		self.typeset('cite')
		self.assert_contains('citation')
		self.assert_contains(colours['error'])
## 	def test_no_tmp_dif(self):
## 		self.t.typeset_file('simple')

	def test_binary(self):
		self.typeset('simple', with_binary=True)
		self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)

	def test_box(self):
		self.t.suppress_box_warning = False
		self.typeset('box')
		self.assert_contains('%sOverfull' % colours['box'])
		self.assert_contains('p.1')

	def test_nobox(self):
		self.typeset('box')
		self.assertEqual(self.output.find('Overfull'), -1)

	def test_pdfsync(self):
		"""
		The auxiliary file pdfsync was moved to the current directory.
		"""
		aux = os.path.join(test_dir, 'latex','pdfsync.pdfsync')
		try:
			os.remove(aux)
		except OSError:
			pass
		self.typeset('pdfsync')
		self.assertTrue(os.path.exists(aux))

	def test_pdfrewritten(self):
		"""
		The pdf file is not moved, only rewritten in the same file.
		"""
		self.typeset('simple')
		inode = os.stat('simple.pdf').st_ino
		self.typeset('simple')
		new_inode = os.stat('simple.pdf').st_ino
		self.assertEqual(inode, new_inode)

	@classmethod
	def exists(cls, file_name):
		return os.path.exists(os.path.join(test_dir, 'latex', file_name))

	def test_no_move_pdf_curdir(self):
		self.t.move_pdf_to_curdir = False
		self.typeset('simple')
		self.assertTrue(self.exists('simple.pdf'))

	def test_move_pdf_curdir(self):
		self.t.move_pdf_to_curdir = True # default
		self.typeset('simple')
		self.assertTrue(os.path.exists('simple.pdf'))

	def test_halt_on_error(self):
		self.t.halt_on_errors = True
		self.t.move_pdf_to_curdir = False
		try:
			self.typeset('continue')
		except LaTeXError:
			pass
		self.assertFalse(self.exists('continue.pdf'))

	def test_continue(self):
		self.t.halt_on_errors = False
		self.t.move_pdf_to_curdir = False
		self.typeset('continue')
		print os.path.exists('./.latex_tmp/continue.pdf')
		print os.path.exists('./latex/continue.pdf')
		self.assertTrue(self.exists('continue.pdf'))

	def test_nostyle(self):
		self.t.colour = False
		self.setup_logger()
		self.typeset('simple')
		self.assert_contains('^Typesetting', regexp=True)

	def test_xetex(self):
		self.t.xetex = True
		self.setup_logger()
		self.typeset('simple')
		self.assert_contains('XeTeX')
Пример #4
0
	def setUp(self):
		self.t = IsolatedTypesetter()
		self.t.clean_up_tmp_dir()
		self.setup_logger()
Пример #5
0
class Test_IsolatedOutput(Harness):
	"""
	Test involving LaTeX running.
	"""
	def setUp(self):
		self.t = IsolatedTypesetter()
		self.t.clean_up_tmp_dir()
		self.setup_logger()

	def tearDown(self):
		self.t.logger.removeHandler(self.handler)
		self.logfile.close()
		self.t.rm_tmp_dir()
		try:
			pdf_name = self.t.current_pdf_name
		except AttributeError:
			pass
		else:
			try:
				os.remove(pdf_name)
			except OSError:
				pass

## 	def mk_tmp(self, content):
## 		import tempfile
## 		f = tempfile.NamedTemporaryFile(suffix='.tex', dir=tmp_dir)
## 		f.write(content)
## 		return f
## 	

	def test_simple(self):
		self.typeset('simple')
		self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)
		self.assert_contains('Typeset', -1)
		self.assert_contains('This is pdfTeX', regexp=True)
		self.assert_contains(colours['success'])

	def test_trailing_dot(self):
		self.typeset('simple.')
		self.assert_success()


	@unittest.skip('Rerun is broken')
	def test_rerun(self):
		try:
			os.remove(os.path.join(test_dir, 'latex','rerun.aux'))
		except OSError:
			pass
		self.typeset('rerun')
		self.assert_contains('Rerun')
		self.assert_contains('[2] pdflatex ')
		self.assert_contains('\n%sLabel' % colours['warning'])
		self.assert_success()

	def test_binary(self):
		self.typeset('simple', with_binary=True)
		self.assert_contains('pdflatex %s/latex/simple.tex' % test_dir, 0)

	def test_pdfsync(self):
		"""
		The auxiliary file pdfsync was moved to the current directory.
		"""
		aux = os.path.join(test_dir, 'latex','pdfsync.pdfsync')
		try:
			os.remove(aux)
		except OSError:
			pass
		self.typeset('pdfsync')
		self.assertTrue(os.path.exists(aux))

	def test_pdfrewritten(self):
		"""
		The pdf file is not moved, only rewritten in the same file.
		"""
		self.typeset('simple')
		inode = os.stat('simple.pdf').st_ino
		self.typeset('simple')
		new_inode = os.stat('simple.pdf').st_ino
		self.assertEqual(inode, new_inode)

	@classmethod
	def exists(cls, file_name):
		return os.path.exists(os.path.join(test_dir, 'latex', file_name))

	def test_no_move_pdf_curdir(self):
		self.t.move_pdf_to_curdir = False
		self.typeset('simple')
		self.assertTrue(self.exists('simple.pdf'))

	def test_move_pdf_curdir(self):
		self.t.move_pdf_to_curdir = True # default
		self.typeset('simple')
		self.assertTrue(os.path.exists('simple.pdf'))

	def test_halt_on_error(self):
		self.t.halt_on_errors = True
		self.t.move_pdf_to_curdir = False
		try:
			self.typeset('continue')
		except LaTeXError:
			pass
		self.assertFalse(self.exists('continue.pdf'))

	def test_continue(self):
		self.t.halt_on_errors = False
		self.t.move_pdf_to_curdir = False
		self.typeset('continue')
		print os.path.exists('./.latex_tmp/continue.pdf')
		print os.path.exists('./latex/continue.pdf')
		self.assertTrue(self.exists('continue.pdf'))

	def test_xetex(self):
		self.t.xetex = True
		self.setup_logger()
		self.typeset('simple')
		self.assert_contains('XeTeX')