def test_circ_policy_create( circ_policy_martigny_data_tmp, org_martigny, lib_martigny, lib_saxon, patron_type_children_martigny, item_type_standard_martigny, patron_type_adults_martigny, item_type_specific_martigny, item_type_regular_sion, patron_type_youngsters_sion): """Test circulation policy creation.""" cipo = CircPolicy.create(circ_policy_martigny_data_tmp, delete_pid=True) assert cipo == circ_policy_martigny_data_tmp assert cipo.get('pid') == '1' cipo = CircPolicy.get_record_by_pid('1') assert cipo == circ_policy_martigny_data_tmp fetched_pid = circ_policy_id_fetcher(cipo.id, cipo) assert fetched_pid.pid_value == '1' assert fetched_pid.pid_type == 'cipo' circ_policy = deepcopy(circ_policy_martigny_data_tmp) del circ_policy['$schema'] cipo = CircPolicy.create(circ_policy, delete_pid=True) assert cipo.get('$schema') assert cipo.get('pid') == '2' cipo_data = { '$schema': 'https://ils.rero.ch/schemas/' 'circ_policies/circ_policy-v0.0.1.json', 'pid': 'cipo_test', 'name': 'test', 'organisation': { '$ref': 'https://ils.rero.ch/api/organisations/org1' }, 'is_default': False, 'allow_requests': True, 'policy_library_level': False, 'settings': [{ 'patron_type': { '$ref': 'https://ils.rero.ch/api/patron_types/ptty3' }, 'item_type': { '$ref': 'https://ils.rero.ch/api/item_types/itty1' } }, { 'patron_type': { '$ref': 'https://ils.rero.ch/api/patron_types/ptty2' }, 'item_type': { '$ref': 'https://ils.rero.ch/api/item_types/itty4' } }] } with pytest.raises(RecordValidationError): cipo = CircPolicy.create(cipo_data, delete_pid=False)
def test_circ_policy_create(db, circ_policy_martigny_data_tmp): """Test circulation policy creation.""" cipo = CircPolicy.create(circ_policy_martigny_data_tmp, delete_pid=True) assert cipo == circ_policy_martigny_data_tmp assert cipo.get('pid') == '1' cipo = CircPolicy.get_record_by_pid('1') assert cipo == circ_policy_martigny_data_tmp fetched_pid = circ_policy_id_fetcher(cipo.id, cipo) assert fetched_pid.pid_value == '1' assert fetched_pid.pid_type == 'cipo' circ_policy = deepcopy(circ_policy_martigny_data_tmp) del circ_policy['$schema'] cipo = CircPolicy.create(circ_policy, delete_pid=True) assert cipo.get('$schema') assert cipo.get('pid') == '2'
def test_circ_policy_create( circ_policy_martigny_data_tmp, circ_policy_short_martigny_data, org_martigny, lib_martigny, lib_saxon, patron_type_children_martigny, item_type_standard_martigny, patron_type_adults_martigny, item_type_specific_martigny, item_type_regular_sion, patron_type_youngsters_sion): """Test circulation policy creation.""" cipo = CircPolicy.create(circ_policy_martigny_data_tmp, delete_pid=True) assert cipo == circ_policy_martigny_data_tmp assert cipo.get('pid') == '1' cipo = CircPolicy.get_record_by_pid('1') assert cipo == circ_policy_martigny_data_tmp fetched_pid = circ_policy_id_fetcher(cipo.id, cipo) assert fetched_pid.pid_value == '1' assert fetched_pid.pid_type == 'cipo' circ_policy_data = deepcopy(circ_policy_short_martigny_data) del circ_policy_data['$schema'] cipo = CircPolicy.create(circ_policy_data, delete_pid=True) assert cipo.get('$schema') assert cipo.get('pid') == '2' cipo_data = { '$schema': 'https://bib.rero.ch/schemas/' 'circ_policies/circ_policy-v0.0.1.json', 'pid': 'cipo_test', 'name': 'test', 'organisation': { '$ref': 'https://bib.rero.ch/api/organisations/org1' }, 'is_default': False, 'allow_requests': True, 'policy_library_level': False, 'settings': [{ 'patron_type': { '$ref': 'https://bib.rero.ch/api/patron_types/ptty3' }, 'item_type': { '$ref': 'https://bib.rero.ch/api/item_types/itty1' } }, { 'patron_type': { '$ref': 'https://bib.rero.ch/api/patron_types/ptty2' }, 'item_type': { '$ref': 'https://bib.rero.ch/api/item_types/itty4' } }] } with pytest.raises(ValidationError): cipo = CircPolicy.create(cipo_data, delete_pid=False) # TEST #2 : create a second defaut policy # The first created policy (pid=1) is the default policy. # Creation of a second default policy should raise a ValidationError default_cipo = CircPolicy.get_record_by_pid('1') assert default_cipo.get('is_default') with pytest.raises(ValidationError) as excinfo: CircPolicy.create(circ_policy_martigny_data_tmp, delete_pid=True) assert 'CircPolicy: already a default policy for this org' \ in str(excinfo.value)