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

iplweb / bpp / f173ace8-f523-4c88-838c-965e0ce6996a

21 Aug 2025 12:53PM UTC coverage: 45.095% (-1.1%) from 46.22%
f173ace8-f523-4c88-838c-965e0ce6996a

push

circleci

mpasternak
Merge branch 'release/v202508.1196'

1 of 1 new or added line in 1 file covered. (100.0%)

505 existing lines in 22 files now uncovered.

17196 of 38133 relevant lines covered (45.09%)

0.82 hits per line

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

0.0
src/pbn_api/tests/test_adapters.py
UNCOV
1
import json
×
UNCOV
2
from decimal import Decimal
×
3

UNCOV
4
import pytest
×
UNCOV
5
from model_bakery import baker
×
6

UNCOV
7
from fixtures.pbn_api import _zrob_wydawnictwo_pbn
×
UNCOV
8
from pbn_api.adapters.wydawnictwo import WydawnictwoPBNAdapter
×
UNCOV
9
from pbn_api.exceptions import PKZeroExportDisabled, WillNotExportError
×
10

UNCOV
11
from bpp import const
×
UNCOV
12
from bpp.models import (
×
13
    Autor,
14
    Czas_Udostepnienia_OpenAccess,
15
    Licencja_OpenAccess,
16
    Tryb_OpenAccess_Wydawnictwo_Ciagle,
17
    Wersja_Tekstu_OpenAccess,
18
    Wydawnictwo_Zwarte,
19
    Wydawnictwo_Zwarte_Autor,
20
)
21

22

UNCOV
23
@pytest.mark.django_db
×
UNCOV
24
def test_WydawnictwoPBNAdapter_ciagle(pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina):
×
25
    res = WydawnictwoPBNAdapter(
×
26
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
27
    ).pbn_get_json()
28
    assert res["journal"]
×
29

30

UNCOV
31
@pytest.mark.django_db
×
UNCOV
32
def test_WydawnictwoPBNAdapter_nie_wysylaj_prac_bez_pk(
×
33
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, pbn_uczelnia
34
):
35
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.punkty_kbn = 0
×
36
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.save()
×
37

38
    pbn_uczelnia.pbn_api_nie_wysylaj_prac_bez_pk = True
×
39
    pbn_uczelnia.save()
×
40

41
    with pytest.raises(PKZeroExportDisabled):
×
42
        WydawnictwoPBNAdapter(
×
43
            pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, None, pbn_uczelnia
44
        ).pbn_get_json()
45

46

UNCOV
47
@pytest.mark.django_db
×
UNCOV
48
def test_WydawnictwoPBNAdapter_zwarte_ksiazka(pbn_wydawnictwo_zwarte_ksiazka):
×
49
    res = WydawnictwoPBNAdapter(pbn_wydawnictwo_zwarte_ksiazka).pbn_get_json()
×
50
    assert not res.get("journal")
×
51

52

UNCOV
53
@pytest.mark.django_db
×
UNCOV
54
def test_WydawnictwoPBNAdapter_zwarte_rozdzial(pbn_rozdzial_z_autorem_z_dyscyplina):
×
55
    res = WydawnictwoPBNAdapter(pbn_rozdzial_z_autorem_z_dyscyplina).pbn_get_json()
×
56
    assert not res.get("journal")
×
57

58

UNCOV
59
@pytest.fixture
×
UNCOV
60
def praca_z_dyscyplina_pbn(praca_z_dyscyplina, pbn_jezyk):
×
61
    _zrob_wydawnictwo_pbn(praca_z_dyscyplina, pbn_jezyk)
×
62
    return praca_z_dyscyplina
×
63

64

UNCOV
65
@pytest.fixture
×
UNCOV
66
def rozdzial_z_dyscyplina_pbn(praca_z_dyscyplina_pbn):
×
67
    cf = praca_z_dyscyplina_pbn.charakter_formalny
×
68
    cf.rodzaj_pbn = const.RODZAJ_PBN_ROZDZIAL
×
69
    cf.save()
×
70

71
    return praca_z_dyscyplina_pbn
×
72

73

UNCOV
74
@pytest.mark.django_db
×
UNCOV
75
def test_WydawnictwoPBNAdapter_autor_eksport(
×
76
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, jednostka
77
):
78
    autor_bez_dyscypliny = baker.make(Autor)
×
79
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.dodaj_autora(
×
80
        autor_bez_dyscypliny, jednostka, "Jan Budnik"
81
    )
82

83
    res = WydawnictwoPBNAdapter(
×
84
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
85
    ).pbn_get_json()
86
    assert res["journal"]
×
87

88

