예제 #1
0
def test_not_str_tagfunc_return(rec_hargittai):
    def yay_func(_):
        return 6.626

    with pytest.raises(TypeError) as excinfo:
        convert(rec_hargittai, tagfuncs={'yay': yay_func})
    assert ('yay_func' and 'yay') in str(excinfo.value)
예제 #2
0
def test_include_only_required_fields(rec_hargittai):
    bibtex = ("@book{hargittai2009,\n"
              " author = {Hargittai, István},\n"
              " publisher = {Springer},\n"
              " title = {Symmetry through the eyes of a chemist},\n"
              " year = {2009}\n"
              "}\n")
    assert convert(rec_hargittai, include='required') == bibtex
예제 #3
0
def test_disallow_blank_tags_by_default(rec_sholokhov):
    tagfuncs = {
        'firstblank': lambda _: '',
        'secondblank': lambda _: ' ',
    }
    output = convert(rec_sholokhov, tagfuncs=tagfuncs)
    assert ' firstblank = {}' not in output
    assert ' secondblank =' not in output
예제 #4
0
def test_allow_blank_tags(rec_sholokhov):
    tagfuncs = {
        'firstblank': lambda _: '',
        'secondblank': lambda _: ' ',
    }
    output = convert(rec_sholokhov, tagfuncs=tagfuncs, allow_blank=True)
    assert ' firstblank = {}' in output
    assert ' secondblank = { }' in output
예제 #5
0
def test_tag_values_alignment(rec_hargittai):
    bibtex = ("@book{hargittai2009,\n"
              " author    = {Hargittai, István},\n"
              " publisher = {Springer},\n"
              " title     = {Symmetry through the eyes of a chemist},\n"
              " year      = {2009}\n"
              "}\n")
    assert convert(rec_hargittai, include='required', align=True) == bibtex
예제 #6
0
def test_different_indent(rec_hargittai):
    bibtex = ("@book{hargittai2009,\n"
              "  author = {Hargittai, István},\n"
              "  publisher = {Springer},\n"
              "  title = {Symmetry through the eyes of a chemist},\n"
              "  year = {2009}\n"
              "}\n")
    output = convert(rec_hargittai, indent=2, include='required')
    assert output == bibtex
예제 #7
0
def test_include_with_non_existent_tag(rec_hargittai):
    with pytest.raises(ValueError):
        convert(rec_hargittai, include=['non-existent'])
예제 #8
0
def test_unknown_include_string(rec_hargittai):
    with pytest.raises(AssertionError):
        convert(rec_hargittai, include='unknown')
예제 #9
0
def test_invalid_include_should_raises(rec_hargittai):
    with pytest.raises(TypeError):
        convert(rec_hargittai, include=None)
예제 #10
0
def test_extend_tagfuncs(rec_hargittai):
    new_tagfuncs = dict(new=lambda _: 'Meow')
    output = convert(rec_hargittai, tagfuncs=new_tagfuncs)
    assert ' new = {Meow},\n' in output
예제 #11
0
def test_custom_tagfuncs_priority_over_include(rec_hargittai):
    custom_tagfuncs = dict(tag=lambda _: 'Meow')
    output = convert(rec_hargittai,
                     tagfuncs=custom_tagfuncs,
                     include='required')
    assert ' tag = {Meow},\n' in output
예제 #12
0
def test_also_include_edition_field(rec_hargittai):
    output = convert(rec_hargittai, include=['edition'])
    assert ' edition = {3rd ed.},\n' in output
예제 #13
0
def test_author_or_editor_with_blank(rec_clusters):
    output = convert(rec_clusters, allow_blank=True)
    assert ' author = ' not in output
    assert ' editor = {Jellinek, J.}' in output
예제 #14
0
def test_series(rec_clusters):
    output = convert(rec_clusters, include=['series'])
    assert ' series = {Cluster physics}' in output
예제 #15
0
def test_volume(rec_sholokhov):
    output = convert(rec_sholokhov, include=['volume'])
    assert ' volume = {4 v.}' in output
예제 #16
0
def test_subtitle(rec_tsing):
    output = convert(rec_tsing)
    assert 'The mushroom at the end of the world: on the possibility of life in capitalist ruins' in output
예제 #17
0
def test_another_publication_field(rec_tsing):
    bibtex = convert(rec_tsing, include=['address'])
    assert ' address = {Princeton}' in bibtex
    assert ' publisher = {Princeton University Press}' in bibtex
예제 #18
0
def test_tag_with_none_value(rec_sholokhov):
    none_func = lambda _: None
    with pytest.warns(UserWarning):
        output = convert(rec_sholokhov, tagfuncs=dict(note=none_func))
        assert ' none = {None}' not in output
예제 #19
0
def test_custom_tagfuncs(rec_hargittai):
    custom_tagfuncs = dict(title=lambda _: 'Meow')
    output = convert(rec_hargittai, tagfuncs=custom_tagfuncs)
    assert ' title = {Meow}' in output
예제 #20
0
def test_new_bibkey(rec_hargittai):
    output = convert(rec_hargittai, bibkey='hargittai2009-sym')
    assert 'hargittai2009-sym' in output
예제 #21
0
def test_author_or_editor(rec_clusters):
    output = convert(rec_clusters)
    assert ' author = ' not in output
    assert ' editor = {Jellinek, J.}' in output
예제 #22
0
def test_custom_bibtype(rec_hargittai):
    output = convert(rec_hargittai, bibtype='BOOK')
    assert '@BOOK{' in output