diff options
| -rw-r--r-- | fatcat/sql.py | 66 | ||||
| -rw-r--r-- | tests/test_backend.py | 6 | 
2 files changed, 69 insertions, 3 deletions
| diff --git a/fatcat/sql.py b/fatcat/sql.py index 01da5873..c6e1aa4e 100644 --- a/fatcat/sql.py +++ b/fatcat/sql.py @@ -1,10 +1,13 @@ +import random  from fatcat import app, db  from fatcat.models import *  def populate_db(): +    """ +    TODO: doesn't create an edit trail (yet) +    """ -    # XXX: doesn't create an edit trail (yet)      n_elkies = CreatorRevision(          name="Noam D. Elkies",          sortname="Elkies, N", @@ -30,3 +33,64 @@ def populate_db():      #    title="Full Band All-sky Search for Periodic Gravitational Waves in the O1 LIGO Data")      db.session.commit() + +def populate_complex_db(count=100): +    """ +    TODO: doesn't create an edit trail (yet) +    """ + +    first_names = ("Sarah", "Robin", "Halko", "Jefferson", "Max", "桃井", +        "Koizumi", "Rex", "Billie", "Tenzin") +    last_names = ("Headroom", "はるこ", "Jun'ichirō", "Wong", "Smith") + +    author_revs = [] +    author_ids = [] +    for i in range(count): +        first = random.choice(first_names) +        last = random.choice(last_names) +        ar = CreatorRevision( +            name="{} {}".format(first, last), +            sortname="{}, {}".format(last, first[0]), +            orcid=None) +        author_revs.append(ar) +        author_ids.append(CreatorId(revision_id=ar.id)) + +    title_start = ("All about ", "When I grow up I want to be", +        "The final word on", "Infinity: ", "The end of") +    title_ends = ("Humankind", "Bees", "Democracy", "Avocados") +    work_revs = [] +    work_ids = [] +    release_revs = [] +    release_ids = [] +    for i in range(count): +        title = "{} {}".format(random.choice(title_start), random.choice(title_ends)) +        work = WorkRevision(title=title) +        work_id = WorkId(revision_id=work.id) +        authors = set(random.sample(author_ids, 5)) +        release = ReleaseRevision( +            title=work.title, +            creators=list(authors), +            work_id=work.id) +        release_id = ReleaseId(revision_id=release.id) +        work.primary_release = release.id +        authors.add(random.choice(author_ids)) +        release2 = ReleaseRevision( +            title=work.title + " (again)", +            creators=list(authors), +            work_id=work.id) +        release_id2 = ReleaseId(revision_id=release2.id) +        work_revs.append(work) +        work_ids.append(work_id) +        release_revs.append(release) +        release_revs.append(release2) +        release_ids.append(release_id) +        release_ids.append(release_id2) + +    db.session.add_all(author_revs) +    db.session.add_all(author_ids) +    db.session.add_all(work_revs) +    db.session.add_all(work_ids) +    db.session.add_all(release_revs) +    db.session.add_all(release_ids) + +    db.session.commit() diff --git a/tests/test_backend.py b/tests/test_backend.py index 345c8a95..07a2a906 100644 --- a/tests/test_backend.py +++ b/tests/test_backend.py @@ -53,6 +53,8 @@ class FatcatTestCase(unittest.TestCase):          assert obj['title']          assert obj['work_type'] == "journal-article" -    def test_something(self): - +    def test_populate(self):          fatcat.sql.populate_db() + +    def test_populate_complex(self): +        fatcat.sql.populate_complex_db() | 