UNCOV
89
@pytest.mark.django_db
×
UNCOV
90
def test_WydawnictwoPBNAdapter_pk_rowne_zero_eksport_wylaczony(
×
91
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, jednostka, rf, pbn_uczelnia
92
):
93
    autor_bez_dyscypliny = baker.make(Autor)
×
94
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.dodaj_autora(
×
95
        autor_bez_dyscypliny, jednostka, "Jan Budnik"
96
    )
97

98
    pbn_uczelnia.pbn_api_nie_wysylaj_prac_bez_pk = True
×
99
    pbn_uczelnia.save()
×
100

101
    with pytest.raises(PKZeroExportDisabled):
×
102
        WydawnictwoPBNAdapter(
×
103
            pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, uczelnia=pbn_uczelnia
104
        ).pbn_get_json()
105

106

UNCOV
107
@pytest.mark.django_db
×
UNCOV
108
def test_WydawnictwoPBNAdapter_przypinanie_dyscyplin(
×
109
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina, jednostka
110
):
111
    wydawnictwo_autor: Wydawnictwo_Zwarte_Autor = (
×
112
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.autorzy_set.first()
113
    )
114
    wydawnictwo_autor.przypieta = False
×
115
    wydawnictwo_autor.save()
×
116

117
    with pytest.raises(WillNotExportError, match="bez zadeklarowanych"):
×
118
        WydawnictwoPBNAdapter(
×
119
            pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
120
        ).pbn_get_json()
121

122
    wydawnictwo_autor.przypieta = True
×
123
    wydawnictwo_autor.save()
×
124

125
    res = WydawnictwoPBNAdapter(
×
126
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
127
    ).pbn_get_json()
128
    assert res["statements"]
×
129

130

UNCOV
131
@pytest.mark.django_db
×
UNCOV
132
def test_WydawnictwoPBNAdapter_eksport_oswiadczen(
×
133
    zwarte_z_dyscyplinami,
134
):
135
    assert (
×
136
        len(WydawnictwoPBNAdapter(zwarte_z_dyscyplinami).pbn_get_json_statements()) == 2
137
    )
138

139

UNCOV
140
@pytest.mark.django_db
×
UNCOV
141
def test_WydawnictwoPBNAdapter_eksport_artykulu_bez_oswiadczen_zwraca_blad(
×
142
    praca_z_dyscyplina_pbn,
143
):
144
    with pytest.raises(WillNotExportError, match="bez zadeklarowanych"):
×
145
        WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
146

147

UNCOV
148
@pytest.mark.django_db
×
UNCOV
149
def test_WydawnictwoPBNAdapter_eksport_artykulu_bez_oswiadczen_nie_zwraca_bledu(
×
150
    praca_z_dyscyplina_pbn, uczelnia
151
):
152
    uczelnia.pbn_wysylaj_bez_oswiadczen = True
×
153
    uczelnia.save()
×
154
    WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn, uczelnia=uczelnia).pbn_get_json()
×
155

156

UNCOV
157
@pytest.mark.django_db
×
UNCOV
158
def test_WydawnictwoPBNAdapter_eksport_artykulu_bez_oswiadczen_zwraca_ust_uczelni(
×
159
    praca_z_dyscyplina_pbn, uczelnia
160
):
161
    uczelnia.pbn_wysylaj_bez_oswiadczen = False
×
162
    uczelnia.save()
×
163

164
    with pytest.raises(WillNotExportError, match="bez zadeklarowanych"):
×
165
        WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn, uczelnia=uczelnia).pbn_get_json()
×
166

167

UNCOV
168
@pytest.mark.django_db
×
UNCOV
169
def test_WydawnictwoPBNAdapter_eksport_rozdzialu_bez_oswiadczen_zwraca_blad(
×
170
    rozdzial_z_dyscyplina_pbn,
171
):
172
    with pytest.raises(WillNotExportError, match="bez zadeklarowanych"):
×
173
        WydawnictwoPBNAdapter(rozdzial_z_dyscyplina_pbn).pbn_get_json()
×
174

175

UNCOV
176
@pytest.mark.django_db
×
UNCOV
177
def test_WydawnictwoPBNAdapter_www_eksport(
×
178
    pbn_rozdzial_z_autorem_z_dyscyplina, wydawnictwo_nadrzedne, pbn_jezyk, denorms
179
):
180
    wydawnictwo_zwarte = pbn_rozdzial_z_autorem_z_dyscyplina
×
181

182
    assert wydawnictwo_zwarte.wydawnictwo_nadrzedne_id == wydawnictwo_nadrzedne.pk
×
183

184
    _zrob_wydawnictwo_pbn(
×
185
        wydawnictwo_zwarte, pbn_jezyk, rodzaj_pbn=const.RODZAJ_PBN_ROZDZIAL
186
    )
187

188
    WWW = "https://www.example.com/"
×
189
    WWW2 = "https://www.example2.com/"
×
190

191
    wydawnictwo_nadrzedne.public_www = WWW
×
192
    wydawnictwo_nadrzedne.save()
×
193

194
    wydawnictwo_zwarte.www = wydawnictwo_zwarte.public_www = None
×
195
    wydawnictwo_zwarte.wydawnictwo_nadrzedne = wydawnictwo_nadrzedne
×
196
    wydawnictwo_zwarte.save()
×
197

198
    res = WydawnictwoPBNAdapter(wydawnictwo_zwarte).pbn_get_json()
×
199
    assert res["publicUri"] == WWW
×
200

201
    wydawnictwo_zwarte.www = WWW2
×
202
    wydawnictwo_zwarte.save()
×
203

204
    assert wydawnictwo_zwarte.wydawnictwo_nadrzedne == wydawnictwo_nadrzedne
×
205

206
    res = WydawnictwoPBNAdapter(wydawnictwo_zwarte).pbn_get_json()
×
207
    assert res["publicUri"] == WWW2
×
208

209

UNCOV
210
@pytest.mark.django_db
×
UNCOV
211
def test_WydawnictwoPBNAdapter_openaccess_zero_miesiecy_gdy_licencja(
×
212
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina: Wydawnictwo_Zwarte, openaccess_data
213
):
214
    praca_z_dyscyplina_pbn = pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
×
215

216
    praca_z_dyscyplina_pbn.openaccess_licencja = Licencja_OpenAccess.objects.first()
×
217
    praca_z_dyscyplina_pbn.openaccess_tryb_dostepu = (
×
218
        Tryb_OpenAccess_Wydawnictwo_Ciagle.objects.first()
219
    )
220
    praca_z_dyscyplina_pbn.openaccess_wersja_tekstu = (
×
221
        Wersja_Tekstu_OpenAccess.objects.first()
222
    )
223
    praca_z_dyscyplina_pbn.openaccess_czas_publikacji = (
×
224
        Czas_Udostepnienia_OpenAccess.objects.get(nazwa="po opublikowaniu")
225
    )
226
    praca_z_dyscyplina_pbn.openaccess_ilosc_miesiecy = 12
×
227
    praca_z_dyscyplina_pbn.save()
×
228

229
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
230
    assert res["openAccess"]["months"] == "12"
×
231

232
    praca_z_dyscyplina_pbn.openaccess_ilosc_miesiecy = None
×
233
    praca_z_dyscyplina_pbn.save()
×
234

235
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
236
    assert res["openAccess"]["months"] == "0"
×
237

238

UNCOV
239
@pytest.mark.django_db
×
UNCOV
240
def test_WydawnictwoPBNAdapter_autor_isbn_eisbn(
×
241
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina,
242
):
243
    praca_z_dyscyplina_pbn = pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
×
244

245
    praca_z_dyscyplina_pbn.isbn = None
×
246
    praca_z_dyscyplina_pbn.e_isbn = "123"
×
247

248
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
249
    assert res["isbn"] == "123"
×
250

251
    praca_z_dyscyplina_pbn.isbn = "456"
×
252
    praca_z_dyscyplina_pbn.e_isbn = None
×
253

254
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
255
    assert res["isbn"] == "456"
×
256

257
    praca_z_dyscyplina_pbn.isbn = "789"
×
258
    praca_z_dyscyplina_pbn.e_isbn = "123"
×
259

260
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
261
    assert res["isbn"] == "789"
×
262

263

UNCOV
264
@pytest.mark.django_db
×
UNCOV
265
def test_WydawnictwoPBNAdapter_autor_z_orcid_bez_dyscypliny_idzie_bez_id(
×
266
    praca_z_dyscyplina_pbn, jednostka, denorms
267
):
268
    pierwszy_autor = praca_z_dyscyplina_pbn.autorzy_set.first().autor
×
269
    pierwszy_autor.orcid = "123456"
×
270
    pierwszy_autor.save()
×
271

272
    autor_bez_dyscypliny = baker.make(
×
273
        Autor, imiona="Jan", nazwisko="Budnik", orcid="43567"
274
    )
275
    praca_z_dyscyplina_pbn.dodaj_autora(autor_bez_dyscypliny, jednostka, "Jan Budnik")
×
276

277
    res = WydawnictwoPBNAdapter(praca_z_dyscyplina_pbn).pbn_get_json()
×
278
    assert res["authors"][0].get("orcidId")
×
279
    assert not res["authors"][1].get("orcidId")
×
280

281

UNCOV
282
@pytest.mark.django_db
×
UNCOV
283
def test_WydawnictwoPBNAdapter_pod_redakcja_falsz(
×
284
    ksiazka, autor_jan_nowak, jednostka, denorms
285
):
286
    ksiazka.dodaj_autora(autor_jan_nowak, jednostka)
