Skip to content
Snippets Groups Projects
Select Git revision
  • 93f70e23f4a18980d36d8412eb392c7375e5fce8
  • python3 default protected
  • feature/exabgp_support2
  • feature/exabgp_support2.bgpextcommunity
  • feature/exabgp_support2.django4.2
  • fix/existingcheck_honor_fragtype
  • feature/python3-authz_netmask
  • feature/authz_netmask
  • fix/wrong_ratelimit_stats
  • feature/requirements_version_update2024-01
  • feature/split_celery
  • feature/improved-warning-mails
  • fix/reenable_expireset_via_restapi
  • feature/admin_user_delete_with_owned_rule_reassigning1
  • feature/admin_user_delete_with_owned_rule_reassigning
  • feature/branded_doc
  • fix/forked_snmp_polling_worker_exit_issue
  • fix/false_user_activation_error
  • feature/exabgp_with_docker-compose
  • fix/prefix_overlap_handling
  • fix/js_security_issues-a
  • save1
  • rpm-1.5-7
  • working1
  • myv1.6
  • t12b1
  • v1.5_newnew2
  • merged_final
  • v1.5_newnew
  • startstop_old
  • myadd2
  • tomas3
  • merge_jra2t6_and_RESTAPI
  • mytomas2
  • mynew1
  • new_jra2t6
  • v1.5_final
  • fod16_ruleroutes-merged_old
  • merged_new
  • v1.6_new_old
  • v1.5_new_old_follower
41 results

iprange_match.py

Blame
  • test_conversion.py 3.41 KiB
    from sqlalchemy import select
    from sqlalchemy.orm import lazyload
    
    from compendium_v2.db import db
    from compendium_v2.db.presentation_models import NREN
    from compendium_v2.db.survey_models import Survey, SurveyResponse, SurveyStatus
    from compendium_v2.conversion.conversion import _cli, convert_answers, load_service_data
    
    
    def mock_convert_answers(_):
        return {"data": {}}
    
    
    def mock_query_nren(_):
        return {16455: "answer1"}
    
    
    def mock_load_service_data():
        return {}
    
    
    def test_queries(app_with_survey_db, mocker):
    
        with app_with_survey_db.app_context():
            db.session.add(Survey(year=2022, status=SurveyStatus.closed, survey={}))
            db.session.add(NREN(name='Restena', country='country'))
            db.session.commit()
    
        mocker.patch('compendium_v2.conversion.conversion.convert_answers', mock_convert_answers)
        mocker.patch('compendium_v2.conversion.conversion.query_nren', mock_query_nren)
        mocker.patch('compendium_v2.conversion.conversion.load_service_data', mock_load_service_data)
    
        _cli(app_with_survey_db)
    
        with app_with_survey_db.app_context():
    
            responses = db.session.scalars(
                select(SurveyResponse).options(lazyload("*")).order_by(SurveyResponse.nren_id)
            ).all()
            assert len(responses) == 1
            assert responses[0].answers == {"data": {}, "page": 0, "verification_status": {}}
    
    
    def test_conversion():
    
        answers = {
            16455: '"full nren name"',
            16453: '["ec project1", "ec project2"]',
            16632: '"3434"',
            16432: '"suborg name 3"',
            16410: '"We use a combination of flat fee and usage-based fee"',
            16474: '"Yes"',
            16476: '"No"',
            16491: '["Universities", "Further education"]',
            16492: '["Research institutes", "Universities"]'
        }
    
        converted_answers = convert_answers(answers)
    
        assert converted_answers == {
            'data': {
                'charging_mechanism': 'combination',
                'suborganization_details': [{}, {}, {}, {'suborganization_name': 'suborg name 3'}],
                'ec_project_names': [{'ec_project_name': 'ec project1'}, {'ec_project_name': 'ec project2'}],
                'full_name_english': 'full nren name',
                'policies': {'connectivity_policy': {'available': ['yes']}, 'acceptable_use_policy': {}},
                'traffic_load': {'iros': {'peak_to_institutions_from_network': '3434'}},
                'service_matrix': {
                    'universities': {'service_types': ['security', 'isp_support']},
                    'further_education': {'service_types': ['security']},
                    'institutes': {'service_types': ['isp_support']}
                }
            }
        }
    
    
    def test_load_service_data():
        service_data_dict = load_service_data()
        assert len(service_data_dict.keys()) == 42
        assert len(service_data_dict['ARNES'].keys()) == 8
        assert len(service_data_dict['ARNES']['services_identity']) == 3
        assert len(service_data_dict['SURF'].keys()) == 7
        assert len(service_data_dict['SURF']['services_network']) == 10
        assert service_data_dict['SURF']['services_security']['security-audit'] == {
            'offered': ['yes'],
            'name': 'SURFaudit',
            'additional_information': 'The Standard for Information Security in Higher Education is the basis of '
                                      'SURFaudit’s self-assessment.\n\nSURFaudit Security Standard for Higher '
                                      'Education is derived from the ISO/IEC 27002:2013 standard'
        }