def test__allowedToSubmit(mocker): """ Testing SiteDirector()._allowedToSubmit() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': ''}}} submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is False sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is True sd.rssFlag = True submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is False sd.ceMaskList = ['aCE', 'anotherCE'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is True
def test__allowedToSubmit(mocker): """ Testing SiteDirector()._allowedToSubmit() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern'}}} submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is False sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is True sd.rssFlag = True submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is False sd.ceMaskList = ['aCE', 'anotherCE'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) assert submit is True
def test__ifAndWhereToSubmit(mocker, mockMatcherReturnValue, expected, anyExpected, sitesExpected): """ Testing SiteDirector()._ifAndWhereToSubmit() """ mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__" ) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.matcherClient = MagicMock() sd.matcherClient.getMatchingTaskQueues.return_value = mockMatcherReturnValue res = sd._ifAndWhereToSubmit() assert res[0] == expected if res[0]: assert res == (expected, anyExpected, sitesExpected, set())
def test__submitPilotsToQueue(mocker): """ Testing SiteDirector()._submitPilotsToQueue() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() sd.workingDirectory = '' sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'CEType': 'SSH', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern'}}} sd.queueSlots = {'aQueue': {'AvailableSlots': 10}} res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue') assert res['OK'] is True
def test__updatePilotStatus(mocker, pilotRefs, pilotDict, pilotCEDict, expected): """ Testing SiteDirector()._updatePilotStatus() """ mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__" ) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.pilotAgentsDB", side_effect=mockPilotAgentsDB) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() res = sd._updatePilotStatus(pilotRefs, pilotDict, pilotCEDict) assert res == expected
def test__getPilotOptions(self, _patch1, _patch2, _patch3, _patch4): """ Testing SiteDirector()._getPilotOptions() """ sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = { 'aQueue': { 'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': { 'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': '' } } } res = sd._getPilotOptions('aQueue', 10) self.assertEqual(res[0], [ '-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123', '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p', '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern' ]) self.assertEqual(res[1], 1)
def test__submitPilotsToQueue(self, _patch1, _patch2, _patch3, _patch4): """ Testing SiteDirector()._submitPilotsToQueue() """ sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() sd.workingDirectory = '' sd.queueDict = { 'aQueue': { 'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'CEType': 'SSH', 'QueueName': 'aQueue', 'ParametersDict': { 'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': '' } } } sd.queueSlots = {'aQueue': {'AvailableSlots': 10}} res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue') self.assertTrue(res['OK']) self.assertEqual(res['Value'][0], 0)
def test__getPilotOptions(mocker): """ Testing SiteDirector()._getPilotOptions() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = {'aQueue': {'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': ''}}} res = sd._getPilotOptions('aQueue', 10) assert res[0] == ['-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123', '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p', '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern'] assert res[1] == 1
def test__submitPilotsToQueue(mocker): """ Testing SiteDirector()._submitPilotsToQueue() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Resources.getCompatiblePlatforms", side_effect=mockResourcesReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() sd.workingDirectory = '' sd.queueDict = {'aQueue': {'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'CEType': 'SSH', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': ''}}} sd.queueSlots = {'aQueue': {'AvailableSlots': 10}} res = sd._submitPilotsToQueue(1, MagicMock(), 'aQueue') assert res['OK'] is True assert res['Value'][0] == 0
def test__ifAndWhereToSubmit(self, _patch1, _patch2, _patch3, _patch4): """ Testing SiteDirector()._ifAndWhereToSubmit() """ sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.matcherClient = MagicMock() submit, _anySite, _jobSites, _testSites = sd._ifAndWhereToSubmit() self.assertTrue(submit)
def test__getPilotOptions(self, _patch1, _patch2, _patch3): sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = {'aQueue': {'ParametersDict': {'CPUTime': 12345}}} sd.queueDict['aQueue'] = {} sd.queueDict['aQueue']['ParametersDict'] = {} res = sd._getPilotOptions('aQueue', 10) #FIXME: incomplete self.assertEqual(res, [None, None])
def test__updatePilotStatus(mocker, pilotRefs, pilotDict, pilotCEDict, expected): """ Testing SiteDirector()._updatePilotStatus() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.pilotAgentsDB", side_effect=mockPilotAgentsDB) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() res = sd._updatePilotStatus(pilotRefs, pilotDict, pilotCEDict) assert res == expected
def test__ifAndWhereToSubmit(mocker, mockMatcherReturnValue, expected, anyExpected, sitesExpected): """ Testing SiteDirector()._ifAndWhereToSubmit() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.CSGlobals.getSetup", side_effect=mockCSGlobalReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.matcherClient = MagicMock() sd.matcherClient.getMatchingTaskQueues.return_value = mockMatcherReturnValue res = sd._ifAndWhereToSubmit() assert res[0] == expected if res[0]: assert res == (expected, anyExpected, sitesExpected, set())
def test__getPilotOptions(mocker): """ Testing SiteDirector()._getPilotOptions() """ mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__" ) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = { 'aQueue': { 'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': { 'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': '' } } } res = sd._getPilotOptions('aQueue', 10) assert res[0] == [ '-S TestSetup', '-V 123', '-l 123', '-r 1,2,3', '-g 123', '-o /Security/ProxyToken=token', '-M 1', '-C T,e,s,t,S,e,t,u,p', '-e 1,2,3', '-N aCE', '-Q aQueue', '-n LCG.CERN.cern' ] assert res[1] == 1
def sd(mocker): """mocker for SiteDirector""" mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__" ) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply) mocker.patch( "DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel("DEBUG") sd.rpcMatcher = MagicMock() sd.rssClient = MagicMock() sd.workingDirectory = "" sd.queueDict = { "aQueue": { "Site": "LCG.CERN.cern", "CEName": "aCE", "CEType": "SSH", "QueueName": "aQueue", "ParametersDict": { "CPUTime": 12345, "Community": "lhcb", "OwnerGroup": ["lhcb_user"], "Setup": "LHCb-Production", "Site": "LCG.CERN.cern", }, } } return sd
def test__allowedToSubmit(self, _patch1): """ Testing SiteDirector()._allowedToSubmit() """ sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = { 'aQueue': { 'Site': 'LCG.CERN.cern', 'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': { 'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern', 'SubmitPool': '' } } } submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) self.assertFalse(submit) sd.siteMaskList = ['LCG.CERN.cern', 'DIRAC.CNAF.it'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) self.assertTrue(submit) sd.rssFlag = True submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) self.assertFalse(submit) sd.ceMaskList = ['aCE', 'anotherCE'] submit = sd._allowedToSubmit('aQueue', True, set(['LCG.CERN.cern']), set()) self.assertTrue(submit)
def test__getPilotOptions(mocker): """ Testing SiteDirector()._getPilotOptions() """ mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule.__init__") mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gConfig.getValue", side_effect=mockGCReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.Operations", side_effect=mockOPS) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.gProxyManager.requestToken", side_effect=mockPMReply) mocker.patch("DIRAC.WorkloadManagementSystem.Agent.SiteDirector.AgentModule", side_effect=mockAM) sd = SiteDirector() sd.log = gLogger sd.am_getOption = mockAM sd.log.setLevel('DEBUG') sd.queueDict = {'aQueue': {'CEName': 'aCE', 'QueueName': 'aQueue', 'ParametersDict': {'CPUTime': 12345, 'Community': 'lhcb', 'OwnerGroup': ['lhcb_user'], 'Setup': 'LHCb-Production', 'Site': 'LCG.CERN.cern'}}} res = sd._getPilotOptions('aQueue') assert set(['-S TestSetup', '-V 123', '-l 123', '-n LCG.CERN.cern']) <= set(res)