diff --git a/modules/bibformat/lib/bibformat_regression_tests.py b/modules/bibformat/lib/bibformat_regression_tests.py index 1fe36f104..596e7f34c 100644 --- a/modules/bibformat/lib/bibformat_regression_tests.py +++ b/modules/bibformat/lib/bibformat_regression_tests.py @@ -1,452 +1,452 @@ # -*- coding: utf-8 -*- ## ## This file is part of Invenio. ## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 CERN. ## ## Invenio is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License as ## published by the Free Software Foundation; either version 2 of the ## License, or (at your option) any later version. ## ## Invenio is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Invenio; if not, write to the Free Software Foundation, Inc., ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. """BibFormat module regression tests.""" __revision__ = "$Id$" import unittest from invenio.config import CFG_SITE_URL, CFG_SITE_LANG from invenio.testutils import make_test_suite, \ run_test_suite, \ test_web_page_content from invenio.bibformat import format_record class BibFormatAPITest(unittest.TestCase): """Check BibFormat API""" def test_basic_formatting(self): """bibformat - Checking BibFormat API""" result = format_record(recID=73, of='hx', ln=CFG_SITE_LANG, verbose=0, search_pattern=[], xml_record=None, user_info=None, on_the_fly=True) pageurl = CFG_SITE_URL + '/record/73?of=hx' result = test_web_page_content(pageurl, expected_text=result) class BibFormatBibTeXTest(unittest.TestCase): """Check output produced by BibFormat for BibTeX output for various records""" def setUp(self): """Prepare some ideal outputs""" self.record_74_hx = '''
 @article{Wang:74,
       author       = "Wang, B and Lin, C Y and Abdalla, E",
       title        = "Quasinormal modes of Reissner-Nordstrom Anti-de Sitter
                       Black Holes",
       journal      = "Phys. Lett., B",
       number       = "hep-th/0003295",
       volume       = "481",
       pages        = "79-88",
       year         = "2000",
 }
 
