• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iplweb / bpp / 0a62fc63-0bfe-4ec1-9d83-db01ae0b5317

04 Apr 2025 08:50AM UTC coverage: 42.944% (+0.6%) from 42.319%
0a62fc63-0bfe-4ec1-9d83-db01ae0b5317

push

circleci

mpasternak
Nie licz N dla autorów spoza N

0 of 9 new or added lines in 2 files covered. (0.0%)

1602 existing lines in 70 files now uncovered.

15809 of 36813 relevant lines covered (42.94%)

0.79 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
src/pbn_api/tests/test_bpp_admin_helpers.py
UNCOV
1
import pytest
×
UNCOV
2
from model_bakery import baker
×
3

UNCOV
4
from fixtures import MOCK_MONGO_ID
×
UNCOV
5
from fixtures.pbn_api import MOCK_RETURNED_MONGODB_DATA
×
UNCOV
6
from pbn_api.adapters.wydawnictwo import WydawnictwoPBNAdapter
×
UNCOV
7
from pbn_api.client import (
×
8
    PBN_GET_INSTITUTION_STATEMENTS,
9
    PBN_GET_PUBLICATION_BY_ID_URL,
10
    PBN_POST_PUBLICATIONS_URL,
11
)
UNCOV
12
from pbn_api.exceptions import AccessDeniedException
×
UNCOV
13
from pbn_api.models import Publication, SentData
×
UNCOV
14
from pbn_api.tests.utils import middleware
×
15

UNCOV
16
from django.contrib.messages import get_messages
×
17

UNCOV
18
from bpp.admin.helpers.pbn_api.gui import sprobuj_wyslac_do_pbn_gui
×
UNCOV
19
from bpp.models import Charakter_Formalny, Wydawnictwo_Ciagle
×
20

21

UNCOV
22
@pytest.mark.django_db
×
UNCOV
23
def test_sprobuj_wyslac_do_pbn_charakter_zly(
×
24
    rf,
25
    pbn_wydawnictwo_zwarte,
26
):
27
    req = rf.get("/")
×
28

29
    pbn_wydawnictwo_zwarte.charakter_formalny = baker.make(
×
30
        Charakter_Formalny, rodzaj_pbn=None
31
    )
32

33
    with middleware(req):
×
34
        sprobuj_wyslac_do_pbn_gui(req, pbn_wydawnictwo_zwarte)
×
35

36
    msg = get_messages(req)
×
37

38
    assert "nie będzie eksportowany do PBN" in list(msg)[0].message
×
39

40

UNCOV
41
@pytest.mark.django_db
×
UNCOV
42
def test_sprobuj_wyslac_do_pbn_uczelnia_brak_obiektu(
×
43
    rf, pbn_wydawnictwo_zwarte_z_charakterem
44
):
45
    req = rf.get("/")
×
46

47
    with middleware(req):
×
48
        sprobuj_wyslac_do_pbn_gui(req, pbn_wydawnictwo_zwarte_z_charakterem)
×
49

50
    msg = get_messages(req)
×
51

52
    assert 'w systemie brakuje obiektu "Uczelnia"' in list(msg)[0].message
×
53

54

UNCOV
55
@pytest.mark.django_db
×
UNCOV
56
def test_sprobuj_wyslac_do_pbn_uczelnia_integracja_wylaczona(
×
57
    rf, pbn_wydawnictwo_zwarte_z_charakterem, uczelnia
58
):
59
    req = rf.get("/")
×
60

61
    uczelnia.pbn_integracja = False
×
62
    uczelnia.pbn_aktualizuj_na_biezaco = False
×
63
    uczelnia.save()
×
64

65
    with middleware(req):
×
66
        sprobuj_wyslac_do_pbn_gui(req, pbn_wydawnictwo_zwarte_z_charakterem)
×
67

68
    msg = get_messages(req)
×
69
    assert len(msg) == 1
×
70

71

UNCOV
72
@pytest.mark.django_db
×
UNCOV
73
def test_sprobuj_wyslac_do_pbn_dane_juz_wyslane(
×
74
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_uczelnia, pbn_client, rf
75
):
76
    SentData.objects.updated(
×
77
        pbn_wydawnictwo_zwarte_z_charakterem,
78
        WydawnictwoPBNAdapter(pbn_wydawnictwo_zwarte_z_charakterem).pbn_get_json(),
79
    )
80

81
    req = rf.get("/")
×
82

83
    with middleware(req):
×
84
        sprobuj_wyslac_do_pbn_gui(
×
85
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
86
        )
87

88
    msg = get_messages(req)
×
89
    assert "Identyczne dane rekordu" in list(msg)[0].message
×
90

91

