Exemple #1
0
def test_parse_name4():
    # 'von Last, First' format:
    author = u.parse_name('jean de la fontaine,')
    assert author.last == 'fontaine'
    assert author.first == ''
    assert author.von == 'jean de la'
    assert author.jr == ''
    author = u.parse_name('de la fontaine, Jean')
    assert author.last == 'fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de la'
    assert author.jr == ''
    author = u.parse_name('De La fontaine, Jean')
    assert author.last == 'De La fontaine'
    assert author.first == 'Jean'
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('De la Fontaine, Jean')
    assert author.last == 'Fontaine'
    assert author.first == 'Jean'
    assert author.von == 'De la'
    assert author.jr == ''
    author = u.parse_name('de La Fontaine, Jean')
    assert author.last == 'La Fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de'
    assert author.jr == ''
Exemple #2
0
def test_parse_name3():
    # 'Last, First' format:
    author = u.parse_name('Jones,')
    assert author.last == 'Jones'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('AAS Team,')
    assert author.last == 'AAS Team'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    # Blank field does not count:
    author = u.parse_name('AAS Team,   ')
    assert author.last == 'AAS Team'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('{AAS Team},')
    assert author.last == '{AAS Team}'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('Jones, Eric')
    assert author.last == 'Jones'
    assert author.first == 'Eric'
    assert author.von == ''
    assert author.jr == ''
Exemple #3
0
def test_repr_author3():
    assert u.repr_author(u.parse_name("van der Waals, Johannes D.")) \
           == 'van der Waals, Johannes D.'
    assert u.repr_author(u.parse_name("  van  der  Waals  ,  Johannes  D.  ")) \
           == 'van der Waals, Johannes D.'
    assert u.repr_author(
               u.parse_name("  van  der  {Waals}   ,  {Johannes  D.}")) \
           == 'van der {Waals}, {Johannes D.}'
Exemple #4
0
def test_repr_author2():
    # Strip outer blanks, collapse inner blanks (even protected):
    assert u.repr_author(u.parse_name("Johannes D. van der Waals")) \
           == 'van der Waals, Johannes D.'
    assert u.repr_author(u.parse_name("Johannes  D.  van  der   Waals")) \
           == 'van der Waals, Johannes D.'
    assert u.repr_author(u.parse_name("  Johannes D. van der Waals  ")) \
           == 'van der Waals, Johannes D.'
    assert u.repr_author(u.parse_name("  {Johannes D.} van der {Waals}  ")) \
           == 'van der {Waals}, {Johannes D.}'
    assert u.repr_author(u.parse_name("{Johannes  D.} van der Waals")) \
           == 'van der Waals, {Johannes D.}'
Exemple #5
0
def test_parse_name2():
    # 'First von Last' format:
    author = u.parse_name("Jean de la Fontaine")
    assert author.last == 'Fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de la'
    assert author.jr == ''
    author = u.parse_name("Jean de la fontaine")
    assert author.last == 'fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de la'
    assert author.jr == ''
    author = u.parse_name("Jean de La Fontaine")
    assert author.last == 'La Fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de'
    assert author.jr == ''
    author = u.parse_name("Jean De la Fontaine")
    assert author.last == 'Fontaine'
    assert author.first == 'Jean De'
    assert author.von == 'la'
    assert author.jr == ''
    author = u.parse_name("Jean De La Fontaine")
    assert author.last == 'Fontaine'
    assert author.first == 'Jean De La'
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name("jean de la Fontaine")
    assert author.last == 'Fontaine'
    assert author.first == ''
    assert author.von == 'jean de la'
    assert author.jr == ''
    author = u.parse_name("jean de la fontaine")
    assert author.last == 'fontaine'
    assert author.first == ''
    assert author.von == 'jean de la'
    assert author.jr == ''
    author = u.parse_name("Jean {de} la fontaine")
    assert author.last == 'fontaine'
    assert author.first == 'Jean {de}'
    assert author.von == 'la'
    assert author.jr == ''
    author = u.parse_name("jean {de} {la} fontaine")
    assert author.last == '{de} {la} fontaine'
    assert author.first == ''
    assert author.von == 'jean'
    assert author.jr == ''
    author = u.parse_name("Jean {de} {la} fontaine")
    assert author.last == 'fontaine'
    assert author.first == 'Jean {de} {la}'
    assert author.von == ''
    assert author.jr == ''
