def setUp(self): self.process = DWHVariableDefinitionsExportProcess() self.process_cfg = ProcessConfiguration() self.process_cfg.load_dict({ ProcessConfiguration.Props.SITE_CODE: 'unit-test', ProcessConfiguration.Props.REPORT_TO: '*****@*****.**', ProcessConfiguration.Props.SERVER: { ProcessConfiguration.Props.HOST: 'unittest', ProcessConfiguration.Props.AUTH: { ProcessConfiguration.Props.LOGIN: '******', ProcessConfiguration.Props.PASSWORD: '******' } } }) # avoid cluttering unit tests report with logging self.process.logger.setLevel(logging.ERROR) # monkey patch requests module requests.post = self.mock_post
class TestProcess01(unittest.TestCase): devcfg_name = 'device_config_01.json' enabled_outputs_cnt = 7 class MockResponse(object): ok = None message = None def mock_post(self, url, data=None, **kwargs): data.seek(0) tmp = tempfile.NamedTemporaryFile(suffix='.json', delete=False) tmp.write(data.read()) tmp.close() self.tmp = tmp resp = self.MockResponse() resp.ok = True resp.text = json.dumps({'message': 'OK'}) return resp @classmethod def setUpClass(cls): devcfg.METADATA_HOME = fixture_path('devcfg.d') cls.dev_cfg = DeviceNetworkConfiguration(fixture_path(cls.devcfg_name), autoload=True) cls.vars_meta = json.load(file(fixture_path('vars_metadata.json'))) def setUp(self): self.process = DWHVariableDefinitionsExportProcess() self.process_cfg = ProcessConfiguration() self.process_cfg.load_dict({ ProcessConfiguration.Props.SITE_CODE: 'unit-test', ProcessConfiguration.Props.REPORT_TO: '*****@*****.**', ProcessConfiguration.Props.SERVER: { ProcessConfiguration.Props.HOST: 'unittest', ProcessConfiguration.Props.AUTH: { ProcessConfiguration.Props.LOGIN: '******', ProcessConfiguration.Props.PASSWORD: '******' } } }) # avoid cluttering unit tests report with logging self.process.logger.setLevel(logging.ERROR) # monkey patch requests module requests.post = self.mock_post def test_01(self): rc = self.process.run(self.process_cfg, self.dev_cfg, self.vars_meta) self.assertEqual(rc, 0) try: with file(self.tmp.name) as fp: defs = json.load(fp) self.assertEqual(len(defs), self.enabled_outputs_cnt) d = dict([ (entry['varname'], entry) for entry in defs ]) for v in self.vars_meta: self.assertIn(v, d) finally: os.remove(self.tmp.name)
pycstbox.log.set_loglevel_from_args(log, args) log.info('loading process configuration') process_cfg = ProcessConfiguration() # Loads the configuration parameters try: process_cfg.load(pycstbox.config.make_config_file_path(CONFIG_FILE_NAME)) except ConfigParser.Error as e: log.fatal('configuration error (%s)', e) sys.exit(1) else: log.info('initializing export process') process = DWHVariableDefinitionsExportProcess() process.log_setLevel_from_args(args) try: devices_cfg = pycstbox.devcfg.DeviceNetworkConfiguration(autoload=True) vars_metadata = json.load(file(pycstbox.config.make_config_file_path(VARS_METATDATA_FILE_NAME))) error = process.run(process_cfg, devices_cfg, vars_metadata) except Exception as e: #pylint: disable=W0703 log.exception(e) log.fatal('process failed') sys.exit(1) else: if error: