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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
"""Tests for functions used for bulk editing."""
import pytest
from uploader.publications.misc import publications_differences
@pytest.mark.unit_test
@pytest.mark.parametrize(
"filedata,dbdata,pubmed2pubidmap,expected",
(((), (), {}, tuple()), # no data
# Same Data
(({"phenotype_id": 1, "xref_id": 10001, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10002, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10003, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10005, "PubMed_ID": 9999999999999}),
({"PhenotypeId": 1, "xref_id": 10001, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10002, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10003, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10004, "PublicationId": 15,
"PubMed_ID": 9999999999999}),
{9999999999999: 15},
tuple()),
# Differences: no new pubmeds (all pubmeds in db)
(({"phenotype_id": 1, "xref_id": 10001, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10002, "PubMed_ID": 9999999999998},
{"phenotype_id": 1, "xref_id": 10003, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10004, "PubMed_ID": 9999999999997}),
({"PhenotypeId": 1, "xref_id": 10001, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10002, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10003, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10004, "PublicationId": 15,
"PubMed_ID": None}),
{9999999999999: 15, 9999999999998: 18, 9999999999997: 12},
({"PhenotypeId": 1, "xref_id": 10002, "PublicationId": 18,
"PubMed_ID": 9999999999998},
{"PhenotypeId": 1, "xref_id": 10004, "PublicationId": 12,
"PubMed_ID": 9999999999997})),
# Differences: Deletions of pubmeds
(({"phenotype_id": 1, "xref_id": 10001, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10002, "PubMed_ID": None},
{"phenotype_id": 1, "xref_id": 10003, "PubMed_ID": 9999999999999},
{"phenotype_id": 1, "xref_id": 10004, "PubMed_ID": None}),
({"PhenotypeId": 1, "xref_id": 10001, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10002, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10003, "PublicationId": 15,
"PubMed_ID": 9999999999999},
{"PhenotypeId": 1, "xref_id": 10004, "PublicationId": 15,
"PubMed_ID": 9999999999999}),
{9999999999999: 15, 9999999999998: 18, 9999999999997: 12},
({"PhenotypeId": 1, "xref_id": 10002, "PublicationId": None,
"PubMed_ID": None},
{"PhenotypeId": 1, "xref_id": 10004, "PublicationId": None,
"PubMed_ID": None}))))
def test_publications_differences(filedata, dbdata, pubmed2pubidmap, expected):
assert publications_differences(
filedata, dbdata, pubmed2pubidmap) == expected
|