UNCOV
92
@pytest.mark.django_db
×
UNCOV
93
def test_sprobuj_wyslac_do_pbn_access_denied(
×
94
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_client, rf, pbn_uczelnia
95
):
96
    req = rf.get("/")
×
97

98
    pbn_client.transport.return_values[
×
99
        PBN_POST_PUBLICATIONS_URL
100
    ] = AccessDeniedException(url="foo", content="testujemy")
101

102
    with middleware(req):
×
103
        sprobuj_wyslac_do_pbn_gui(
×
104
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
105
        )
106

107
    msg = get_messages(req)
×
108
    assert "Brak dostępu --" in list(msg)[0].message
×
109

110

UNCOV
111
@pytest.mark.django_db
×
UNCOV
112
def test_sprobuj_wyslac_do_pbn_brak_prawidlowej_odpowiedzi(
×
113
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_client, rf, pbn_uczelnia
114
):
115
    req = rf.get("/")
×
116

117
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = {
×
118
        "elem": "coz, jakby nie. "
119
    }
120

121
    with middleware(req):
×
122
        sprobuj_wyslac_do_pbn_gui(
×
123
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
124
        )
125

126
    msg = get_messages(req)
×
127
    assert "nie odpowiedział prawidłowym PBN UID" in list(msg)[0].message
×
128

129

UNCOV
130
@pytest.mark.django_db
×
UNCOV
131
def test_sprobuj_wyslac_do_pbn_inny_exception(
×
132
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_client, rf, pbn_uczelnia
133
):
134
    req = rf.get("/")
×
135

136
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = ZeroDivisionError
×
137

138
    with middleware(req):
×
139
        sprobuj_wyslac_do_pbn_gui(
×
140
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
141
        )
142

143
    msg = get_messages(req)
×
144
    assert "Nie można zsynchronizować" in list(msg)[0].message
×
145

146

UNCOV
147
@pytest.mark.django_db
×
UNCOV
148
def test_sprobuj_wyslac_do_pbn_inny_blad(
×
149
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_client, rf, pbn_uczelnia
150
):
151
    req = rf.get("/")
×
152

153
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = Exception("test")
×
154

155
    with middleware(req):
×
156
        sprobuj_wyslac_do_pbn_gui(
×
157
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
158
        )
159

160
    msg = get_messages(req)
×
161
    assert "Nie można zsynchronizować" in list(msg)[0].message
×
162

163

UNCOV
164
@pytest.mark.django_db
×
UNCOV
165
def test_sprobuj_wyslac_do_pbn_sukces(
×
166
    pbn_wydawnictwo_zwarte_z_charakterem, pbn_client, rf, pbn_uczelnia
167
):
168
    req = rf.get("/")
×
169

170
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = {"objectId": "123"}
×
171
    pbn_client.transport.return_values[
×
172
        PBN_GET_PUBLICATION_BY_ID_URL.format(id="123")
173
    ] = MOCK_RETURNED_MONGODB_DATA
174
    pbn_client.transport.return_values[
×
175
        PBN_GET_INSTITUTION_STATEMENTS + "?publicationId=123&size=5120"
176
    ] = []
177

178
    with middleware(req):
×
179
        sprobuj_wyslac_do_pbn_gui(
×
180
            req, pbn_wydawnictwo_zwarte_z_charakterem, pbn_client=pbn_client
181
        )
182

183
    msg = get_messages(req)
×
184
    assert "zostały zaktualizowane" in list(msg)[0].message
×
185

186

UNCOV
187
@pytest.mark.django_db
×
UNCOV
188
def test_sprobuj_wyslac_do_pbn_ostrzezenie_brak_dyscypliny_autora(
×
189
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina, pbn_client, rf, pbn_uczelnia
190
):
191
    req = rf.get("/")
×
192

193
    for wza in pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina.autorzy_set.all():
×
194
        wza.afiliuje = True
×
195
        wza.przypieta = True
×
196
        wza.save()
×
197

198
        jednostka = wza.jednostka
×
199
        jednostka.skupia_pracownikow = True
×
200
        jednostka.save()
×
201

202
        autor = wza.autor
×
203
        autor.pbn_uid = None
×
204
        autor.pbn_uid_id = None
×
205
        autor.save()
×
206

207
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = {"objectId": "123"}
×
208
    pbn_client.transport.return_values[
×
209
        PBN_GET_PUBLICATION_BY_ID_URL.format(id="123")
210
    ] = MOCK_RETURNED_MONGODB_DATA
211
    pbn_client.transport.return_values[
×
212
        PBN_GET_INSTITUTION_STATEMENTS + "?publicationId=123&size=5120"
213
    ] = []
214

215
    with middleware(req):
