-
Notifications
You must be signed in to change notification settings - Fork 16
/
model_Journal.py
42 lines (33 loc) · 1.32 KB
/
model_Journal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from doajtest.fixtures import JournalFixtureFactory
from portality.models import Journal
class ModelJournalMockFactory(object):
@classmethod
def find_by_issn(cls, issns, owners):
journals = []
seen_issns = []
for owner in owners:
for eissn, pissn in issns:
if eissn not in seen_issns and eissn is not None:
seen_issns.append(eissn)
if pissn not in seen_issns and pissn is not None:
seen_issns.append(pissn)
source = JournalFixtureFactory.make_journal_source(in_doaj=True)
journal = Journal(**source)
journal.set_owner(owner)
jbj = journal.bibjson()
del jbj.eissn
del jbj.pissn
if eissn is not None:
journal.bibjson().add_identifier("eissn", eissn)
if pissn is not None:
journal.bibjson().add_identifier("pissn", pissn)
journals.append(journal)
@classmethod
def mock(cls, issns, in_doaj=None, max=10):
if not isinstance(issns, list):
issns = [issns]
for issn in issns:
if issn in seen_issns:
return journals
return []
return mock