def test_sync_projects_from_cmdb(self): Business.objects.create(cc_id=5, cc_name='name_5', cc_owner='owner', cc_company='company') project.sync_projects_from_cmdb('user') Business.objects.update_or_create.assert_has_calls([ mock.call(cc_id=1, defaults={ 'cc_name': 'name_1', 'cc_owner': 'supplier_account', 'cc_company': 0, 'time_zone': 'time_zone', 'life_cycle': 'life_cycle', 'status': 'enable' }), mock.call(cc_id=4, defaults={ 'cc_name': 'name_4', 'cc_owner': 'supplier_account', 'cc_company': 0, 'time_zone': 'time_zone', 'life_cycle': 'life_cycle', 'status': 'enable' }), mock.call(cc_id=5, defaults={ 'cc_name': 'name_5', 'cc_owner': 'supplier_account', 'cc_company': 0, 'time_zone': 'time_zone', 'life_cycle': 'life_cycle', 'status': 'enable' }) ]) Project.objects.sync_project_from_cmdb_business.assert_called_once_with( { 1: { 'cc_name': 'name_1', 'time_zone': 'time_zone', 'creator': 'user' }, 4: { 'cc_name': 'name_4', 'time_zone': 'time_zone', 'creator': 'user' }, 5: { 'cc_name': 'name_5', 'time_zone': 'time_zone', 'creator': 'user' } })
def test_sync_projects_from_cmdb__project_exist(self): Business.objects.create(cc_id=5, cc_name="name_5", cc_owner="owner", cc_company="company") with patch(CORE_MODEL_PROJECT_SYNC_PROJECT, MagicMock(side_effect=IntegrityError)): project.sync_projects_from_cmdb("user") Project.objects.update_business_project_status.assert_called_once_with( archived_cc_ids=set(), active_cc_ids={1, 4, 5}) self.assertEqual(len(Project.objects.all()), 0) project.sync_projects_from_cmdb("user") self.assertEqual(len(Project.objects.all()), 3)
def cmdb_business_sync_task(task_id): with redis_lock(LOCK_ID, task_id) as acquired: if acquired: loggger.info('Start sync business from cmdb...') try: sync_projects_from_cmdb( username=settings.SYSTEM_USE_API_ACCOUNT, use_cache=False) except exceptions.APIError as e: loggger.error( 'An error occurred when sync cmdb business, message: {msg}, trace: {trace}' .format(msg=e.message, trace=traceback.format_exc())) else: loggger.info( 'Can not get sync_business lock, sync operation abandon')
def test_sync_projects_from_cmdb__empty_business_list(self): project.sync_projects_from_cmdb("user") Project.objects.sync_project_from_cmdb_business.assert_called_once_with( {})
def test_sync_projects_from_cmdb(self): Business.objects.create(cc_id=5, cc_name="name_5", cc_owner="owner", cc_company="company") project.sync_projects_from_cmdb("user") Business.objects.update_or_create.assert_has_calls([ mock.call( cc_id=1, defaults={ "cc_name": "name_1", "cc_owner": "supplier_account", "cc_company": 0, "time_zone": "time_zone", "life_cycle": "life_cycle", "status": "enable", }, ), mock.call( cc_id=4, defaults={ "cc_name": "name_4", "cc_owner": "supplier_account", "cc_company": 0, "time_zone": "time_zone", "life_cycle": "life_cycle", "status": "enable", }, ), mock.call( cc_id=5, defaults={ "cc_name": "name_5", "cc_owner": "supplier_account", "cc_company": 0, "time_zone": "time_zone", "life_cycle": "life_cycle", "status": "enable", }, ), ]) Project.objects.sync_project_from_cmdb_business.assert_called_once_with( { 1: { "cc_name": "name_1", "time_zone": "time_zone", "creator": "user" }, 4: { "cc_name": "name_4", "time_zone": "time_zone", "creator": "user" }, 5: { "cc_name": "name_5", "time_zone": "time_zone", "creator": "user" }, })