Exemple #6
0
def test_parse_name1():
    # 'First Last' format:
    author = u.parse_name('Jones')
    assert author.last == 'Jones'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('jones')
    assert author.last == 'jones'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('Eric Jones')
    assert author.last == 'Jones'
    assert author.first == 'Eric'
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('Eric Steve Jones')
    assert author.last == 'Jones'
    assert author.first == 'Eric Steve'
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('{Jones Schmidt}')
    assert author.last == '{Jones Schmidt}'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == ''
    author = u.parse_name('Eric Steve {Jones Schmidt}')
    assert author.last == '{Jones Schmidt}'
    assert author.first == 'Eric Steve'
    assert author.von == ''
    assert author.jr == ''
Exemple #7
0
def test_parse_name5():
    # von Last, Jr, First
    author = u.parse_name('de la Fontaine, sr., Jean')
    assert author.last == 'Fontaine'
    assert author.first == 'Jean'
    assert author.von == 'de la'
    assert author.jr == 'sr.'
    author = u.parse_name('Fontaine, sr., Jean')
    assert author.last == 'Fontaine'
    assert author.first == 'Jean'
    assert author.von == ''
    assert author.jr == 'sr.'
    author = u.parse_name('Fontaine, sr.,')
    assert author.last == 'Fontaine'
    assert author.first == ''
    assert author.von == ''
    assert author.jr == 'sr.'
    author = u.parse_name('Fontaine,, Jean')
    assert author.last == 'Fontaine'
    assert author.first == 'Jean'
    assert author.von == ''
    assert author.jr == ''
Exemple #8
0
def get_authors():
    author_lists = [[u.parse_name('{Hunter}, J. D.')],
                    [
                        u.parse_name('{AAS Journals Team}'),
                        u.parse_name('{Hendrickson}, A.')
                    ],
                    [
                        u.parse_name('Eric Jones'),
                        u.parse_name('Travis Oliphant'),
                        u.parse_name('Pearu Peterson')
                    ]]
    # Short format:
    assert u.get_authors(author_lists[0]) == '{Hunter}, J. D.'
    assert u.get_authors(author_lists[1]) \
           == '{AAS Journals Team} and {Hendrickson}, A.'
    assert u.get_authors(author_lists[2]) == 'Jones, Eric; et al.'

    # Long format:
    assert u.get_authors(author_lists[0], short=False) \
           == '{Hunter}, J. D.'
    assert u.get_authors(author_lists[1], short=False) \
           == '{AAS Journals Team} and {Hendrickson}, A.'
    assert u.get_authors(author_lists[2], short=False) \
           == 'Jones, Eric; Oliphant, Travis; and Peterson, Pearu'
Exemple #9
0
def test_get_authors_ushort_non_ascii():
    authors = [u.parse_name(r'{Huang (黄新川)}, Xinchuan')]
    assert u.get_authors(authors, 'ushort') == 'Huang (黄新川)'
Exemple #10
0
def test_get_authors_ushort_dash():
    authors = [u.parse_name(r'{Ben-Jaffel}, Lotfi')]
    assert u.get_authors(authors, 'ushort') == 'Ben-Jaffel'
Exemple #11
0
def test_get_authors_ushort_spaces():
    authors = [u.parse_name('{Collier Cameron}, J. D.')]
    assert u.get_authors(authors, 'ushort') == 'Collier Cameron'
Exemple #12
0
def test_repr_author1():
    assert u.repr_author(u.parse_name("Jones")) == "Jones"
    assert u.repr_author(u.parse_name("Jones,")) == "Jones"
    assert u.repr_author(u.parse_name("Eric Jones")) == "Jones, Eric"
    assert u.repr_author(u.parse_name("Eric B. Jones")) == 'Jones, Eric B.'
Exemple #13
0
    assert u.purify('Schr{\\"o}dinger', german=True) == 'schroedinger'


def test_initials():
    assert u.initials('') == ''
    assert u.initials('D.') == 'd'
    assert u.initials('D. W.') == 'dw'
    assert u.initials('{\\"O}. H.') == 'oh'
    assert u.initials('J. Y.-K.') == 'jyk'
    assert u.initials('Phil') == 'p'
    assert u.initials('Phill Henry Scott') == 'phs'
    # An error by the user (missing blank in between):
    assert u.initials('G.O.') == 'g'


author_lists = [[u.parse_name('{Hunter}, J. D.')],
                [
                    u.parse_name('{AAS Journals Team}'),
                    u.parse_name('{Hendrickson}, A.')
                ],
                [
                    u.parse_name('Eric Jones'),
                    u.parse_name('Travis Oliphant'),
                    u.parse_name('Pearu Peterson')
                ]]


@pytest.mark.parametrize('author_format', ('short', 'long'))
def test_get_authors_single(author_format):
    assert u.get_authors(author_lists[0], author_format) == '{Hunter}, J. D.'