def test_is_not_vert_when_fact_is_defined_as_empty(self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: "" } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) self.assertFalse(calculator._is_virtual_machine())
def test_if_not_multi_entitled_defualt_to_1(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '1'} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed pool = create_pool("my-test-product", "My Test Product") qty = calculator.calculate(pool) self.assertEquals(1, qty)
def test_if_not_multi_entitled_defualt_to_1(self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '1' } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed pool = create_pool("my-test-product", "My Test Product") qty = calculator.calculate(pool) self.assertEquals(1, qty)
def test_on_virtual_machine_default_uses_1_if_vcpu_and_sockets_do_not_exist_on_product(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4', QuantityDefaultValueCalculator._CPUS_FACT_NAME: '8'} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed self.assertTrue(calculator._is_virtual_machine()) productAttrs = [create_attr("multi-entitlement", "yes")] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) self.assertEquals(1, qty)
def test_on_virtual_machine_currently_consumed_is_factored_into_default_calculation(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True, QuantityDefaultValueCalculator._CPUS_FACT_NAME: '4'} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = two_consumed self.assertTrue(calculator._is_virtual_machine()) productAttrs = [create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._CPUS_PROD_ATTR_NAME, "1")] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # ceil(m_cpus / p_cpus) - consumed self.assertEquals(2, qty)
def test_calculated_value_is_zero_when_negative_value_is_calculated(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4'} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = ten_consumed self.assertFalse(calculator._is_virtual_machine()) productAttrs = [create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME, "2")] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # 10 are already consumed, so 4/2 - 10 = -8 self.assertEquals(0, qty)
def test_on_pysical_machine_default_to_num_sockets_by_socket_count(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4'} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed self.assertFalse(calculator._is_virtual_machine()) productAttrs = [create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME, "2")] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # ceil(m_sockets / p_socket) self.assertEquals(2, qty)
def test_on_virtual_machine_default_uses_1_if_vcpu_and_sockets_do_not_exist_on_product( self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4', QuantityDefaultValueCalculator._CPUS_FACT_NAME: '8' } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed self.assertTrue(calculator._is_virtual_machine()) productAttrs = [create_attr("multi-entitlement", "yes")] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) self.assertEquals(1, qty)
def test_calculated_value_is_zero_when_negative_value_is_calculated(self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4' } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = ten_consumed self.assertFalse(calculator._is_virtual_machine()) productAttrs = [ create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME, "2") ] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # 10 are already consumed, so 4/2 - 10 = -8 self.assertEquals(0, qty)
def test_on_virt_machine_default_rounds_up(self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: True, QuantityDefaultValueCalculator._CPUS_FACT_NAME: '8' } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed self.assertTrue(calculator._is_virtual_machine()) productAttrs = [ create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._CPUS_PROD_ATTR_NAME, "6") ] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # ceil(m_cpus / p_cpus) self.assertEquals(2, qty)
def test_on_pysical_machine_default_to_num_sockets_by_socket_count(self): fact_dict = { QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: False, QuantityDefaultValueCalculator._SOCKET_FACT_NAME: '4' } facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) calculator._get_total_consumed = zero_consumed self.assertFalse(calculator._is_virtual_machine()) productAttrs = [ create_attr("multi-entitlement", "yes"), create_attr(QuantityDefaultValueCalculator._SOCKETS_PROD_ATTR_NAME, "2") ] pool = create_pool("my-test-product", "My Test Product", productAttributes=productAttrs) qty = calculator.calculate(pool) # ceil(m_sockets / p_socket) self.assertEquals(2, qty)
def test_total_consumed_does_not_include_future_entitlements(self): calculator = QuantityDefaultValueCalculator(StubFacts({}), entitlements) self.assertEquals(9, calculator._get_total_consumed(product_id_2))
def test_get_total_consumed_returns_zero_when_no_matches(self): calculator = QuantityDefaultValueCalculator(StubFacts({}), entitlements) self.assertEquals(0, calculator._get_total_consumed("does-not-match"))
def test_get_total_consumed_adds_matched(self): calculator = QuantityDefaultValueCalculator(StubFacts({}), entitlements) self.assertEquals(5, calculator._get_total_consumed(product_id_1))
def test_is_not_vert_when_fact_is_not_defined(self): facts = StubFacts({}, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) self.assertFalse(calculator._is_virtual_machine())
def test_is_not_vert_when_fact_is_defined_as_empty(self): fact_dict = {QuantityDefaultValueCalculator._VIRT_IS_GUEST_FACT_NAME: ""} facts = StubFacts(fact_dict, facts_changed=False) calculator = QuantityDefaultValueCalculator(facts, []) self.assertFalse(calculator._is_virtual_machine())