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
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')])