def test_nodesfilter(self): """Test parse_resources_nodes""" for testdata in RESOURCE_NODES: orig = testdata.pop("orig") resources = {} nodes = parse_resources_nodes(orig, "gengar", resources) self.assertEqual( "nodes=" + resources["nodes"], nodes, msg="nodes returned is equal to nodes=resources[nodes] (nodes=%s == %s)" % (resources["nodes"], nodes), ) self.assertEqual( resources, testdata, msg="generated resources equal to expected (expected %s generated %s; orig %s)" % (testdata, resources, orig), ) # up to now, 2 warnings warnings = get_warnings() self.assertEqual( warnings, [ "Warning: unknown ppn (whatever) detected, using ppn=1", "Warning: unknown ppn (woohoo) detected, using ppn=1", ], msg="expected warnings after processing examples %s" % (warnings), ) reset_warnings()
def test_nodesfilter(self): """Test parse_resources_nodes""" for testdata in RESOURCE_NODES: orig = testdata.pop('orig') resources = {} nodes = parse_resources_nodes(orig, 'gengar', resources) self.assertEqual( 'nodes=' + resources['nodes'], nodes, msg= 'nodes returned is equal to nodes=resources[nodes] (nodes=%s == %s)' % (resources['nodes'], nodes)) self.assertEqual( resources, testdata, msg= 'generated resources equal to expected (expected %s generated %s; orig %s)' % (testdata, resources, orig)) # up to now, 2 warnings warnings = get_warnings() self.assertEqual(warnings, [ 'Warning: unknown ppn (whatever) detected, using ppn=1', 'Warning: unknown ppn (woohoo) detected, using ppn=1', ], msg="expected warnings after processing examples %s" % (warnings)) reset_warnings()
def test_make_new_header_mem_limits(self, mock_cluster_overhead, mock_clusterdata): reset_warnings() sf = SubmitFilter( [], [x + "\n" for x in SCRIPTS[4].split("\n")] # requesting mem example ) mock_clusterdata.return_value = { 'TOTMEM': 4 << 30, 'PHYSMEM': 1024 << 20, 'NP': 8, 'NP_LCD': 2, } mock_cluster_overhead.return_value = 0 sf.parse_header() header = submitfilter.make_new_header(sf) # header should not change self.assertEqual(header, [ '#!/bin/bash', '#PBS -l nodes=1:ppn=4', '#PBS -l mem=4g', '#PBS -m n' '', '', ], msg='header with existing mem set') self.assertEqual(get_warnings(), [ "Unable to determine clustername, using default delcatty (no PBS_DEFAULT)", "Warning, requested %sb mem per node, this is more than the available mem (%sb), this job will never start." % (4 << 30, 1024 << 20 ) ])
def setUp(self): reset_warnings() for env in ['PBS_DEFAULT', 'PBS_DPREFIX', submitfilter.ENV_NODE_PARTITION, submitfilter.ENV_RESERVATION]: if env in os.environ: del os.environ[env] super(TestSubmitfilter, self).setUp()
def setUp(self): reset_warnings() for env in ['PBS_DEFAULT', 'PBS_DPREFIX', 'VSC_NODE_PARTITION']: if env in os.environ: del os.environ[env] # Add gengar cluster for testing purposes CLUSTERDATA['gengar'] = { 'PHYSMEM': 16439292 << 10, 'TOTMEM': 37410804 << 10, 'NP': 8, 'NP_LCD': 2, } super(TestSubmitfilter, self).setUp()
def test_nodesfilter(self): """Test parse_resources_nodes""" for testdata in RESOURCE_NODES: orig = testdata.pop('orig') resources = {} nodes = parse_resources_nodes(orig, 'gengar', resources) self.assertEqual('nodes=' + resources['nodes'], nodes, msg='nodes returned is equal to nodes=resources[nodes] (nodes=%s == %s)' % (resources['nodes'], nodes)) self.assertEqual(resources, testdata, msg='generated resources equal to expected (expected %s generated %s; orig %s)' % (testdata, resources, orig)) # up to now, 2 warnings warnings = get_warnings() self.assertEqual(warnings, ['Warning: unknown ppn (whatever) detected, using ppn=1', 'Warning: unknown ppn (woohoo) detected, using ppn=1', ], msg="expected warnings after processing examples %s" % (warnings)) reset_warnings()
def test_make_new_header_warn(self): """ Test make_new_header warnings ideal ppn vmem too high """ reset_warnings() sf = SubmitFilter( [], [x + "\n" for x in SCRIPTS[3].split("\n")] ) sf.parse_header() header = submitfilter.make_new_header(sf) self.assertEqual(header, sf.header, msg='unmodified header') self.assertEqual(get_warnings(), [ 'The chosen ppn 4 is not considered ideal: should use either lower than or multiple of 3', 'Warning, requested 1099511627776b vmem per node, this is more than the available vmem (86142287872b), this job will never start.', ], msg='warnings for ideal ppn and vmem too high')
def setUp(self): reset_warnings() for env in ['PBS_DEFAULT', 'PBS_DPREFIX', 'VSC_NODE_PARTITION']: if env in os.environ: del os.environ[env] super(TestSubmitfilter, self).setUp()
def setUp(self): reset_warnings() for env in ["PBS_DEFAULT", "PBS_DPREFIX", "VSC_NODE_PARTITION"]: if env in os.environ: del os.environ[env] super(TestSubmitfilter, self).setUp()