Beispiel #1
0
 def __init__(self, args, unit_test=False):
     self._args = args
     self._factory = Factory({
         'Application': Application,
         'BatchDocumentConverter': BatchDocumentConverter,
         'BandwidthLimiter': BandwidthLimiter,
         'HTTPClient': HTTPClient,
         'CookieJar': CookieJar,
         'CookieJarWrapper': CookieJarWrapper,
         'CookiePolicy': DeFactoCookiePolicy,
         'ConnectionPool': ConnectionPool,
         'CSSScraper': CSSScraper,
         'DemuxDocumentScraper': DemuxDocumentScraper,
         'DemuxURLFilter': DemuxURLFilter,
         'FTPProcessor': FTPProcessor,
         'ElementWalker': ElementWalker,
         'FetchRule': FetchRule,
         'FileWriter': NullWriter,
         'FTPClient': FTPClient,
         'FTPProcessorFetchParams': FTPProcessorFetchParams,
         'HTTPProxyServer': HTTPProxyServer,
         'HTMLParser': NotImplemented,
         'HTMLScraper': HTMLScraper,
         'JavaScriptScraper': JavaScriptScraper,
         'PathNamer': PathNamer,
         'PhantomJSDriver': PhantomJSDriver,
         'PhantomJSCoprocessor': PhantomJSCoprocessor,
         'PipelineSeries': PipelineSeries,
         'ProcessingRule': ProcessingRule,
         'Processor': DelegateProcessor,
         'ProxyCoprocessor': ProxyCoprocessor,
         'ProxyHostFilter': ProxyHostFilter,
         'RedirectTracker': RedirectTracker,
         'Request': Request,
         'Resolver': Resolver,
         'ResourceMonitor': ResourceMonitor,
         'ResultRule': ResultRule,
         'RobotsTxtChecker': RobotsTxtChecker,
         'RobotsTxtPool': RobotsTxtPool,
         'SitemapScraper': SitemapScraper,
         'Statistics': Statistics,
         'URLInfo': URLInfo,
         'URLTable': URLTableHookWrapper,
         'URLTableImplementation': SQLURLTable,
         'URLRewriter': URLRewriter,
         'Waiter': LinearWaiter,
         'WARCRecorder': WARCRecorder,
         'WebClient': WebClient,
         'WebProcessor': WebProcessor,
         'WebProcessorFetchParams': WebProcessorFetchParams,
         'YoutubeDlCoprocessor': YoutubeDlCoprocessor,
     })
     self._unit_test = unit_test
Beispiel #2
0
    def test_factory(self):
        factory = Factory()
        factory.set('dict', dict)

        self.assertNotIn('dict', factory)

        self.assertFalse(factory.is_all_initialized())

        my_instance = factory.new('dict', [('hi', 'hello')])

        self.assertIn('dict', factory)
        self.assertEqual(my_instance, factory['dict'])
        self.assertTrue(factory.is_all_initialized())
        self.assertEqual(1, len(factory))
        self.assertEqual(['dict'], list(iter(factory)))
        self.assertEqual(my_instance, factory.instance_map['dict'])

        with self.assertRaises(ValueError):
            factory.new('dict', [('hi', 'hello')])