Revision 2096d068

b/test/ganeti.cmdlib_unittest.py
570 570
                      new, None)
571 571

  
572 572

  
573
class TestComputeMinMaxSpec(unittest.TestCase):
574
  def setUp(self):
575
    self.ipolicy = {
576
      constants.ISPECS_MAX: {
577
        constants.ISPEC_MEM_SIZE: 512,
578
        constants.ISPEC_DISK_SIZE: 1024,
579
        },
580
      constants.ISPECS_MIN: {
581
        constants.ISPEC_MEM_SIZE: 128,
582
        constants.ISPEC_DISK_COUNT: 1,
583
        },
584
      }
585

  
586
  def testNoneValue(self):
587
    self.assertTrue(cmdlib._ComputeMinMaxSpec(constants.ISPEC_MEM_SIZE,
588
                                              self.ipolicy, None) is None)
589

  
590
  def testAutoValue(self):
591
    self.assertTrue(cmdlib._ComputeMinMaxSpec(constants.ISPEC_MEM_SIZE,
592
                                              self.ipolicy,
593
                                              constants.VALUE_AUTO) is None)
594

  
595
  def testNotDefined(self):
596
    self.assertTrue(cmdlib._ComputeMinMaxSpec(constants.ISPEC_NIC_COUNT,
597
                                              self.ipolicy, 3) is None)
598

  
599
  def testNoMinDefined(self):
600
    self.assertTrue(cmdlib._ComputeMinMaxSpec(constants.ISPEC_DISK_SIZE,
601
                                              self.ipolicy, 128) is None)
602

  
603
  def testNoMaxDefined(self):
604
    self.assertTrue(cmdlib._ComputeMinMaxSpec(constants.ISPEC_DISK_COUNT,
605
                                                self.ipolicy, 16) is None)
606

  
607
  def testOutOfRange(self):
608
    for (name, val) in ((constants.ISPEC_MEM_SIZE, 64),
609
                        (constants.ISPEC_MEM_SIZE, 768),
610
                        (constants.ISPEC_DISK_SIZE, 4096),
611
                        (constants.ISPEC_DISK_COUNT, 0)):
612
      min_v = self.ipolicy[constants.ISPECS_MIN].get(name, val)
613
      max_v = self.ipolicy[constants.ISPECS_MAX].get(name, val)
614
      self.assertEqual(cmdlib._ComputeMinMaxSpec(name, self.ipolicy, val),
615
                       "%s value %s is not in range [%s, %s]" %
616
                       (name, val,min_v, max_v))
617

  
618
  def test(self):
619
    for (name, val) in ((constants.ISPEC_MEM_SIZE, 256),
620
                        (constants.ISPEC_MEM_SIZE, 128),
621
                        (constants.ISPEC_MEM_SIZE, 512),
622
                        (constants.ISPEC_DISK_SIZE, 1024),
623
                        (constants.ISPEC_DISK_SIZE, 0),
624
                        (constants.ISPEC_DISK_COUNT, 1),
625
                        (constants.ISPEC_DISK_COUNT, 5)):
626
      self.assertTrue(cmdlib._ComputeMinMaxSpec(name, self.ipolicy, val)
627
                      is None)
628

  
629

  
573 630
def _ValidateComputeMinMaxSpec(name, *_):
574 631
  assert name in constants.ISPECS_PARAMETERS
575 632
  return None

Also available in: Unified diff