×
287
    assert WydawnictwoPBNAdapter(ksiazka).pod_redakcja() is False
×
288

289

UNCOV
290
@pytest.mark.django_db
×
UNCOV
291
def test_WydawnictwoPBNAdapter_pod_redakcja_prawda(
×
292
    ksiazka, autor_jan_nowak, jednostka, denorms
293
):
294
    ksiazka.dodaj_autora(autor_jan_nowak, jednostka, typ_odpowiedzialnosci_skrot="red.")
×
295
    assert WydawnictwoPBNAdapter(ksiazka).pod_redakcja() is True
×
296

297

UNCOV
298
@pytest.mark.django_db
×
UNCOV
299
def test_WydawnictwoPBNAdapter_slowa_kluczowe(pbn_wydawnictwo_zwarte_ksiazka):
×
300
    pbn_wydawnictwo_zwarte_ksiazka.slowa_kluczowe.add("test")
×
301
    pbn_wydawnictwo_zwarte_ksiazka.slowa_kluczowe.add("best")
×
302

303
    ret = WydawnictwoPBNAdapter(pbn_wydawnictwo_zwarte_ksiazka).pbn_get_json()
×
304
    assert "best" in ret["languageData"]["keywords"][0]["keywords"]
×
305

306

UNCOV
307
@pytest.mark.django_db
×
UNCOV
308
def test_WydawnictwoPBNAdapter_streszczenia(pbn_wydawnictwo_zwarte_ksiazka):
×
309
    pbn_wydawnictwo_zwarte_ksiazka.streszczenia.create(
×
310
        jezyk_streszczenia=None, streszczenie="123 test streszczenia"
311
    )
312
    ret = WydawnictwoPBNAdapter(pbn_wydawnictwo_zwarte_ksiazka).pbn_get_json()
×
313
    assert "test" in ret["languageData"]["abstracts"][0]["text"]
×
314

315

UNCOV
316
@pytest.mark.django_db
×
UNCOV
317
def test_WydawnictwoPBNAdapter_wydawnictwo_zwarte_strony(
×
318
    pbn_wydawnictwo_zwarte_ksiazka,
319
):
320
    pbn_wydawnictwo_zwarte_ksiazka.strony = "pincset"
×
321

322
    ret = WydawnictwoPBNAdapter(pbn_wydawnictwo_zwarte_ksiazka).pbn_get_json()
×
323
    assert "pagesFromTo" in ret
×
324

325

UNCOV
326
@pytest.mark.django_db
×
UNCOV
327
def test_WydawnictwoPBNAdapter_wydawnictwo_ciagle_strony(
×
328
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina,
329
):
330
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.strony = "pincset"
×
331
    ret = WydawnictwoPBNAdapter(
×
332
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
333
    ).pbn_get_json()
334
    assert "pagesFromTo" in ret
×
335

336

UNCOV
337
@pytest.mark.django_db
×
UNCOV
338
def test_WydawnictwoPBNAdapter_wydawnictwo_ciagle_zakres_stron(
×
339
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina,
340
):
341
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.szczegoly = "s. 20-30"
×
342
    ret = WydawnictwoPBNAdapter(
×
343
        pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
344
    ).pbn_get_json()
345
    assert "pagesFromTo" in ret
×
346

347

UNCOV
348
def encode_then_decode_json(in_json):
×
349
    return json.loads(json.dumps(in_json))
×
350

351

UNCOV
352
@pytest.mark.django_db
×
UNCOV
353
def test_WydawnictwoPBNAdapter_oplata_za_publikacje_platna(
×
354
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina,
355
):
356
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.opl_pub_amount = Decimal("50.4")
×
357
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.opl_pub_research_potential = True
×
358

359
    ret = encode_then_decode_json(
×
360
        WydawnictwoPBNAdapter(
361
            pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
362
        ).pbn_get_json()
363
    )
364
    assert ret["fee"]["amount"] == "50.4"
×
365
    assert ret["fee"]["researchPotentialFinancialResources"]
×
366

367

UNCOV
368
@pytest.mark.django_db
×
UNCOV
369
def test_WydawnictwoPBNAdapter_oplata_za_publikacje_darmowa(
×
370
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina,
371
):
372
    pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina.opl_pub_cost_free = True
×
373

374
    ret = encode_then_decode_json(
×
375
        WydawnictwoPBNAdapter(
376
            pbn_wydawnictwo_ciagle_z_autorem_z_dyscyplina
377
        ).pbn_get_json()
378
    )
379
    assert ret["fee"]["amount"] == Decimal("0")
×
380
    assert ret["fee"]["costFreePublication"]
×
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