aboutsummaryrefslogtreecommitdiff
path: root/tests/uploader/publications/test_misc.py
blob: 7a529415d95a906b003fbebbc1baa14d9cd981db (about) (plain)
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