Example #1
0
    def add_or_update_article(self, **adata):
        "creates article+article-version stubs for testing"
        replacements = [
            ('pub-date', 'published'),
            ('update', 'versionDate'),
        ]
        renkeys(adata, replacements)

        struct = {
            'id':
            utils.doi2msid(adata['doi'])
            if 'doi' in adata else adata['manuscript_id'],
            'volume':
            1,
            'type':
            'research-article',
            'title':
            '[default]',
            'version':
            1,
            'status':
            models.VOR,
            'published':
            '2012-01-01T00:00:00Z'
        }
        struct.update(adata)
        delall(struct, ['journal'])  # can't be serialized, not utilised anyway

        with self.settings(VALIDATE_FAILS_FORCE=False):
            # bad ajson won't fail ingest
            av = ajson_ingestor.ingest_publish({'article': struct}, force=True)
            av.datetime_published = utils.todt(struct['published'])
            av.save()
            return av
Example #2
0
def add_or_update_article(**article_data):
    """TESTING ONLY. given article data it attempts to find the
    article and update it, otherwise it will create it, filling
    any missing keys with dummy data. returns the created article."""
    assert 'doi' in article_data or 'manuscript_id' in article_data, \
        "a value for 'doi' or 'manuscript_id' *must* exist"

    if 'manuscript_id' in article_data:
        article_data['doi'] = utils.msid2doi(article_data['manuscript_id'])
    elif 'doi' in article_data:
        article_data['manuscript_id'] = utils.doi2msid(article_data['doi'])

    filler = [
        'title',
        'doi',
        'manuscript_id',
        ('volume', 1),
        'path',
        'article-type',
        ('ejp_type', 'RA'),
        ('version', 1),
        ('pub-date', '2012-01-01'),
        ('status', 'vor'),
    ]
    article_data = utils.filldict(article_data, filler, 'pants-party')
    return eif_ingestor.import_article(journal(), article_data, create=True, update=True)
Example #3
0
def add_or_update_article(**article_data):
    """TESTING ONLY. given article data it attempts to find the
    article and update it, otherwise it will create it, filling
    any missing keys with dummy data. returns the created article."""
    assert "doi" in article_data or "manuscript_id" in article_data, "a value for 'doi' or 'manuscript_id' *must* exist"

    if "manuscript_id" in article_data:
        article_data["doi"] = utils.msid2doi(article_data["manuscript_id"])
    elif "doi" in article_data:
        article_data["manuscript_id"] = utils.doi2msid(article_data["doi"])

    filler = [
        "title",
        "doi",
        "manuscript_id",
        ("volume", 1),
        "path",
        "article-type",
        ("ejp_type", "RA"),
        ("version", 1),
        ("pub-date", "2012-01-01"),
        ("status", "vor"),
    ]
    article_data = utils.filldict(article_data, filler, "pants-party")
    return eif_ingestor.import_article(journal(), article_data, create=True, update=True)
Example #4
0
 def update(art):
     msid = utils.doi2msid(art.doi)
     assert msid, "msid cannot be null. got %r for %r" % (msid, art)
     art.manuscript_id = msid
     art.save()
     return art
 def update(art):
     msid = utils.doi2msid(art.doi)
     assert msid, "msid cannot be null. got %r for %r" % (msid, art)
     art.manuscript_id = msid
     art.save()
     return art
Example #6
0
 def row(art):
     poa = art.earliest_poa()
     vor = art.earliest_vor()
     return (utils.doi2msid(art.doi), ymd_dt(poa), ymd_dt(vor))