def addAssetClass(self, data): """ 添加资产类别 """ lPath = data.get("lpath") if not lPath: LOG.error("lpath value is empty!!!") return -1, u"添加失败" lpathList = lPath.split(".") nLen = len(lpathList) if 1 == nLen: # 说明添加资产类别 assetClass = data.get("add_asset_class") assetClassEn = data.get("add_asset_class_en") return self.actual_add_asset_type(assetClass, assetClassEn, lpathList, nLen) elif 2 == nLen: # 添加设备类型 newAssetType = data.get("new_asset_type") newAssetTypeEn = data.get("new_asset_type_en") return self.actual_add_asset_type(newAssetType, newAssetTypeEn, lpathList, nLen) else: try: # 添加品牌、型号 checkList = [] providerCh = data.get("add_provider") providerEn = data.get("add_provider_en") modelName = data.get("add_model") checkList.append(providerCh) checkList.append(providerEn) checkList.append(modelName) if not all(checkList): LOG.error("add new provider model params are empty!!!") return -1, u"填写内容为空,请检查" # 得到对应的资产类型id assetTypeName = lpathList[nLen - 1] atd = AssetTypeDal() assetTypeModel = atd.get_asset_type_id_by_ch_name(assetTypeName) assetTypeId = assetTypeModel.id if assetTypeModel else None # 添加品牌 # 判断新添加的品牌是不是已有的品牌 pd = ProviderDal() providerEn = providerEn.upper() providerModel = pd.get_prov_by_id_and_at(assetTypeId, providerEn) if providerModel: # 现有的品牌,直接添加型号 LOG.info("add device provider is have device") # 判断型号是否存在,如果存在,直接return重复,否则添加 provId = providerModel.id md = ModelDal() modelD = md.get_model_by_pd_ch(provId, modelName) if modelD: return -1, u"品牌:" + providerEn + "型号:" + modelName + "已经存在,请勿重复添加" else: md.add_model(provId, modelName) else: # 新品牌 LOG.info("add device provider is new device") pd.add_new_provider(assetTypeId, providerEn, providerCh) md = ModelDal() provModel = pd.get_prov_by_id_and_at(assetTypeId, providerEn) md.add_model(provModel.id, modelName) return 0, u"添加成功" except Exception as _ex: LOG.error("error occured while add provider model: %s" % str(_ex)) return -1, u"添加失败"
def setUp(self): super(ModelDALTestCase, self).setUp() self.useFixture(DBConnectionFixture()) self.dbfixture = self.useFixture(DBFixture()) self.session = self.dbfixture.session self.dal = ModelDal()
class ModelDALTestCase(TestCase): def setUp(self): super(ModelDALTestCase, self).setUp() self.useFixture(DBConnectionFixture()) self.dbfixture = self.useFixture(DBFixture()) self.session = self.dbfixture.session self.dal = ModelDal() def tearDown(self): super(ModelDALTestCase, self).tearDown() self.session.execute('delete from mp_model') def test_get_model_all(self): ret = self.dal.get_model_all() self.assertEqual(len(ret), 3) def test_get_model_by_prov_id(self): # 通过id返回的还是一个集合,会有1对多吗 model = self.dal.get_model_by_prov_id(11) self.assertEqual(model[0].name, 'model1') def test_add_model(self): self.dal.add_model(3, 'model3') ret = self.dal.get_model_all() self.assertEqual(len(ret), 4) def test_del_model_by_id(self): # 这个测试跑不过去 self.dal.del_model_by_id(1) ret = self.dal.get_model_all() self.assertEqual(2, len(ret)) def test_get_model_by_pd_ch(self): model = self.dal.get_model_by_pd_ch(11, 'model1') self.assertIsNotNone(model) self.assertEqual(model.name, 'model1') self.assertEqual(model.provider_id, 11) model = self.dal.get_model_by_pd_ch(1, 'model2') self.assertIsNone(model) def test_get_model_name_by_id(self): model = self.dal.get_model_name_by_id(1) self.assertIsNotNone(model) self.assertEqual(model.name, 'model1') def test_get_model_list_by_prov_id(self): models = self.dal.get_model_list_by_prov_id(22) self.assertIsNotNone(models) self.assertEqual(len(models), 2)
def get_model_id_by_pd_ch(self, prov_id, ch_name): md = ModelDal() model = md.get_model_by_pd_ch(prov_id, ch_name) return self.actual_return_id_val(model)
def get_model_name_by_num(self, model_id): md = ModelDal() model = md.get_model_name_by_id(model_id) return self.actual_return_name_val(model)
def get_model_by_num(self, model_id): md = ModelDal() model = md.get_model_name_by_id(model_id) return model