def test_error_on_missing_entitlement_type(self): """Raise an error when neither dict contains entitlement type.""" error_msg = ('Could not determine contract delta service type %s %s' % ({}, {'something': 'non-empty'})) with pytest.raises(RuntimeError) as exc: process_entitlement_delta({}, {'something': 'non-empty'}) assert error_msg == str(exc.value)
def test_error_on_missing_entitlement_type(self): """Raise an error when neither dict contains entitlement type.""" new_access = {"entitlement": {"something": "non-empty"}} error_msg = ("Could not determine contract delta service type" " {{}} {}".format(new_access)) with pytest.raises(RuntimeError) as exc: process_entitlement_delta({}, new_access) assert error_msg == str(exc.value)
def test_error_on_missing_entitlement_type(self, FakeConfig): """Raise an error when neither dict contains entitlement type.""" new_access = {"entitlement": {"something": "non-empty"}} error_msg = ("Could not determine contract delta service type" " {{}} {}".format(new_access)) with pytest.raises(exceptions.UserFacingError) as exc: process_entitlement_delta(cfg=FakeConfig(), orig_access={}, new_access=new_access) assert error_msg == str(exc.value.msg)
def test_overrides_applied_before_comparison( self, m_process_contract_deltas, _ ): old_access = {"entitlement": {"type": "esm", "some_key": "some_value"}} new_access = { "entitlement": { "type": "esm", "some_key": "will be overridden", "series": {"fake_series": {"some_key": "some_value"}}, } } process_entitlement_delta(old_access, new_access) assert 0 == m_process_contract_deltas.call_count
def test_no_delta_on_equal_dicts(self): """No deltas are reported or processed when dicts are equal.""" assert {} == process_entitlement_delta({"entitlement": { "no": "diff" }}, {"entitlement": { "no": "diff" }})
def test_full_delta_on_empty_orig_dict(self, m_process_contract_deltas): """Process and report full deltas on empty original access dict.""" # Limit delta processing logic to handle attached state-A to state-B # Fresh installs will have empty/unset new_access = {"entitlement": {"type": "esm-infra", "other": "val2"}} assert new_access == process_entitlement_delta({}, new_access) expected_calls = [mock.call({}, new_access, allow_enable=False)] assert expected_calls == m_process_contract_deltas.call_args_list
def test_no_delta_on_equal_dicts(self, FakeConfig): """No deltas are reported or processed when dicts are equal.""" assert ({}, False) == process_entitlement_delta( cfg=FakeConfig(), orig_access={"entitlement": { "no": "diff" }}, new_access={"entitlement": { "no": "diff" }}, )
def test_deltas_handled_by_entitlement_process_contract_deltas( self, m_process_contract_deltas): """Call entitlement.process_contract_deltas to handle any deltas.""" original_access = {'entitlement': {'type': 'esm'}} new_access = copy.deepcopy(original_access) new_access['entitlement']['newkey'] = 'newvalue' expected = {'entitlement': {'newkey': 'newvalue'}} assert expected == process_entitlement_delta( original_access, new_access) expected_calls = [ mock.call(original_access, expected, allow_enable=False)] assert expected_calls == m_process_contract_deltas.call_args_list
def test_deltas_handled_by_entitlement_process_contract_deltas( self, m_process_contract_deltas): """Call entitlement.process_contract_deltas to handle any deltas.""" original_access = {"entitlement": {"type": "esm-infra"}} new_access = copy.deepcopy(original_access) new_access["entitlement"]["newkey"] = "newvalue" expected = {"entitlement": {"newkey": "newvalue"}} assert expected == process_entitlement_delta(original_access, new_access) expected_calls = [ mock.call(original_access, expected, allow_enable=False) ] assert expected_calls == m_process_contract_deltas.call_args_list
def test_deltas_handled_by_entitlement_process_contract_deltas( self, m_process_contract_deltas, FakeConfig): """Call entitlement.process_contract_deltas to handle any deltas.""" m_process_contract_deltas.return_value = True original_access = {"entitlement": {"type": "esm-infra"}} new_access = copy.deepcopy(original_access) new_access["entitlement"]["newkey"] = "newvalue" expected = {"entitlement": {"newkey": "newvalue"}} assert (expected, True) == process_entitlement_delta( cfg=FakeConfig(), orig_access=original_access, new_access=new_access, ) expected_calls = [ mock.call(original_access, expected, allow_enable=False) ] assert expected_calls == m_process_contract_deltas.call_args_list
def test_no_delta_on_equal_dicts(self): """No deltas are reported or processed when dicts are equal.""" assert {} == process_entitlement_delta({'no': 'diff'}, {'no': 'diff'})