''' def test_bibtex_output(self): """bibformat - BibTeX output""" pageurl = CFG_SITE_URL + '/record/74?of=hx' result = test_web_page_content(pageurl, expected_text=self.record_74_hx) self.assertEqual([], result) class BibFormatDetailedHTMLTest(unittest.TestCase): """Check output produced by BibFormat for detailed HTML ouput for various records""" def setUp(self): """Prepare some ideal outputs""" # Record 7 (Article) self.record_74_hd_header = '''
Published Article / Particle Physics - Theory hep-th/0003295
''' self.record_74_hd_title = '''
Quasinormal modes of Reissner-Nordstrom Anti-de Sitter Black Holes
''' self.record_74_hd_authors = '''Wang, B (Fudan University) ; Lin, C Y ; Abdalla, E
'''% \ {'siteurl' : CFG_SITE_URL, 'lang': CFG_SITE_LANG} self.record_74_hd_abstract = '''Abstract: Complex frequencies associated with quasinormal modes for large Reissner-Nordstr$\ddot{o}$m Anti-de Sitter black holes have been computed. These frequencies have close relation to the black hole charge and do not linearly scale withthe black hole temperature as in Schwarzschild Anti-de Sitter case. In terms of AdS/CFT correspondence, we found that the bigger the black hole charge is, the quicker for the approach to thermal equilibrium in the CFT. The propertiesof quasinormal modes for $l>0$ have also been studied.
''' - self.record_74_hd_pubinfo = '''Published in: Phys. Lett., B :481 2000 79-88''' + self.record_74_hd_pubinfo = '''Published in: Phys. Lett., B :481 2000 79-88''' self.record_74_hd_fulltext = '''0003295.pdf">Cited by: try citation search for hep-th/0003295'''% \ {'siteurl' : CFG_SITE_URL, 'lang': CFG_SITE_LANG} self.record_74_hd_references = '''
  • [17] A. Chamblin, R. Emparan, C. V. Johnson and R. C. Myers, Phys. Rev., D60: 104026 (1999) 5070 90 110 130 150 r+ 130 230 330 50 70 90 110 130 150 r+
  • ''' # Record 7 (Picture) self.record_7_hd_header = '''
    Pictures / Life at CERN CERN-GE-9806033
    ''' self.record_7_hd_title = '''
    Tim Berners-Lee
    ''' self.record_7_hd_date = '''
    28 Jun 1998
    ''' self.record_7_hd_abstract = '''

    Caption
    Conference "Internet, Web, What's next?" on 26 June 1998 at CERN : Tim Berners-Lee, inventor of the World-Wide Web and Director of the W3C, explains how the Web came to be and give his views on the future.

    Légende
    Conference "Internet, Web, What's next?" le 26 juin 1998 au CERN: Tim Berners-Lee, inventeur du World-Wide Web et directeur du W3C, explique comment le Web est ne, et donne ses opinions sur l'avenir.

    ''' self.record_7_hd_resource = '''9806033''' % CFG_SITE_URL self.record_7_hd_resource_link = '%s/record/7/files/9806033.jpeg' % CFG_SITE_URL def test_detailed_html_output(self): """bibformat - Detailed HTML output""" # Test record 74 (Article) pageurl = CFG_SITE_URL + '/record/74?of=hd' result = test_web_page_content(pageurl, expected_text=[self.record_74_hd_header, self.record_74_hd_title, self.record_74_hd_authors, self.record_74_hd_abstract, self.record_74_hd_pubinfo, self.record_74_hd_fulltext, #self.record_74_hd_citations, #self.record_74_hd_references ]) self.assertEqual([], result) # Test record 7 (Picture) pageurl = CFG_SITE_URL + '/record/7?of=hd' result = test_web_page_content(pageurl, expected_text=[self.record_7_hd_header, self.record_7_hd_title, self.record_7_hd_date, self.record_7_hd_abstract, self.record_7_hd_resource, self.record_7_hd_resource_link]) self.assertEqual([], result) def test_detailed_html_edit_record(self): """bibformat - Detailed HTML output edit record link presence""" pageurl = CFG_SITE_URL + '/record/74?of=hd' result = test_web_page_content(pageurl, username='admin', expected_text="Edit This Record") self.assertEqual([], result) def test_detailed_html_no_error_message(self): """bibformat - Detailed HTML output without error message""" # No error message should be displayed in the web interface, whatever happens pageurl = CFG_SITE_URL + '/record/74?of=hd' result = test_web_page_content(pageurl, username='admin', expected_text=["Exception", "Could not"]) self.assertNotEqual([], result) pageurl = CFG_SITE_URL + '/record/7?of=hd' result = test_web_page_content(pageurl, username='admin', expected_text=["Exception", "Could not"]) self.assertNotEqual([], result) class BibFormatNLMTest(unittest.TestCase): """Check output produced by BibFormat for NLM output for various records""" def setUp(self): """Prepare some ideal outputs""" self.record_70_xn = '''
    J. High Energy Phys. J. High Energy Phys. 1126-6708 AdS/CFT For Non-Boundary Manifolds McInnes B National University of Singapore 2000 05 In its Euclidean formulation, the AdS/CFT correspondence begins as a study of Yang-Mills conformal field theories on the sphere, S^4. It has been successfully extended, however, to S^1 X S^3 and to the torus T^4. It is natural tohope that it can be made to work for any manifold on which it is possible to define a stable Yang-Mills conformal field theory. We consider a possible classification of such manifolds, and show how to deal with the most obviousobjection : the existence of manifolds which cannot be represented as boundaries. We confirm Witten's suggestion that this can be done with the help of a brane in the bulk. research-article
    ''' % {'siteurl': CFG_SITE_URL} def test_nlm_output(self): """bibformat - NLM output""" pageurl = CFG_SITE_URL + '/record/70?of=xn' result = test_web_page_content(pageurl, expected_text=self.record_70_xn) try: self.assertEqual([], result) except AssertionError: result = test_web_page_content(pageurl, expected_text=self.record_70_xn.replace('', '').replace('', '')) self.assertEqual([], result) class BibFormatBriefHTMLTest(unittest.TestCase): """Check output produced by BibFormat for brief HTML ouput for various records""" def setUp(self): """Prepare some ideal outputs""" self.record_76_hb = '''Ιθάκη / Καβάφης, Κ Π
    Σα βγεις στον πηγαιμό για την Ιθάκη,
    να εύχεσαι νάναι μακρύς ο δρόμος,
    γεμάτος περιπέτειες, γεμάτος γνώσεις [...]
    ''' % (CFG_SITE_URL, CFG_SITE_LANG) def test_brief_html_output(self): """bibformat - Brief HTML output""" pageurl = CFG_SITE_URL + '/record/76?of=HB' result = test_web_page_content(pageurl, expected_text=self.record_76_hb) self.assertEqual([], result) class BibFormatMARCXMLTest(unittest.TestCase): """Check output produced by BibFormat for MARCXML ouput for various records""" def setUp(self): """Prepare some ideal outputs""" self.record_9_xm = ''' 9 eng PRE-25553 RL-82-024 Ellis, J University of Oxford Grand unification with large supersymmetry breaking Mar 1982 18 p SzGeCERN General Theoretical Physics Ibanez, L E Ross, G G 1982 11 Oxford Univ. Univ. Auton. Madrid Rutherford Lab. 1990-01-28 50 2002-01-04 BATCH h 1982n PREPRINT ''' def test_marcxml_output(self): """bibformat - MARCXML output""" pageurl = CFG_SITE_URL + '/record/9?of=xm' result = test_web_page_content(pageurl, expected_text=self.record_9_xm) self.assertEqual([], result) class BibFormatMARCTest(unittest.TestCase): """Check output produced by BibFormat for MARC ouput for various records""" def setUp(self): """Prepare some ideal outputs""" self.record_29_hm = '''000000029 001__ 29 000000029 020__ $$a0720421039 000000029 041__ $$aeng 000000029 080__ $$a517.11 000000029 100__ $$aKleene, Stephen Cole$$uUniversity of Wisconsin 000000029 245__ $$aIntroduction to metamathematics 000000029 260__ $$aAmsterdam$$bNorth-Holland$$c1952 (repr.1964.) 000000029 300__ $$a560 p 000000029 490__ $$aBibl. Matematica$$v1 000000029 909C0 $$y1952 000000029 909C0 $$b21 000000029 909C1 $$c1990-01-27$$l00$$m2002-04-12$$oBATCH 000000029 909CS $$sm$$w198606 000000029 980__ $$aBOOK''' def test_marc_output(self): """bibformat - MARC output""" pageurl = CFG_SITE_URL + '/record/29?of=hm' result = test_web_page_content(pageurl, expected_text=self.record_29_hm) self.assertEqual([], result) class BibFormatTitleFormattingTest(unittest.TestCase): """Check title formatting produced by BibFormat.""" def test_subtitle_in_html_brief(self): """bibformat - title subtitle in HTML brief formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=statistics+computer', expected_text="Statistics: a computer approach")) def test_subtitle_in_html_detailed(self): """bibformat - title subtitle in HTML detailed formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=statistics+computer&of=HD', expected_text="Statistics: a computer approach")) def test_title_edition_in_html_brief(self): """bibformat - title edition in HTML brief formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=2nd', expected_text="Introductory statistics: a decision map; 2nd ed")) def test_title_edition_in_html_detailed(self): """bibformat - title edition in HTML detailed formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=2nd&of=HD', expected_text="Introductory statistics: a decision map; 2nd ed")) def test_title_part_in_html_brief(self): """bibformat - title part in HTML brief formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=analyse+informatique', expected_text="Analyse informatique, t.2")) def test_title_part_in_html_detailed(self): """bibformat - title part in HTML detailed formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=analyse+informatique&of=HD', expected_text="Analyse informatique, t.2: L'accomplissement")) class BibFormatISBNFormattingTest(unittest.TestCase): """Check ISBN formatting produced by BibFormat.""" def test_isbn_in_html_detailed(self): """bibformat - ISBN in HTML detailed formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=analyse+informatique&of=HD', expected_text="ISBN: 2225350574")) class BibFormatPublInfoFormattingTest(unittest.TestCase): """Check publication reference info formatting produced by BibFormat.""" def test_publinfo_in_html_brief(self): """bibformat - publication reference info in HTML brief formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/search?p=recid%3A84', expected_text="Nucl. Phys. B: 656 (2003) pp. 23-36")) def test_publinfo_in_html_detailed(self): """bibformat - publication reference info in HTML detailed formats""" self.assertEqual([], test_web_page_content(CFG_SITE_URL + '/record/84', expected_text="Nucl. Phys. B: 656 (2003) pp. 23-36")) TEST_SUITE = make_test_suite(BibFormatBibTeXTest, BibFormatDetailedHTMLTest, BibFormatBriefHTMLTest, BibFormatNLMTest, BibFormatMARCTest, BibFormatMARCXMLTest, BibFormatAPITest, BibFormatTitleFormattingTest, BibFormatISBNFormattingTest, BibFormatPublInfoFormattingTest) if __name__ == "__main__": run_test_suite(TEST_SUITE, warn_user=True)