×
216
        sprobuj_wyslac_do_pbn_gui(
×
217
            req, pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina, pbn_client=pbn_client
218
        )
219

220
    msg = get_messages(req)
×
221
    assert "nie zostanie oświadczona" in list(msg)[0].message
×
222

223

UNCOV
224
@pytest.mark.django_db
×
UNCOV
225
def test_sprobuj_wyslac_do_pbn_przychodzi_istniejacy_pbn_uid_dla_nowego_rekordu(
×
226
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina: Wydawnictwo_Ciagle,
227
    pbn_client,
228
    rf,
229
    pbn_uczelnia,
230
):
231
    """Ten test sprawdza, jak zachowa się system w przypadku wysyłki nowego rekordu, gdy przyjdzie PBN UID
232
    takiego rekordu, który już istnieje"""
233

234
    req = rf.get("/")
×
235

236
    # To jest istniejące w bazie wydawnictwo ciągłe z PBN UID = MOCK_MONGO_ID ("123")
237
    publikacja = baker.make(Publication, pk=MOCK_MONGO_ID)
×
238
    istniejace_wydawnictwo_ciagle = baker.make(  # noqa
×
239
        Wydawnictwo_Ciagle, pbn_uid=publikacja
240
    )
241

242
    # To jest NOWO WYSYŁANE wydawnictwo ciągłe, które nie ma PBN UID
243
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina.pbn_uid = None
×
244
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina.save(update_fields=["pbn_uid"])
×
245

246
    # To jest odpowiedź z PBNu gdzie zwrotnie przyjdzie objectId = MOCK_MONGO_ID
247
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = {
×
248
        "objectId": MOCK_MONGO_ID
249
    }
250
    pbn_client.transport.return_values[
×
251
        PBN_GET_PUBLICATION_BY_ID_URL.format(id=MOCK_MONGO_ID)
252
    ] = MOCK_RETURNED_MONGODB_DATA
253
    pbn_client.transport.return_values[
×
254
        PBN_GET_INSTITUTION_STATEMENTS + f"?publicationId={MOCK_MONGO_ID}&size=5120"
255
    ] = []
256

257
    with middleware(req):
×
258
        sprobuj_wyslac_do_pbn_gui(
×
259
            req, pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina, pbn_client=pbn_client
260
        )
261

262
    msg = get_messages(req)
×
263
    assert (
×
264
        "w odpowiedzi z serwera PBN numer UID rekordu JUŻ ISTNIEJĄCEGO"
265
        in list(msg)[0].message
266
    )
267

268

UNCOV
269
@pytest.mark.django_db
×
UNCOV
270
def test_sprobuj_wyslac_do_pbn_przychodzi_inny_pbn_uid_dla_starego_rekordu(
×
271
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina: Wydawnictwo_Ciagle,
272
    pbn_client,
273
    rf,
274
    pbn_uczelnia,
275
):
276
    """Ten test sprawdza, jak zachowa się system w przypadku wysyłki nowego rekordu, gdy przyjdzie PBN UID
277
    takiego rekordu, który już istnieje"""
278

279
    req = rf.get("/")
×
280

281
    # To jest istniejące w bazie wydawnictwo ciągłe z PBN UID = MOCK_MONGO_ID ("123")
282
    publikacja = baker.make(Publication, pk=MOCK_MONGO_ID)
×
283

284
    # To jest wydawnictwo ciągłe, które ma PBN UID
285
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina.pbn_uid = publikacja
×
286
    pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina.save(update_fields=["pbn_uid"])
×
287

288
    # To jest odpowiedź z PBNu gdzie zwrotnie przyjdzie objectId = MOCK_MONGO_ID*2
289
    pbn_client.transport.return_values[PBN_POST_PUBLICATIONS_URL] = {
×
290
        "objectId": MOCK_MONGO_ID * 2
291
    }
292
    pbn_client.transport.return_values[
×
293
        PBN_GET_PUBLICATION_BY_ID_URL.format(id=MOCK_MONGO_ID * 2)
294
    ] = MOCK_RETURNED_MONGODB_DATA
295
    pbn_client.transport.return_values[
×
296
        PBN_GET_INSTITUTION_STATEMENTS + f"?publicationId={MOCK_MONGO_ID}&size=5120"
297
    ] = []
298

299
    with middleware(req):
×
300
        sprobuj_wyslac_do_pbn_gui(
×
301
            req, pbn_wydawnictwo_zwarte_z_autorem_z_dyscyplina, pbn_client=pbn_client
302
        )
303

304
    msg = get_messages(req)
×
305
    assert "Wg danych z PBN zmodyfikowano PBN UID tego rekordu " in list(msg)[0].message
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc