def test_setup(self, mockprint): # restart the log system since setup() will do that otherwise manager.shutdown_logger() manager.setup_logger('CRITICAL') projdir = self.datadir + os.sep + 'myproject' argv = ['ferenda-build.py', projdir] # test1: normal, setup succeeds res = manager.setup(force=True, verbose=False, unattended=True, argv=argv) self.assertTrue(res) self.assertTrue(os.path.exists(projdir)) # test2: directory exists, setup fails res = manager.setup(verbose=False, unattended=True, argv=argv) self.assertFalse(res) shutil.rmtree(projdir) # test2: no argv, rely on sys.argv, assert False with patch('ferenda.manager.sys.argv'): self.assertFalse(manager.setup()) self.assertFalse(os.path.exists(projdir)) # test3: preflight fails with patch('ferenda.manager._preflight_check', return_value=False): self.assertFalse(manager.setup(unattended=True, argv=argv)) self.assertFalse(os.path.exists(projdir)) with patch('ferenda.manager.input', return_value="n") as input_mock: self.assertFalse(manager.setup(unattended=False, argv=argv)) self.assertFalse(os.path.exists(projdir)) self.assertTrue(input_mock.called) # test4: select_triplestore fails with patch('ferenda.manager._preflight_check', return_value=True): with patch('ferenda.manager._select_triplestore', return_value=(False, None, None)): self.assertFalse(manager.setup(unattended=True, argv=argv)) self.assertFalse(os.path.exists(projdir)) with patch('ferenda.manager.input', return_value="n") as input_mock: self.assertFalse(manager.setup(unattended=False, argv=argv)) self.assertFalse(os.path.exists(projdir)) self.assertTrue(input_mock.called)
def test_setup(self, mockprint): # restart the log system since setup() will do that otherwise manager.shutdown_logger() manager.setup_logger('CRITICAL') projdir = self.datadir+os.sep+'myproject' argv= ['ferenda-build.py', projdir] # test1: normal, setup succeeds res = manager.setup(force=True, verbose=False, unattended=True, argv=argv) self.assertTrue(res) self.assertTrue(os.path.exists(projdir)) # test2: directory exists, setup fails res = manager.setup(verbose=False, unattended=True, argv=argv) self.assertFalse(res) shutil.rmtree(projdir) # test2: no argv, rely on sys.argv, assert False with patch('ferenda.manager.sys.argv'): self.assertFalse(manager.setup()) self.assertFalse(os.path.exists(projdir)) # test3: preflight fails with patch('ferenda.manager._preflight_check', return_value=False): self.assertFalse(manager.setup(unattended=True, argv=argv)) self.assertFalse(os.path.exists(projdir)) with patch('ferenda.manager.input', return_value="n") as input_mock: self.assertFalse(manager.setup(unattended=False, argv=argv)) self.assertFalse(os.path.exists(projdir)) self.assertTrue(input_mock.called) # test4: select_triplestore fails with patch('ferenda.manager._preflight_check', return_value=True): with patch('ferenda.manager._select_triplestore', return_value=(False, None, None)): self.assertFalse(manager.setup(unattended=True, argv=argv)) self.assertFalse(os.path.exists(projdir)) with patch('ferenda.manager.input', return_value="n") as input_mock: self.assertFalse(manager.setup(unattended=False, argv=argv)) self.assertFalse(os.path.exists(projdir)) self.assertTrue(input_mock.called)
'title': entry.title} items += '<li>%(identifier)s <a href="%(uri)s">%(title)s</a></li>' % data return ("""<h2><a href="%(uri)s">Request for comments</a></h2> <p>A complete archive of RFCs in Linked Data form. Contains %(doccount)s documents.</p> <p>Latest 5 documents:</p> <ul> %(items)s </ul>""" % {'uri':self.dataset_uri(), 'items': items, 'doccount': len(list(self.store.list_basefiles_for("_postgenerate")))}) # end frontpage_content from ferenda import manager, LayeredConfig import sys manager.setup_logger("DEBUG") d = RFCs(downloadmax=5) d.download() for basefile in d.store.list_basefiles_for("parse"): d.parse(basefile) RFCs.setup("relate", LayeredConfig(d.get_default_options())) for basefile in d.store.list_basefiles_for("relate"): d.relate(basefile) RFCs.teardown("relate", LayeredConfig(d.get_default_options())) manager.makeresources([d]) for basefile in d.store.list_basefiles_for("generate"): d.generate(basefile) d.toc() d.news() manager.frontpage([d])
# -*- coding: utf-8 -*- from __future__ import unicode_literals import sys, os from ferenda.compat import unittest from ferenda.manager import setup_logger setup_logger("CRITICAL") from ferenda.testutil import FerendaTestCase, testparser, file_parametrize from ferenda.sources.tech import RFC # FIXME: This test should be re-worked as a normal RepoTester test class Parse(unittest.TestCase, FerendaTestCase): def parametric_test(self, filename): # parser = ferenda.sources.tech.rfc.RFC.get_parser() parser = RFC.get_parser() testparser(self, parser, filename) file_parametrize(Parse, "test/files/rfc", ".txt")
# -*- coding: utf-8 -*- from __future__ import unicode_literals import sys, os, tempfile, shutil from datetime import date from six import text_type as str from lxml import etree from bs4 import BeautifulSoup from ferenda.compat import unittest if os.getcwd() not in sys.path: sys.path.insert(0,os.getcwd()) from ferenda.manager import setup_logger; setup_logger('CRITICAL') # SUT from ferenda.elements import serialize, deserialize, AbstractElement, UnicodeElement, CompoundElement, TemporalElement, OrdinalElement, PredicateElement, Body, Section, Paragraph, Link, html class Main(unittest.TestCase): def test_serialize_roundtrip(self): # Create a elements object tree tree = Body([Section([Paragraph(["Hello"]), Paragraph(["World"])], ordinal="1", title="Main section"), Section([42, date(2013,11,27), b'bytestring', {'foo': 'bar', 'x': 'y'}], ordinal=2,
def shutup_logger(dt): manager.setup_logger('CRITICAL')
# begin example from ferenda.sources.tech import RFC, W3Standards from ferenda.manager import makeresources, frontpage, runserver, setup_logger from ferenda.errors import DocumentRemovedError, ParseError, FSMStateError config = { 'datadir': 'netstandards/exampledata', 'loglevel': 'DEBUG', 'force': False, 'storetype': 'SQLITE', 'storelocation': 'netstandards/exampledata/netstandards.sqlite', 'storerepository': 'netstandards', 'downloadmax': 50 # remove this to download everything } config['downloadmax'] = 3 # try to hide this line somehow setup_logger(level='DEBUG') # Set up two document repositories docrepos = (RFC(**config), W3Standards(**config)) for docrepo in docrepos: # Download a bunch of documents docrepo.download() # Parse all downloaded documents for basefile in docrepo.store.list_basefiles_for("parse"): try: docrepo.parse(basefile) except ParseError as e: pass # or handle this in an appropriate way
# -*- coding: utf-8 -*- from __future__ import unicode_literals import os, sys from ferenda.compat import unittest, Mock, patch from ferenda import manager manager.setup_logger('CRITICAL') if os.getcwd() not in sys.path: sys.path.insert(0,os.getcwd()) from io import BytesIO import shutil import codecs import json from rdflib import Graph from lxml import etree from ferenda.testutil import RepoTester from ferenda import manager from ferenda import DocumentRepository, FulltextIndex from ferenda import util from ferenda.elements import html # tests the wsgi app in-process, ie not with actual HTTP requests, but # simulates what make_server().serve_forever() would send and # recieve. Should be simple enough, yet reasonably realistic, for # testing the API. class WSGI(RepoTester): # base class w/o tests def setUp(self): super(WSGI,self).setUp()
shutil.rmtree("netstandards") # begin example from ferenda.sources.tech import RFC, W3Standards from ferenda.manager import makeresources, frontpage, runserver, setup_logger from ferenda.errors import DocumentRemovedError, ParseError, FSMStateError config = {'datadir':'netstandards/exampledata', 'loglevel':'DEBUG', 'force':False, 'storetype':'SQLITE', 'storelocation':'netstandards/exampledata/netstandards.sqlite', 'storerepository':'netstandards', 'downloadmax': 50 } setup_logger(level='DEBUG') # Set up two document repositories docrepos = (RFC(**config), W3Standards(**config)) for docrepo in docrepos: # Download a bunch of documents docrepo.download() # Parse all downloaded documents for basefile in docrepo.store.list_basefiles_for("parse"): try: docrepo.parse(basefile) except ParseError as e: pass # or handle this in an appropriate way
def test_firststeps_api(self): from ferenda.manager import setup_logger setup_logger("CRITICAL") # FIXME: consider mocking print() here self._test_pyfile("doc/examples/firststeps-api.py")
</ul>""" % { 'uri': self.dataset_uri(), 'items': items, 'doccount': len(list(self.store.list_basefiles_for("_postgenerate"))) }) # end frontpage_content from ferenda import manager from layeredconfig import LayeredConfig, Defaults import sys manager.setup_logger("DEBUG") d = RFCs(downloadmax=5) d.download() for basefile in d.store.list_basefiles_for("parse"): d.parse(basefile) RFCs.setup("relate", LayeredConfig(Defaults(d.get_default_options()))) for basefile in d.store.list_basefiles_for("relate"): d.relate(basefile) RFCs.teardown("relate", LayeredConfig(Defaults(d.get_default_options()))) manager.makeresources([d]) for basefile in d.store.list_basefiles_for("generate"): d.generate(basefile) d.toc() d.news()