def test_formdata_to_model_ignores_arxiv_pdf(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'url': 'https://arxiv.org/pdf/1511.04200.pdf' } formdata_to_model(obj, formdata) assert 'submission_pdf' not in obj.extra_data
def test_formdata_to_model_only_pdf(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'url': 'https://ora.ox.ac.uk/content01.pdf' } formdata_to_model(obj, formdata) expected = {'submission_pdf': 'https://ora.ox.ac.uk/content01.pdf'} assert expected == obj.extra_data
def test_formdata_to_model_only_chapter(mock_validate_record): schema = load_schema('hep') book_series_subschema = schema['properties']['book_series'] publication_info_subschema = schema['properties']['publication_info'] data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'end_page': '1200', 'parent_book': 'http://localhost:5000/api/literature/1373790', 'series_title': 'Astrophysics', 'start_page': '150', 'type_of_doc': 'chapter', } expected_book_series = [ {'title': 'Astrophysics'}, ] expected_publication_info = [ { 'page_end': '1200', 'page_start': '150', 'parent_record': { '$ref': 'http://localhost:5000/api/literature/1373790', }, }, ] result = formdata_to_model(obj, formdata) assert validate(result['book_series'], book_series_subschema) is None assert expected_book_series == result['book_series'] assert validate(result['publication_info'], publication_info_subschema) is None assert expected_publication_info == result['publication_info']
def test_formdata_to_model_populates_submission_data_references(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'references': [ 'baz', ], } obj = StubObj(data, extra_data) result = formdata_to_model(obj, formdata) assert obj.data == {} assert obj.extra_data == { 'submission_data': { 'references': [ 'baz', ], }, }
def test_formdata_to_model_populates_hidden_notes_from_extra_comments(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'extra_comments': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'source': 'submitter', 'value': 'baz', }, ] result = formdata_to_model(obj, formdata) assert expected == result['hidden_notes'] assert obj.data == {} assert obj.extra_data == { 'submission_data': { 'extra_comments': 'baz', }, }
def test_formdata_to_model_populates_titles_from_title_crossref(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'title_crossref': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'source': 'submitter', 'title': 'bar', }, { 'source': 'CrossRef', 'title': 'baz', }, ] result = formdata_to_model(obj, formdata) assert expected == result['titles'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_and_hidden_notes_from_conf_name( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'conf_name': 'baz', } obj = StubObj(data, extra_data) result = formdata_to_model(obj, formdata) assert result['collections'] == [ { 'primary': 'HEP', }, { 'primary': 'ConferencePaper', }, ] assert result['hidden_notes'] == [ { 'value': 'baz', }, ] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_submission_data_pdf_from_pdf(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'url': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'value': 'baz', }, ] result = formdata_to_model(obj, formdata) assert expected == result['urls'] assert obj.data == {} assert obj.extra_data == { 'submission_data': { 'pdf': 'baz', }, }
def test_formdata_to_model_populates_collections_from_field_categories_if_arxiv( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'categories': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'arXiv', }, { 'primary': 'Citeable', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_external_system_numbers_from_arxiv_id( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'arxiv_id': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'value': 'oai:arXiv.org:baz', 'institute': 'arXiv', }, ] result = formdata_to_model(obj, formdata) assert expected == result['external_system_numbers'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_external_system_numbers_from_arxiv_id(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'arxiv_id': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'value': 'oai:arXiv.org:baz', 'institute': 'arXiv', }, ] result = formdata_to_model(obj, formdata) assert expected == result['external_system_numbers'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_only_thesis(mock_validate_record): schema = load_schema('hep') subschema = schema['properties']['thesis_info'] data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'defense_date': '2010-03-03', 'degree_type': 'phd', 'institution': 'Harvard', 'thesis_date': '2011-05-03', 'type_of_doc': 'thesis', } expected = { 'date': '2011-05-03', 'defense_date': '2010-03-03', 'degree_type': 'phd', 'institutions': [ {'name': 'Harvard'}, ], } result = formdata_to_model(obj, formdata) assert validate(result['thesis_info'], subschema) is None assert expected == result['thesis_info']
def test_formdata_to_model_populates_collections_from_field_categories_if_arxiv(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'categories': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'arXiv', }, { 'primary': 'Citeable', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_abstracts_from_abstracts_if_arxiv(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'categories': 'baz', 'abstract': ' qux ', } obj = StubObj(data, extra_data) expected = [ { 'source': 'arXiv', 'value': 'qux', }, ] result = formdata_to_model(obj, formdata) assert expected == result['abstracts'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_languages_from_languages_and_other_language( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'language': 'oth', 'other_language': 'baz', } obj = StubObj(data, extra_data) expected = [ 'baz', ] result = formdata_to_model(obj, formdata) assert expected == result['languages'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_from_type_of_doc_thesis( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'thesis', 'title': [ 'foo', ], } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'THESIS', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_from_complete_publication_info( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'issue': 'baz', 'volume': 'qux', 'year': 'quux', } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'Published', }, { 'primary': 'Citeable', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_from_complete_publication_info(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'issue': 'baz', 'volume': 'qux', 'year': 'quux', } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'Published', }, { 'primary': 'Citeable', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_from_type_of_doc_thesis(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'thesis', 'title': [ 'foo', ], } obj = StubObj(data, extra_data) expected = [ { 'primary': 'HEP', }, { 'primary': 'THESIS', }, ] result = formdata_to_model(obj, formdata) assert expected == result['collections'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_collections_and_hidden_notes_from_conf_name(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'conf_name': 'baz', } obj = StubObj(data, extra_data) result = formdata_to_model(obj, formdata) assert result['collections'] == [ { 'primary': 'HEP', }, { 'primary': 'ConferencePaper', }, ] assert result['hidden_notes'] == [ { 'value': 'baz', }, ] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_only_pdf(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'url': 'https://ora.ox.ac.uk/content01.pdf' } formdata_to_model(obj, formdata) expected = { 'submission_pdf': 'https://ora.ox.ac.uk/content01.pdf' } assert expected == obj.extra_data
def test_formdata_to_model_ignores_arxiv_additional_url(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'additional_url': 'https://arxiv.org/abs/1511.04200' } record = formdata_to_model(obj, formdata) assert 'urls' not in record
def test_formdata_to_model_only_additional_url(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'additional_url': 'https://ora.ox.ac.uk/splash_page.html' } record = formdata_to_model(obj, formdata) expected_urls = [{'value': 'https://ora.ox.ac.uk/splash_page.html'}] assert expected_urls == record['urls'] assert 'submission_pdf' not in obj.extra_data
def test_formdata_to_model_populates_schema(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], } obj = StubObj(data, extra_data) expected = 'https://localhost:5000/schemas/records/hep.json' result = formdata_to_model(obj, formdata) assert expected == result['$schema'] assert obj.data == {}
def test_formdata_to_model_no_page_nr_when_invalid_page_range_article_id( u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'page_range_article_id': 'baz-qux', } obj = StubObj(data, extra_data) result = formdata_to_model(obj, formdata) assert 'page_nr' not in result assert obj.data == {}
def test_formdata_to_model_only_additional_url(): data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'type_of_doc': 'article', 'title': 'Test title', 'additional_url': 'https://ora.ox.ac.uk/splash_page.html' } record = formdata_to_model(obj, formdata) expected_urls = [{ 'value': 'https://ora.ox.ac.uk/splash_page.html' }] assert expected_urls == record['urls'] assert 'submission_pdf' not in obj.extra_data
def test_formdata_to_model_populates_page_nr_from_page_range_article_id(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'page_range_article_id': '1-10', } obj = StubObj(data, extra_data) expected = 10 result = formdata_to_model(obj, formdata) assert expected == result['page_nr'] assert obj.data == {}
def test_formdata_to_model_populates_languages_from_languages(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'language': 'fre' } obj = StubObj(data, extra_data) expected = [ 'French', ] result = formdata_to_model(obj, formdata) assert expected == result['languages'] assert obj.data == {}
def test_formdata_to_model_no_page_nr_when_invalid_page_range_article_id(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'page_range_article_id': 'baz-qux', } obj = StubObj(data, extra_data) result = formdata_to_model(obj, formdata) assert 'page_nr' not in result assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_schema(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], } obj = StubObj(data, extra_data) expected = 'https://localhost:5000/schemas/records/hep.json' result = formdata_to_model(obj, formdata) assert expected == result['$schema'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_populates_page_nr_from_page_range_article_id(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'page_range_article_id': '1-10', } obj = StubObj(data, extra_data) expected = 10 result = formdata_to_model(obj, formdata) assert expected == result['page_nr'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }
def test_formdata_to_model_normalizes_journal_title(e, ui, u): e.return_value = Response({ 'hits': { 'hits': [ { '_index': 'records-hep', '_type': 'hep', '_id': '42', '_source': { 'short_titles': [ { 'title': 'quux' }, ], }, }, ], }, }) data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'journal_title': 'baz', } obj = StubObj(data, extra_data) expected = [ { 'journal_title': 'quux' }, ] result = formdata_to_model(obj, formdata) assert expected == result['publication_info']
def test_formdata_to_model_only_book(mock_validate_record): schema = load_schema('hep') subschema = schema['properties']['book_series'] data = {} extra_data = {} obj = MockObj(data, extra_data) formdata = { 'series_title': 'Astrophysics No2', 'series_volume': 'Universe', 'type_of_doc': 'book', } expected = [ { 'title': 'Astrophysics No2', 'volume': 'Universe', }, ] result = formdata_to_model(obj, formdata) assert validate(result['book_series'], subschema) is None assert expected == result['book_series']
def test_formdata_to_model_populates_languages_from_languages_and_other_language(u, ui): data = {} extra_data = {} formdata = { 'type_of_doc': 'foo', 'title': [ 'bar', ], 'language': 'oth', 'other_language': 'baz', } obj = StubObj(data, extra_data) expected = [ 'baz', ] result = formdata_to_model(obj, formdata) assert expected == result['languages'] assert obj.data == {} assert obj.extra_data == { 'submission_data': {}, }