def __init__(self, component_code=None, *args, **kwargs): self.component = FancyDict({ 'code': component_code, 'global_outputs': FancyDict({}), 'inputs': FancyDict({}) }) super(ServiceActivity, self).__init__(*args, **kwargs)
def test_get_user_project_list__success(self): project_list = [ FancyDict(id=1, bk_biz_id=1, name="name1", is_disable=False), FancyDict(id=2, bk_biz_id=2, name="name2", is_disable=False), FancyDict(id=3, bk_biz_id=3, name="name3", is_disable=True), ] with patch( APIGW_GET_USER_PROJECT_LIST_GET_USER_PROJECT_LIST, MagicMock(return_value=project_list), ): response = self.client.get(path=self.url(), data={"bk_username": "******"}) data = json.loads(response.content) self.assertTrue(data["result"]) self.assertEqual(data["code"], err_code.SUCCESS.code) self.assertEqual( data["data"], [ { "project_id": 1, "bk_biz_id": 1, "name": "name1" }, { "project_id": 2, "bk_biz_id": 2, "name": "name2" }, ], )
def __init__(self, inputs, outputs=None): if not isinstance(inputs, dict): raise exceptions.DataTypeErrorException('inputs is not dict') self.inputs = FancyDict(inputs) if outputs is None: outputs = {} if not isinstance(outputs, dict): raise exceptions.DataTypeErrorException('outputs is not dict') self.outputs = FancyDict(outputs)
def __init__(self, component_code=None, failure_handler=None, *args, **kwargs): self.component = FancyDict({ 'code': component_code, 'inputs': FancyDict({}) }) self.failure_handler = '{module}.{name}'.format( module=failure_handler.__module__, name=failure_handler.__name__) if failure_handler else None super(ServiceActivity, self).__init__(*args, **kwargs)
class GetTemplateSchemesAPITest(APITest): def url(self): return "/apigw/get_template_schemes/{project_id}/{template_id}/" @patch( PROJECT_GET, MagicMock(return_value=MockProject( project_id=TEST_PROJECT_ID, name=TEST_PROJECT_NAME, bk_biz_id=TEST_BIZ_CC_ID, from_cmdb=True, )), ) @patch( TASKTEMPLATE_GET, MagicMock(return_value=FancyDict(pipeline_template=FancyDict( id=TEST_PIPELINE_TEMPLATE_ID))), ) @patch( TEMPLATESCHEME_FILTER, MagicMock(return_value=[ FancyDict(unique_id="id1", name="name1", data="data1"), FancyDict(unique_id="id2", name="name2", data="data2"), ]), ) def test_get_template_schemes(self): response = self.client.get(path=self.url().format( project_id=TEST_PROJECT_ID, template_id=TEST_TASK_TEMPLATE_ID)) data = json.loads(response.content) self.assertTrue(data["result"]) self.assertEqual(data["code"], err_code.SUCCESS.code) self.assertEqual( data["data"], [ { "id": "id1", "name": "name1", "data": "data1" }, { "id": "id2", "name": "name2", "data": "data2" }, ], )
class Params(object): def __init__(self, params=None): self.params = FancyDict(params or {}) def to_dict(self): base = {} for key, value in self.params.items(): base[key] = value.to_dict() if isinstance(value, Var) else value return base
def __init__(self, start, data=None, params=None, global_outputs=None, *args, **kwargs): self.start = start self.data = data self.params = params or {} self.global_outputs = FancyDict(global_outputs or {}) super(SubProcess, self).__init__(*args, **kwargs)
def __init__(self, component_code=None, failure_handler=None, error_ignorable=False, timeout=None, skippable=True, retryable=True, *args, **kwargs): self.component = FancyDict({ 'code': component_code, 'inputs': FancyDict({}) }) self.failure_handler = '{module}.{name}'.format( module=failure_handler.__module__, name=failure_handler.__name__) if failure_handler else None self.error_ignorable = error_ignorable self.timeout = timeout self.skippable = skippable self.retryable = retryable super(ServiceActivity, self).__init__(*args, **kwargs)
class Data(object): def __init__(self, inputs=None, outputs=None): self.inputs = FancyDict(inputs or {}) self.outputs = outputs or [] def to_dict(self): base = {'inputs': {}, 'outputs': self.outputs} for key, value in self.inputs.items(): base['inputs'][key] = value.to_dict() if isinstance(value, Var) else value return base
def __init__(self, get_outputs_return=None, get_inputs_return=None, get_one_of_outputs_return=None, ex_data=None): get_inputs_return = get_inputs_return or FancyDict() get_outputs_return = get_outputs_return or FancyDict() self.update_outputs = mock.MagicMock() self.get_outputs = mock.MagicMock(return_value=get_outputs_return) self.set_outputs = mock.MagicMock() self.get_inputs = mock.MagicMock(return_value=get_inputs_return) self.inputs = get_inputs_return self.outputs = get_outputs_return self.ex_data = ex_data if isinstance(get_one_of_outputs_return, dict): def side_effect(arg): return get_one_of_outputs_return[arg] self.get_one_of_outputs = mock.MagicMock(side_effect=side_effect) else: self.get_one_of_outputs = mock.MagicMock(return_value=get_one_of_outputs_return)
class DataObject(object): def __init__(self, inputs, outputs=None): if not isinstance(inputs, dict): raise exceptions.DataTypeErrorException('inputs is not dict') self.inputs = FancyDict(inputs) if outputs is None: outputs = {} if not isinstance(outputs, dict): raise exceptions.DataTypeErrorException('outputs is not dict') self.outputs = FancyDict(outputs) def get_inputs(self): return self.inputs def get_outputs(self): return self.outputs def get_one_of_inputs(self, key, default=None): return self.inputs.get(key, default) def get_one_of_outputs(self, key, default=None): return self.outputs.get(key, default) def set_outputs(self, key, value): self.outputs.update({key: value}) return True def reset_outputs(self, outputs): if not isinstance(outputs, dict): raise exceptions.DataTypeErrorException('outputs is not dict') self.outputs = FancyDict(outputs) return True def update_outputs(self, dic): self.outputs.update(dic) def inputs_copy(self): return copy.deepcopy(self.inputs) def outputs_copy(self): return copy.deepcopy(self.outputs) def override_inputs(self, inputs): if not isinstance(inputs, FancyDict): inputs = FancyDict(inputs) self.inputs = inputs def override_outputs(self, outputs): if not isinstance(outputs, FancyDict): outputs = FancyDict(outputs) self.outputs = outputs def serializer(self): result = {'inputs': self.inputs, 'outputs': self.outputs} return json.dumps(result) def __setstate__(self, state): self.inputs = FancyDict(state['inputs']) self.outputs = FancyDict(state['outputs'])
def __init__(self, start=None, data=None, params=None, global_outputs=None, replace_id=False, template_id=None, *args, **kwargs): self.start = start self.data = data self.params = params or {} self.replace_id = replace_id self.global_outputs = FancyDict(global_outputs or {}) self.template_id = template_id super(SubProcess, self).__init__(*args, **kwargs)
def __init__(self, inputs=None, outputs=None): self.inputs = FancyDict(inputs or {}) self.outputs = outputs or []
def __setstate__(self, state): self.inputs = FancyDict(state['inputs']) self.outputs = FancyDict(state['outputs'])
def override_outputs(self, outputs): if not isinstance(outputs, FancyDict): outputs = FancyDict(outputs) self.outputs = outputs
def override_inputs(self, inputs): if not isinstance(inputs, FancyDict): inputs = FancyDict(inputs) self.inputs = inputs
class GetUserProjectDetailAPITest(APITest): def url(self): return "/apigw/get_user_project_detail/{project_id}/" @patch( PROJECT_GET, MagicMock(return_value=MockProject( project_id=TEST_PROJECT_ID, name=TEST_PROJECT_NAME, bk_biz_id=TEST_BIZ_CC_ID, from_cmdb=True, )), ) @patch( APIGW_GET_USER_PROJECT_DETAIL_GET_BUSINESS_DETAIL, MagicMock(side_effect=Exception()), ) def test_get_user_project_detail__get_business_detail_raise(self): response = self.client.get(path=self.url().format( project_id=TEST_PROJECT_ID)) data = json.loads(response.content) self.assertFalse(data["result"]) self.assertTrue("message" in data) self.assertEqual(data["code"], err_code.UNKNOWN_ERROR.code) @patch( PROJECT_GET, MagicMock(return_value=MockProject( project_id=TEST_PROJECT_ID_2, name=TEST_PROJECT_NAME, bk_biz_id=TEST_BIZ_CC_ID, from_cmdb=True, )), ) @patch( APIGW_GET_USER_PROJECT_DETAIL_GET_BUSINESS_DETAIL, MagicMock(return_value=FancyDict( bk_biz_id=TEST_BIZ_CC_ID, bk_biz_name=TEST_BIZ_NAME, bk_biz_developer=TEST_BIZ_DEVELOPERS, bk_biz_maintainer=TEST_BIZ_MAINTAINER, bk_biz_tester=TEST_BIZ_TESTER, bk_biz_productor=TEST_BIZ_PRODUCTOR, )), ) def test_get_user_project_detail__success(self): response = self.client.get(path=self.url().format( project_id=TEST_PROJECT_ID_2)) data = json.loads(response.content) self.assertTrue(data["result"]) self.assertEqual(data["code"], err_code.SUCCESS.code) self.assertEqual( data["data"], { "project_id": TEST_PROJECT_ID_2, "project_name": TEST_PROJECT_NAME, "from_cmdb": True, "bk_biz_id": TEST_BIZ_CC_ID, "bk_biz_name": TEST_BIZ_NAME, "bk_biz_developer": TEST_BIZ_DEVELOPERS, "bk_biz_maintainer": TEST_BIZ_MAINTAINER, "bk_biz_tester": TEST_BIZ_TESTER, "bk_biz_productor": TEST_BIZ_PRODUCTOR, }, )
def __init__(self): self.inputs = FancyDict({}) self.outputs = FancyDict({})
def __init__(self, params=None): self.params = FancyDict(params or {})
def reset_outputs(self, outputs): if not isinstance(outputs, dict): raise exceptions.DataTypeErrorException('outputs is not dict') self.outputs = FancyDict(outputs) return True