def test_role_is_eligible_for_repo_no_aa_data(mock_stale_aa_services, role_dict): r = Role(**role_dict) r.aa_data = [] eligible, reason = r.is_eligible_for_repo() mock_stale_aa_services.assert_not_called() assert not eligible assert reason == "no Access Advisor data available"
def test_role_stale_aa_services(role_dict): r = Role(**role_dict) r.config["repo_requirements"] = {"oldest_aa_data_days": 5} recent_dt = datetime.datetime.now() - datetime.timedelta(days=1) older_dt = datetime.datetime.now() - datetime.timedelta(days=14) r.aa_data = [ { "serviceName": "service1", "lastUpdated": recent_dt.isoformat() }, { "serviceName": "service2", "lastUpdated": recent_dt.isoformat() }, { "serviceName": "service3", "lastUpdated": older_dt.isoformat() }, { "serviceName": "service4", "lastUpdated": older_dt.isoformat() }, ] stale = r._stale_aa_services() assert "service1" not in stale assert "service2" not in stale assert "service3" in stale assert "service4" in stale
def test_role_calculate_repo_scores_no_aa_data( mock_get_permissions_for_policy_version, mock_get_repoable_permissions, mock_convert_repoable_perms_to_perms_and_services, role_dict, ): mock_get_permissions_for_policy_version.return_value = ( {"service1:action1", "service1:action2", "service2", "service3:action3"}, {"service1:action2", "service2", "service3:action3"}, ) r = Role(**role_dict) r.aa_data = [] r.calculate_repo_scores(0, {}) mock_get_permissions_for_policy_version.assert_called_once() mock_get_repoable_permissions.assert_not_called() mock_convert_repoable_perms_to_perms_and_services.assert_not_called() assert r.total_permissions == 4 assert r.repoable_services == [] assert r.repoable_permissions == 0
def test_role_stale_aa_services_no_aa_data(role_dict): r = Role(**role_dict) r.config["repo_requirements"] = {"oldest_aa_data_days": 5} r.aa_data = [] stale = r._stale_aa_services() assert len(stale) == 0