Browse Source

[test] Test authors.py module

pull/97/head
Louis 9 years ago
parent
commit
ad50ae1ec9
  1. 50
      test/test_authors.py

50
test/test_authors.py

@ -0,0 +1,50 @@
"""Tests of author parsing."""
# pylint: disable=too-few-public-methods
import re
import unittest
from patacrep import authors
SPLIT_AUTHORS_DATA = [
("Edgar Allan Poe", ("Poe", "Edgar Allan")),
("Richard M. Stallman", ("Stallman", "Richard M.")),
("Georges Brassens", ("Brassens", "Georges")),
("The Who", ("Who", "The")),
("Cher", ("Cher", "")),
]
PROCESS_AUTHORS_DATA = [
(
"Lyrics by William Blake (from Milton, 1808), music by Hubert Parry (1916), and sung by The Royal\ Choir~of~FooBar (just here to show you how processing is done)",
[
("Blake", "William"),
("Parry", "Hubert"),
("Royal\ Choir~of~FooBar", "The"),
]
),
]
class TestAutors(unittest.TestCase):
"""Test of author parsing."""
def test_split_author_names(self):
for argument, expected in SPLIT_AUTHORS_DATA:
with self.subTest(argument=argument, expected=expected):
self.assertEqual(authors.split_author_names(argument), expected)
def test_processauthors(self):
for argument, expected in PROCESS_AUTHORS_DATA:
with self.subTest(argument=argument, expected=expected):
self.assertEqual(
authors.processauthors(
argument,
**authors.compile_authwords({
"after": ["by"],
"ignore": ["anonymous"],
"sep": ['and'],
})
),
expected
)
Loading…
Cancel
Save