Example #1
0
def test_author(db, minimal_record, recid_pid):
    """"Test author."""
    minimal_record['creators'] = []
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['author'] == []

    minimal_record['creators'] = [
        {
            'familyname': 'TestFamily1',
            'givennames': 'TestGiven1'
        },
        {
            'familyname': 'TestFamily2',
            'name': 'TestName2'
        },
        {
            'name': 'TestName3'
        },
    ]
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['author'] == [
        {
            'family': 'TestFamily1',
            'given': 'TestGiven1'
        },
        {
            'family': 'TestName2'
        },
        {
            'family': 'TestName3'
        },
    ]
Example #2
0
def test_type(db, minimal_record, recid_pid):
    """"Test type."""
    minimal_record.update(
        {'resource_type': {
            'type': 'publication',
            'subtype': 'thesis'
        }})
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'thesis'

    minimal_record.update({'resource_type': {'type': 'publication'}})
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'article'

    minimal_record.update({'resource_type': {'type': 'image'}})
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'graphic'
Example #3
0
def test_author(app, minimal_record, recid_pid):
    """"Test author."""
    minimal_record['creators'] = []
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['author'] == []

    minimal_record['creators'] = [
        {'familyname': 'TestFamily1', 'givennames': 'TestGiven1'},
        {'familyname': 'TestFamily2', 'name': 'TestName2'},
        {'name': 'TestName3'},
    ]
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['author'] == [
        {'family': 'TestFamily1', 'given': 'TestGiven1'},
        {'family': 'TestName2'},
        {'family': 'TestName3'},
    ]
Example #4
0
def test_type(app, minimal_record, recid_pid):
    """"Test type."""
    minimal_record.update({
        'resource_type': {'type': 'publication', 'subtype': 'thesis'}
    })
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'thesis'

    minimal_record.update({
        'resource_type': {'type': 'publication'}
    })
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'article'

    minimal_record.update({
        'resource_type': {'type': 'image'}
    })
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['type'] == 'graphic'
Example #5
0
def test_other(db, minimal_record, recid_pid):
    """Test other fields."""
    minimal_record['language'] = 'en'
    minimal_record['notes'] = 'Test note'
    minimal_record['imprint'] = {
        'publisher': 'Zenodo',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['language'] == 'en'
    assert obj['note'] == 'Test note'
    assert obj['publisher'] == 'Zenodo'
Example #6
0
def test_other(app, minimal_record, recid_pid):
    """Test other fields."""
    minimal_record['language'] = 'en'
    minimal_record['notes'] = 'Test note'
    minimal_record['imprint'] = {
        'publisher': 'Zenodo',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['language'] == 'en'
    assert obj['note'] == 'Test note'
    assert obj['publisher'] == 'Zenodo'
Example #7
0
def test_full(db, full_record, recid_pid):
    """Test minimal record."""
    obj = csl_v1.transform_record(recid_pid, Record(full_record))
    assert obj == {
        "publisher_place":
        "Staszkowka",
        "type":
        "book",
        "author": [{
            "given": "John",
            "family": "Doe"
        }, {
            "given": "Jane",
            "family": "Doe"
        }, {
            "given": "John",
            "family": "Smith"
        }, {
            "given": "Jack",
            "family": "Nowak"
        }],
        "title":
        "Test title",
        "ISBN":
        "978-0201633610",
        "issue":
        "2",
        "language":
        "eng",
        "volume":
        "20",
        "publisher":
        "Jol",
        "version":
        "1.2.5",
        "note":
        "notes",
        "issued": {
            "date-parts": [[2014, 2, 27]]
        },
        "abstract":
        "Test Description",
        "DOI":
        "10.1234/foo.bar",
        "page":
        "20",
        "container_title":
        "Bam",
        "id":
        "123",
        "ISSN":
        "0317-8471"
    }
Example #8
0
def test_journal(db, minimal_record, recid_pid):
    """Test journal record."""
    minimal_record['journal'] = {
        'volume': '42',
        'issue': '7',
        'title': 'Journal title',
        'pages': '10-20',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['container_title'] == 'Journal title'
    assert obj['volume'] == '42'
    assert obj['issue'] == '7'
    assert obj['page'] == '10-20'
Example #9
0
def test_identifiers(db, minimal_record, recid_pid):
    """"Test identifiers."""
    minimal_record['doi'] = '10.1234/foo'
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['DOI'] == '10.1234/foo'
    assert 'publisher' not in obj

    minimal_record['doi'] = '10.5281/foo'
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['DOI'] == '10.5281/foo'
    assert obj['publisher'] == 'Zenodo'

    minimal_record['imprint'] = {'isbn': '978-1604598933'}
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['ISBN'] == '978-1604598933'

    minimal_record['alternate_identifiers'] = [{
        'identifier': 'ISSN 0264-2875',
        'scheme': 'issn'
    }]
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['ISSN'] == 'ISSN 0264-2875'
Example #10
0
def test_identifiers(app, minimal_record, recid_pid):
    """"Test identifiers."""
    minimal_record['doi'] = '10.1234/foo'
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['DOI'] == '10.1234/foo'
    assert 'publisher' not in obj

    minimal_record['doi'] = '10.5281/foo'
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['DOI'] == '10.5281/foo'
    assert obj['publisher'] == 'Zenodo'

    minimal_record['imprint'] = {'isbn': '978-1604598933'}
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['ISBN'] == '978-1604598933'

    minimal_record['alternate_identifiers'] = [{
        'identifier': 'ISSN 0264-2875',
        'scheme': 'issn'
    }]
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['ISSN'] == 'ISSN 0264-2875'
Example #11
0
def test_journal(app, minimal_record, recid_pid):
    """Test journal record."""
    minimal_record['journal'] = {
        'volume': '42',
        'issue': '7',
        'title': 'Journal title',
        'pages': '10-20',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['container_title'] == 'Journal title'
    assert obj['volume'] == '42'
    assert obj['issue'] == '7'
    assert obj['page'] == '10-20'
Example #12
0
def test_part_of(db, minimal_record, recid_pid):
    """Test journal record."""
    minimal_record['part_of'] = {
        'title': 'Conference proceedings title',
        'pages': '10-20',
    }
    minimal_record['imprint'] = {
        'publisher': 'The Good Publisher',
        'place': 'Somewhere',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['container_title'] == 'Conference proceedings title'
    assert obj['page'] == '10-20'
    assert obj['publisher'] == 'The Good Publisher'
    assert obj['publisher_place'] == 'Somewhere'
Example #13
0
def test_part_of(app, minimal_record, recid_pid):
    """Test journal record."""
    minimal_record['part_of'] = {
        'title': 'Conference proceedings title',
        'pages': '10-20',
    }
    minimal_record['imprint'] = {
        'publisher': 'The Good Publisher',
        'place': 'Somewhere',
    }
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    assert obj['container_title'] == 'Conference proceedings title'
    assert obj['page'] == '10-20'
    assert obj['publisher'] == 'The Good Publisher'
    assert obj['publisher_place'] == 'Somewhere'
Example #14
0
def test_minimal(app, minimal_record, recid_pid):
    """Test minimal record."""
    obj = csl_v1.transform_record(recid_pid, Record(minimal_record))
    d = datetime.utcnow().date()
    assert obj == {
        'id': '123',
        'type': 'dataset',
        'title': 'Test',
        'abstract': 'My description',
        'author': [
            {'family': 'Test'},
        ],
        'issued': {
            'date-parts': [[d.year, d.month, d.day]]
        }
    }
Example #15
0
def test_full(db, full_record, recid_pid):
    """Test minimal record."""
    obj = csl_v1.transform_record(recid_pid, Record(full_record))
    assert obj == {
        "publisher_place": "Staszkowka",
        "type": "book",
        "author": [
            {
                "given": "John",
                "family": "Doe"
            },
            {
                "given": "Jane",
                "family": "Doe"
            },
            {
                "given": "John",
                "family": "Smith"
            },
            {
                "given": "Jack",
                "family": "Nowak"
            }
        ],
        "title": "Test title",
        "ISBN": "978-0201633610",
        "issue": "2",
        "language": "eng",
        "volume": "20",
        "publisher": "Jol",
        "version": "1.2.5",
        "note": "notes",
        "issued": {
            "date-parts": [[2014, 2, 27]]
        },
        "abstract": "Test Description",
        "DOI": "10.1234/foo.bar",
        "page": "20",
        "container_title": "Bam",
        "id": "123",
        "ISSN": "0317-8471"
    }