def test_use_package_conflicting_order(self): # Using use_package with conflicting orders should raise exceptions layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') # insert_after itself with self.assertRaises(ConflictingUsePackageOrder) as cm: layout.use_package('foo', insert_after='foo') self.assertEqual( str(cm.exception), 'Cannot insert "foo" after itself (insert_after="foo").') self.assertEqual(layout.get_packages_latex(), '') # recursive conflicting order layout.use_package('baz', insert_after='foo') layout.use_package('foo', insert_after='bar') with self.assertRaises(ConflictingUsePackageOrder) as cm: layout.use_package('bar', insert_after='baz') self.assertEqual( str(cm.exception), 'Conflicting order: bar after baz after foo after bar.')
def test_use_babel_with_multiple_languages(self): layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_babel(['british', 'french', 'latin']) self.assertEqual(layout.get_packages_latex(), '\\usepackage[latin, french, british]{babel}\n')
def test_use_babel_with_particular_option(self): layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_babel('british') self.assertEqual(layout.get_packages_latex(), '\\usepackage[british]{babel}\n')
def test_use_babel_with_linguaplone(self): context = self.mocker.mock() self.expect(context.getLanguage).result(lambda: 'pt-br') self.replay() layout = BaseLayout(context, self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_babel() self.assertEqual(layout.get_packages_latex(), '\\usepackage[brazilian]{babel}\n')
def test_use_babel_with_unsupported_language(self): ltool = self.mocker.mock() self.mock_tool(ltool, 'portal_languages') self.expect(ltool.getPreferredLanguage()).result('unknown') self.replay() layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_babel() self.assertEqual(layout.get_packages_latex(), '\\usepackage{babel}\n')
def test_use_babel_passes_keyword_args(self): layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_package('babel', options='foo') self.assertEqual(layout.get_packages_latex(), '\\usepackage[foo]{babel}\n') layout.use_babel('bar') self.assertEqual(layout.get_packages_latex(), '\\usepackage[bar]{babel}\n') layout.use_babel('baz', append_options=True) self.assertEqual(layout.get_packages_latex(), '\\usepackage[bar, baz]{babel}\n')
def test_use_package_order(self): # use_package in combination with insert_after # should also work when the "other" package is not yet registered. layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') # test insert_after layout.use_package('dcolumn', insert_after='color') layout.use_package('color') layout.use_package('colortbl') self.assertEqual( layout.get_packages_latex(), '\\usepackage{color}\n' '\\usepackage{dcolumn}\n' '\\usepackage{colortbl}\n') layout.remove_package('*') self.assertEqual(layout.get_packages_latex(), '')
def test_remove_package(self): layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_package('color') layout.use_package('colortbl') layout.use_package('dcolumn') self.assertEqual( layout.get_packages_latex(), '\\usepackage{color}\n' '\\usepackage{colortbl}\n' '\\usepackage{dcolumn}\n') layout.remove_package('color') self.assertEqual( layout.get_packages_latex(), '\\usepackage{colortbl}\n' '\\usepackage{dcolumn}\n') layout.remove_package('*') self.assertEqual(layout.get_packages_latex(), '')
def test_use_package(self): layout = BaseLayout(self.create_dummy(), self.create_dummy(), self.builder) self.assertEqual(layout.get_packages_latex(), '') layout.use_package('inputenc', 'utf8') self.assertEqual(layout.get_packages_latex(), '\\usepackage[utf8]{inputenc}\n') layout.use_package(u'titlesec', 'noindentafter', insert_after='inputenc') self.assertEqual(layout.get_packages_latex(), '\\usepackage[utf8]{inputenc}\n' '\\usepackage[noindentafter]{titlesec}\n') layout.use_package('titlesec', 'largestsep') self.assertEqual( layout.get_packages_latex(), '\\usepackage[utf8]{inputenc}\n' '\\usepackage[noindentafter, largestsep]{titlesec}\n') layout.use_package('titlesec', 'largestsep') self.assertEqual( layout.get_packages_latex(), '\\usepackage[utf8]{inputenc}\n' '\\usepackage[noindentafter, largestsep]{titlesec}\n') layout.use_package('titlesec', options='', append_options=False) self.assertEqual( layout.get_packages_latex(), '\\usepackage[utf8]{inputenc}\n' '\\usepackage{titlesec}\n') # clear use-package list layout._packages = [] layout.use_package('hyperref') layout.use_package('hyperref', options='colorlinks=false') layout.use_package('hyperref') self.assertEqual( layout.get_packages_latex(), '\\usepackage[colorlinks=false]{hyperref}\n')