def test_add_document_fails_on_existing_key(): builder = LiteratureBuilder('test') builder.add_document( 'key', description='description', fulltext=True, hidden=True, material='preprint', original_url='http://www.example.com/original_url', source='source', url='url', filename='filename' ) with pytest.raises(ValueError): builder.add_document( 'key', description='description', fulltext=True, hidden=True, material='preprint', original_url='http://www.example.com/original_url', source='source', url='url', filename='filename' )
def test_add_document(): schema = load_schema('hep') subschema = schema['properties']['documents'] builder = LiteratureBuilder('test') builder.add_document( 'key', description='description', fulltext=True, hidden=True, material='material', original_url='original_url', source='source', url='url', ) expected = [ { 'description': 'description', 'fulltext': True, 'hidden': True, 'key': 'key', 'material': 'material', 'original_url': 'original_url', 'source': 'source', 'url': 'url', }, ] result = builder.record assert expected == result['documents'] for key in subschema['items']['properties'].keys(): assert key in result['documents'][0]
def test_add_document_inspire_next(): schema = load_schema('hep') subschema = schema['properties']['documents'] builder = LiteratureBuilder('test') builder.add_document( 'key', description='description', fulltext=True, hidden=True, material='preprint', original_url='http://www.example.com/original_url', source='source', url='url', ) expected = [ { 'description': 'description', 'fulltext': True, 'hidden': True, 'key': 'key', 'material': 'preprint', 'original_url': 'http://www.example.com/original_url', 'source': 'source', 'url': 'url', }, ] result = builder.record assert validate(result['documents'], subschema) is None assert expected == result['documents']
def test_add_document_fails_on_non_file_api_relative_url(): schema = load_schema('hep') subschema = schema['properties']['documents'] builder = LiteratureBuilder('test') with pytest.raises(ValidationError): builder.add_document( 'key', description='description', fulltext=True, hidden=True, material='preprint', original_url='http://www.example.com/original_url', source='source', url='/not/api/url/for/files', filename='filename' ) result = builder.record validate(result['documents'], subschema)