def assertConnectorState(self): """Assert that a Connector is constructed from a Config properly.""" mc = connector.Connector.from_config(self.config) # Test Connector options. self.assertEqual(mc.address, self.config['mainAddress']) self.assertIsInstance(mc.doc_managers[0], doc_manager_simulator.DocManager) pwfile = self.config['authentication.passwordFile'] if pwfile: with open(pwfile, 'r') as fd: test_password = re.sub(r'\s', '', fd.read()) self.assertEqual(mc.auth_key, test_password) self.assertEqual(mc.auth_username, self.config['authentication.adminUsername']) self.assertEqual(mc.oplog_checkpoint, self.config['oplogFile']) self.assertEqual(mc.tz_aware, self.config['timezoneAware']) self.assertEqual(mc.ssl_kwargs.get('ssl_certfile'), self.config['ssl.sslCertfile']) self.assertEqual(mc.ssl_kwargs.get('ssl_ca_certs'), self.config['ssl.sslCACerts']) self.assertEqual(mc.ssl_kwargs.get('ssl_keyfile'), self.config['ssl.sslKeyfile']) self.assertEqual(mc.ssl_kwargs.get('ssl_cert_reqs'), self.config['ssl.sslCertificatePolicy']) command_helper = mc.doc_managers[0].command_helper self.assertEqual(command_helper.namespace_set, self.config['namespaces.include']) self.assertEqual(command_helper.dest_mapping, self.config['namespaces.mapping']) # Test Logger options. log_levels = [ logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG ] test_logger = setup_logging(self.config) self.assertEqual( log_levels[self.config['verbosity']], test_logger.level) test_handlers = [ h for h in test_logger.handlers if isinstance(h, logging.handlers.TimedRotatingFileHandler)] self.assertEqual(len(test_handlers), 1) test_handler = test_handlers[0] expected_handler = logging.handlers.TimedRotatingFileHandler( 'test-dummy.log', when=self.config['logging.rotationWhen'], interval=self.config['logging.rotationInterval'], backupCount=self.config['logging.rotationBackups']) self.assertEqual(test_handler.when, expected_handler.when) self.assertEqual(test_handler.backupCount, expected_handler.backupCount) self.assertEqual(test_handler.interval, expected_handler.interval) # Test keyword arguments passed to OplogThread. ot_kwargs = mc.kwargs self.assertEqual(ot_kwargs['ns_set'], self.config['namespaces.include']) self.assertEqual(ot_kwargs['collection_dump'], not self.config['noDump']) self.assertEqual(ot_kwargs['gridfs_set'], self.config['namespaces.gridfs']) self.assertEqual(ot_kwargs['continue_on_error'], self.config['continueOnError']) self.assertEqual(ot_kwargs['fields'], self.config['fields']) self.assertEqual(ot_kwargs['batch_size'], self.config['batchSize']) # Test DocManager options. for dm, dm_expected in zip(mc.doc_managers, self.config['docManagers']): self.assertEqual(dm.kwargs, dm_expected.kwargs) self.assertEqual(dm.auto_commit_interval, dm_expected.auto_commit_interval) self.assertEqual(dm.url, dm_expected.url) self.assertEqual(dm.chunk_size, dm_expected.chunk_size)
def assertConnectorState(self): """Assert that a Connector is constructed from a Config properly.""" mc = connector.Connector.from_config(self.config) # Test Connector options. self.assertEqual(mc.address, self.config["mainAddress"]) self.assertIsInstance(mc.doc_managers[0], doc_manager_simulator.DocManager) pwfile = self.config["authentication.passwordFile"] if pwfile: with open(pwfile, "r") as fd: test_password = re.sub(r"\s", "", fd.read()) self.assertEqual(mc.auth_key, test_password) self.assertEqual(mc.auth_username, self.config["authentication.adminUsername"]) self.assertEqual(mc.oplog_checkpoint, self.config["oplogFile"]) self.assertEqual(mc.tz_aware, self.config["timezoneAware"]) self.assertEqual( mc.ssl_kwargs.get("ssl_certfile"), self.config["ssl.sslCertfile"] ) self.assertEqual( mc.ssl_kwargs.get("ssl_ca_certs"), self.config["ssl.sslCACerts"] ) self.assertEqual( mc.ssl_kwargs.get("ssl_keyfile"), self.config["ssl.sslKeyfile"] ) self.assertEqual( mc.ssl_kwargs.get("ssl_cert_reqs"), self.config["ssl.sslCertificatePolicy"] ) command_helper = mc.doc_managers[0].command_helper for name in self.config["namespaces.mapping"]: self.assertTrue(command_helper.namespace_config.map_namespace(name)) # Test Logger options. log_levels = [logging.ERROR, logging.WARNING, logging.INFO, logging.DEBUG] test_logger = setup_logging(self.config) self.assertEqual(log_levels[self.config["verbosity"]], test_logger.level) test_handlers = [ h for h in test_logger.handlers if isinstance(h, logging.handlers.TimedRotatingFileHandler) ] self.assertEqual(len(test_handlers), 1) test_handler = test_handlers[0] expected_handler = logging.handlers.TimedRotatingFileHandler( "test-dummy.log", when=self.config["logging.rotationWhen"], interval=self.config["logging.rotationInterval"], backupCount=self.config["logging.rotationBackups"], ) self.assertEqual(test_handler.when, expected_handler.when) self.assertEqual(test_handler.backupCount, expected_handler.backupCount) self.assertEqual(test_handler.interval, expected_handler.interval) # Test keyword arguments passed to OplogThread. ot_kwargs = mc.kwargs self.assertEqual(ot_kwargs["ns_set"], self.config["namespaces.include"]) self.assertEqual(ot_kwargs["collection_dump"], not self.config["noDump"]) self.assertEqual(ot_kwargs["gridfs_set"], self.config["namespaces.gridfs"]) self.assertEqual(ot_kwargs["continue_on_error"], self.config["continueOnError"]) self.assertEqual(ot_kwargs["fields"], self.config["fields"]) self.assertEqual(ot_kwargs["batch_size"], self.config["batchSize"]) # Test DocManager options. for dm, dm_expected in zip(mc.doc_managers, self.config["docManagers"]): self.assertEqual(dm.kwargs, dm_expected.kwargs) self.assertEqual(dm.auto_commit_interval, dm_expected.auto_commit_interval) self.assertEqual(dm.url, dm_expected.url) self.assertEqual(dm.chunk_size, dm_expected.chunk_size)