==> Building on Q ==> Attempt to run pkgver()... ==> Making package: python-authlib 0.15.5-3 (Sun 27 Mar 2022 06:09:14 PM EEST) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Missing dependencies:  -> python-flask-sqlalchemy  -> python-starlette ==> Ensuring required PGP keys are present...  -> Checking for 72F8E895A70CEBDF4F2ADFE07E55E3E0118B2B4C... ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-authlib ./ PKGBUILD 1,575 100% 0.00kB/s 0:00:00 1,575 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=1/3) python-authlib-0.15.5-3.log 848 100% 828.12kB/s 0:00:00 848 100% 828.12kB/s 0:00:00 (xfr#2, to-chk=0/3) sent 1,400 bytes received 103 bytes 601.20 bytes/sec total size is 2,323 speedup is 1.55 ==> Running extra-riscv64-build -- -d /home/felix/packages/riscv64-pkg-cache:/var/cache/pacman/pkg -l felix15 on remote host... [?25l:: Synchronizing package databases... core downloading... extra downloading... community downloading... :: Starting full system upgrade... there is nothing to do [?25h==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix15]...done ==> Making package: python-authlib 0.15.5-3 (Sun Mar 27 17:09:22 2022) ==> Retrieving sources...  -> Cloning authlib git repo... Cloning into bare repository '/home/felix/packages/python-authlib/authlib'... remote: Enumerating objects: 13972, done. remote: Counting objects: 0% (1/1296) remote: Counting objects: 1% (13/1296) remote: Counting objects: 2% (26/1296) remote: Counting objects: 3% (39/1296) remote: Counting objects: 4% (52/1296) remote: Counting objects: 5% (65/1296) remote: Counting objects: 6% (78/1296) remote: Counting objects: 7% (91/1296) remote: Counting objects: 8% (104/1296) remote: Counting objects: 9% (117/1296) remote: Counting objects: 10% (130/1296) remote: Counting objects: 11% (143/1296) remote: Counting objects: 12% (156/1296) remote: Counting objects: 13% (169/1296) remote: Counting objects: 14% (182/1296) remote: Counting objects: 15% (195/1296) remote: Counting objects: 16% (208/1296) remote: Counting objects: 17% (221/1296) remote: Counting objects: 18% (234/1296) remote: Counting objects: 19% (247/1296) remote: Counting objects: 20% (260/1296) remote: Counting objects: 21% (273/1296) remote: Counting objects: 22% (286/1296) remote: Counting objects: 23% (299/1296) remote: Counting objects: 24% (312/1296) remote: Counting objects: 25% (324/1296) remote: Counting objects: 26% (337/1296) remote: Counting objects: 27% (350/1296) remote: Counting objects: 28% (363/1296) remote: Counting objects: 29% (376/1296) remote: Counting objects: 30% (389/1296) remote: Counting objects: 31% (402/1296) remote: Counting objects: 32% (415/1296) remote: Counting objects: 33% (428/1296) remote: Counting objects: 34% (441/1296) remote: Counting objects: 35% (454/1296) remote: Counting objects: 36% (467/1296) remote: Counting objects: 37% (480/1296) remote: Counting objects: 38% (493/1296) remote: Counting objects: 39% (506/1296) remote: Counting objects: 40% (519/1296) remote: Counting objects: 41% (532/1296) remote: Counting objects: 42% (545/1296) remote: Counting objects: 43% (558/1296) remote: Counting objects: 44% (571/1296) remote: Counting objects: 45% (584/1296) remote: Counting objects: 46% (597/1296) remote: Counting objects: 47% (610/1296) remote: Counting objects: 48% (623/1296) remote: Counting objects: 49% (636/1296) remote: Counting objects: 50% (648/1296) remote: Counting objects: 51% (661/1296) remote: Counting objects: 52% (674/1296) remote: Counting objects: 53% (687/1296) remote: Counting objects: 54% (700/1296) remote: Counting objects: 55% (713/1296) remote: Counting objects: 56% (726/1296) remote: Counting objects: 57% (739/1296) remote: Counting objects: 58% (752/1296) remote: Counting objects: 59% (765/1296) remote: Counting objects: 60% (778/1296) remote: Counting objects: 61% (791/1296) remote: Counting objects: 62% (804/1296) remote: Counting objects: 63% (817/1296) remote: Counting objects: 64% (830/1296) remote: Counting objects: 65% (843/1296) remote: Counting objects: 66% (856/1296) remote: Counting objects: 67% (869/1296) remote: Counting objects: 68% (882/1296) remote: Counting objects: 69% (895/1296) remote: Counting objects: 70% (908/1296) remote: Counting objects: 71% (921/1296) remote: Counting objects: 72% (934/1296) remote: Counting objects: 73% (947/1296) remote: Counting objects: 74% (960/1296) remote: Counting objects: 75% (972/1296) remote: Counting objects: 76% (985/1296) remote: Counting objects: 77% (998/1296) remote: Counting objects: 78% (1011/1296) remote: Counting objects: 79% (1024/1296) remote: Counting objects: 80% (1037/1296) remote: Counting objects: 81% (1050/1296) remote: Counting objects: 82% (1063/1296) remote: Counting objects: 83% (1076/1296) remote: Counting objects: 84% (1089/1296) remote: Counting objects: 85% (1102/1296) remote: Counting objects: 86% (1115/1296) remote: Counting objects: 87% (1128/1296) remote: Counting objects: 88% (1141/1296) remote: Counting objects: 89% (1154/1296) remote: Counting objects: 90% (1167/1296) remote: Counting objects: 91% (1180/1296) remote: Counting objects: 92% (1193/1296) remote: Counting objects: 93% (1206/1296) remote: Counting objects: 94% (1219/1296) remote: Counting objects: 95% (1232/1296) remote: Counting objects: 96% (1245/1296) remote: Counting objects: 97% (1258/1296) remote: Counting objects: 98% (1271/1296) remote: Counting objects: 99% (1284/1296) remote: Counting objects: 100% (1296/1296) remote: Counting objects: 100% (1296/1296), done. remote: Compressing objects: 0% (1/701) remote: Compressing objects: 1% (8/701) remote: Compressing objects: 2% (15/701) remote: Compressing objects: 3% (22/701) remote: Compressing objects: 4% (29/701) remote: Compressing objects: 5% (36/701) remote: Compressing objects: 6% (43/701) remote: Compressing objects: 7% (50/701) remote: Compressing objects: 8% (57/701) remote: Compressing objects: 9% (64/701) remote: Compressing objects: 10% (71/701) remote: Compressing objects: 11% (78/701) remote: Compressing objects: 12% (85/701) remote: Compressing objects: 13% (92/701) remote: Compressing objects: 14% (99/701) remote: Compressing objects: 15% (106/701) remote: Compressing objects: 16% (113/701) remote: Compressing objects: 17% (120/701) remote: Compressing objects: 18% (127/701) remote: Compressing objects: 19% (134/701) remote: Compressing objects: 20% (141/701) remote: Compressing objects: 21% (148/701) remote: Compressing objects: 22% (155/701) remote: Compressing objects: 23% (162/701) remote: Compressing objects: 24% (169/701) remote: Compressing objects: 25% (176/701) remote: Compressing objects: 26% (183/701) remote: Compressing objects: 27% (190/701) remote: Compressing objects: 28% (197/701) remote: Compressing objects: 29% (204/701) remote: Compressing objects: 30% (211/701) remote: Compressing objects: 31% (218/701) remote: Compressing objects: 32% (225/701) remote: Compressing objects: 33% (232/701) remote: Compressing objects: 34% (239/701) remote: Compressing objects: 35% (246/701) remote: Compressing objects: 36% (253/701) remote: Compressing objects: 37% (260/701) remote: Compressing objects: 38% (267/701) remote: Compressing objects: 39% (274/701) remote: Compressing objects: 40% (281/701) remote: Compressing objects: 41% (288/701) remote: Compressing objects: 42% (295/701) remote: Compressing objects: 43% (302/701) remote: Compressing objects: 44% (309/701) remote: Compressing objects: 45% (316/701) remote: Compressing objects: 46% (323/701) remote: Compressing objects: 47% (330/701) remote: Compressing objects: 48% (337/701) remote: Compressing objects: 49% (344/701) remote: Compressing objects: 50% (351/701) remote: Compressing objects: 51% (358/701) remote: Compressing objects: 52% (365/701) remote: Compressing objects: 53% (372/701) remote: Compressing objects: 54% (379/701) remote: Compressing objects: 55% (386/701) remote: Compressing objects: 56% (393/701) remote: Compressing objects: 57% (400/701) remote: Compressing objects: 58% (407/701) remote: Compressing objects: 59% (414/701) remote: Compressing objects: 60% (421/701) remote: Compressing objects: 61% (428/701) remote: Compressing objects: 62% (435/701) remote: Compressing objects: 63% (442/701) remote: Compressing objects: 64% (449/701) remote: Compressing objects: 65% (456/701) remote: Compressing objects: 66% (463/701) remote: Compressing objects: 67% (470/701) remote: Compressing objects: 68% (477/701) remote: Compressing objects: 69% (484/701) remote: Compressing objects: 70% (491/701) remote: Compressing objects: 71% (498/701) remote: Compressing objects: 72% (505/701) remote: Compressing objects: 73% (512/701) remote: Compressing objects: 74% (519/701) remote: Compressing objects: 75% (526/701) remote: Compressing objects: 76% (533/701) remote: Compressing objects: 77% (540/701) remote: Compressing objects: 78% (547/701) remote: Compressing objects: 79% (554/701) remote: Compressing objects: 80% (561/701) remote: Compressing objects: 81% (568/701) remote: Compressing objects: 82% (575/701) remote: Compressing objects: 83% (582/701) remote: Compressing objects: 84% (589/701) remote: Compressing objects: 85% (596/701) remote: Compressing objects: 86% (603/701) remote: Compressing objects: 87% (610/701) remote: Compressing objects: 88% (617/701) remote: Compressing objects: 89% (624/701) remote: Compressing objects: 90% (631/701) remote: Compressing objects: 91% (638/701) remote: Compressing objects: 92% (645/701) remote: Compressing objects: 93% (652/701) remote: Compressing objects: 94% (659/701) remote: Compressing objects: 95% (666/701) remote: Compressing objects: 96% (673/701) remote: Compressing objects: 97% (680/701) remote: Compressing objects: 98% (687/701) remote: Compressing objects: 99% (694/701) remote: Compressing objects: 100% (701/701) remote: Compressing objects: 100% (701/701), done. Receiving objects: 0% (1/13972) Receiving objects: 1% (140/13972) Receiving objects: 2% (280/13972) Receiving objects: 3% (420/13972) Receiving objects: 4% (559/13972) Receiving objects: 5% (699/13972) Receiving objects: 6% (839/13972) Receiving objects: 7% (979/13972) Receiving objects: 8% (1118/13972) Receiving objects: 9% (1258/13972) Receiving objects: 10% (1398/13972) Receiving objects: 11% (1537/13972) Receiving objects: 12% (1677/13972) Receiving objects: 13% (1817/13972) Receiving objects: 14% (1957/13972) Receiving objects: 15% (2096/13972) Receiving objects: 16% (2236/13972) Receiving objects: 17% (2376/13972) Receiving objects: 18% (2515/13972) Receiving objects: 19% (2655/13972) Receiving objects: 20% (2795/13972) Receiving objects: 21% (2935/13972) Receiving objects: 22% (3074/13972) Receiving objects: 23% (3214/13972) Receiving objects: 24% (3354/13972) Receiving objects: 25% (3493/13972) Receiving objects: 26% (3633/13972) Receiving objects: 27% (3773/13972) Receiving objects: 28% (3913/13972) Receiving objects: 29% (4052/13972) Receiving objects: 30% (4192/13972) Receiving objects: 31% (4332/13972) Receiving objects: 32% (4472/13972) Receiving objects: 33% (4611/13972) Receiving objects: 34% (4751/13972) Receiving objects: 35% (4891/13972) Receiving objects: 36% (5030/13972) Receiving objects: 37% (5170/13972) Receiving objects: 38% (5310/13972) Receiving objects: 39% (5450/13972) Receiving objects: 40% (5589/13972) Receiving objects: 41% (5729/13972) Receiving objects: 42% (5869/13972) Receiving objects: 43% (6008/13972) Receiving objects: 44% (6148/13972) Receiving objects: 45% (6288/13972) Receiving objects: 46% (6428/13972) Receiving objects: 47% (6567/13972) Receiving objects: 48% (6707/13972) Receiving objects: 49% (6847/13972) Receiving objects: 50% (6986/13972) Receiving objects: 51% (7126/13972) Receiving objects: 52% (7266/13972) Receiving objects: 53% (7406/13972) Receiving objects: 54% (7545/13972) Receiving objects: 55% (7685/13972) Receiving objects: 56% (7825/13972) Receiving objects: 57% (7965/13972) Receiving objects: 58% (8104/13972) Receiving objects: 59% (8244/13972) Receiving objects: 60% (8384/13972) Receiving objects: 61% (8523/13972) Receiving objects: 62% (8663/13972) Receiving objects: 63% (8803/13972) Receiving objects: 64% (8943/13972) Receiving objects: 65% (9082/13972) Receiving objects: 66% (9222/13972) Receiving objects: 67% (9362/13972) Receiving objects: 68% (9501/13972) Receiving objects: 69% (9641/13972) Receiving objects: 70% (9781/13972) Receiving objects: 71% (9921/13972) Receiving objects: 72% (10060/13972) Receiving objects: 73% (10200/13972) Receiving objects: 74% (10340/13972) Receiving objects: 75% (10479/13972) Receiving objects: 76% (10619/13972) Receiving objects: 77% (10759/13972) Receiving objects: 78% (10899/13972) Receiving objects: 79% (11038/13972) Receiving objects: 80% (11178/13972) Receiving objects: 81% (11318/13972) Receiving objects: 82% (11458/13972) Receiving objects: 83% (11597/13972) Receiving objects: 84% (11737/13972) Receiving objects: 85% (11877/13972) Receiving objects: 86% (12016/13972) Receiving objects: 87% (12156/13972) Receiving objects: 88% (12296/13972) Receiving objects: 89% (12436/13972) Receiving objects: 90% (12575/13972) Receiving objects: 91% (12715/13972) Receiving objects: 92% (12855/13972) Receiving objects: 93% (12994/13972) Receiving objects: 94% (13134/13972) Receiving objects: 95% (13274/13972) Receiving objects: 96% (13414/13972) Receiving objects: 97% (13553/13972) Receiving objects: 98% (13693/13972) Receiving objects: 99% (13833/13972) remote: Total 13972 (delta 760), reused 1009 (delta 589), pack-reused 12676 Receiving objects: 100% (13972/13972) Receiving objects: 100% (13972/13972), 3.11 MiB | 11.09 MiB/s, done. Resolving deltas: 0% (0/10062) Resolving deltas: 1% (101/10062) Resolving deltas: 2% (203/10062) Resolving deltas: 3% (302/10062) Resolving deltas: 4% (404/10062) Resolving deltas: 5% (505/10062) Resolving deltas: 6% (604/10062) Resolving deltas: 7% (705/10062) Resolving deltas: 8% (806/10062) Resolving deltas: 9% (906/10062) Resolving deltas: 10% (1007/10062) Resolving deltas: 11% (1107/10062) Resolving deltas: 12% (1208/10062) Resolving deltas: 13% (1309/10062) Resolving deltas: 14% (1409/10062) Resolving deltas: 15% (1511/10062) Resolving deltas: 16% (1610/10062) Resolving deltas: 17% (1711/10062) Resolving deltas: 18% (1813/10062) Resolving deltas: 19% (1913/10062) Resolving deltas: 20% (2015/10062) Resolving deltas: 21% (2114/10062) Resolving deltas: 22% (2214/10062) Resolving deltas: 23% (2315/10062) Resolving deltas: 24% (2416/10062) Resolving deltas: 25% (2516/10062) Resolving deltas: 26% (2617/10062) Resolving deltas: 27% (2717/10062) Resolving deltas: 28% (2818/10062) Resolving deltas: 29% (2918/10062) Resolving deltas: 30% (3020/10062) Resolving deltas: 31% (3120/10062) Resolving deltas: 32% (3220/10062) Resolving deltas: 33% (3321/10062) Resolving deltas: 34% (3422/10062) Resolving deltas: 35% (3522/10062) Resolving deltas: 36% (3623/10062) Resolving deltas: 37% (3723/10062) Resolving deltas: 38% (3824/10062) Resolving deltas: 39% (3925/10062) Resolving deltas: 40% (4026/10062) Resolving deltas: 41% (4126/10062) Resolving deltas: 42% (4228/10062) Resolving deltas: 43% (4327/10062) Resolving deltas: 44% (4428/10062) Resolving deltas: 45% (4528/10062) Resolving deltas: 46% (4629/10062) Resolving deltas: 47% (4730/10062) Resolving deltas: 48% (4830/10062) Resolving deltas: 49% (4932/10062) Resolving deltas: 50% (5031/10062) Resolving deltas: 51% (5132/10062) Resolving deltas: 52% (5233/10062) Resolving deltas: 53% (5333/10062) Resolving deltas: 54% (5434/10062) Resolving deltas: 55% (5535/10062) Resolving deltas: 56% (5635/10062) Resolving deltas: 57% (5736/10062) Resolving deltas: 58% (5836/10062) Resolving deltas: 59% (5937/10062) Resolving deltas: 60% (6038/10062) Resolving deltas: 61% (6138/10062) Resolving deltas: 62% (6239/10062) Resolving deltas: 63% (6340/10062) Resolving deltas: 64% (6440/10062) Resolving deltas: 65% (6541/10062) Resolving deltas: 66% (6641/10062) Resolving deltas: 67% (6742/10062) Resolving deltas: 68% (6843/10062) Resolving deltas: 69% (6944/10062) Resolving deltas: 70% (7044/10062) Resolving deltas: 71% (7145/10062) Resolving deltas: 72% (7245/10062) Resolving deltas: 73% (7346/10062) Resolving deltas: 74% (7446/10062) Resolving deltas: 75% (7547/10062) Resolving deltas: 76% (7648/10062) Resolving deltas: 77% (7750/10062) Resolving deltas: 78% (7849/10062) Resolving deltas: 79% (7949/10062) Resolving deltas: 80% (8050/10062) Resolving deltas: 81% (8151/10062) Resolving deltas: 82% (8251/10062) Resolving deltas: 83% (8352/10062) Resolving deltas: 84% (8453/10062) Resolving deltas: 85% (8553/10062) Resolving deltas: 86% (8654/10062) Resolving deltas: 87% (8754/10062) Resolving deltas: 88% (8855/10062) Resolving deltas: 89% (8956/10062) Resolving deltas: 90% (9056/10062) Resolving deltas: 91% (9157/10062) Resolving deltas: 92% (9258/10062) Resolving deltas: 93% (9358/10062) Resolving deltas: 94% (9459/10062) Resolving deltas: 95% (9559/10062) Resolving deltas: 96% (9660/10062) Resolving deltas: 97% (9761/10062) Resolving deltas: 98% (9864/10062) Resolving deltas: 99% (9962/10062) Resolving deltas: 100% (10062/10062) Resolving deltas: 100% (10062/10062), done. ==> Validating source files with b2sums... authlib ... Skipped ==> Verifying source file signatures with gpg... authlib git repo ... Passed ==> Making package: python-authlib 0.15.5-3 (Sun 27 Mar 2022 05:09:31 PM CEST) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (6) New Version Net Change Download Size core/libnsl 2.0.0-2 0.06 MiB core/python 3.10.1-2 79.11 MiB extra/python-cffi 1.15.0-3 1.00 MiB extra/python-ply 3.11-10 0.31 MiB extra/python-pycparser 2.21-3 1.39 MiB extra/python-cryptography 36.0.2-1 3.78 MiB 0.91 MiB Total Download Size: 0.91 MiB Total Installed Size: 85.65 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-cryptography-36.0.2-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libnsl... installing python... Optional dependencies for python python-setuptools python-pip sqlite [installed] mpdecimal: for decimal xz: for lzma [installed] tk: for tkinter installing python-ply... installing python-pycparser... installing python-cffi... installing python-cryptography... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (52) New Version Net Change Download Size extra/perl-error 0.17029-3 0.04 MiB extra/perl-mailtools 2.21-5 0.11 MiB extra/perl-timedate 2.33-3 0.08 MiB community/python-anyio 3.5.0-1 0.81 MiB community/python-apipkg 2.1.0-1 0.03 MiB extra/python-appdirs 1.4.4-6 0.07 MiB extra/python-asgiref 3.5.0-1 0.15 MiB extra/python-attrs 21.4.0-1 0.45 MiB community/python-certifi 2021.10.8-3 0.26 MiB extra/python-chardet 4.0.0-5 2.10 MiB community/python-charset-normalizer 2.0.10-2 0.31 MiB community/python-click 8.0.4-1 0.89 MiB community/python-colorama 0.4.4-6 0.08 MiB community/python-commonmark 0.9.1-5 0.62 MiB community/python-docutils 1:0.16-2 4.29 MiB community/python-flask 2.0.3-1 0.82 MiB community/python-future 0.18.2-7 3.86 MiB community/python-greenlet 1.1.2-3 0.38 MiB community/python-h11 0.12.0-3 0.39 MiB community/python-httpcore 0.14.7-1 0.57 MiB extra/python-idna 3.3-4 0.66 MiB community/python-iniconfig 1.1.1-5 0.02 MiB community/python-itsdangerous 2.1.0-1 0.11 MiB community/python-jinja 1:3.0.3-1 1.29 MiB extra/python-markupsafe 2.1.1-1 0.06 MiB community/python-more-itertools 8.12.0-1 0.48 MiB extra/python-ordered-set 4.0.2-6 0.06 MiB extra/python-packaging 21.0-1 0.26 MiB community/python-pluggy 1.0.0-1 0.10 MiB community/python-py 1.11.0-1 0.71 MiB community/python-pygments 2.11.2-1 11.22 MiB extra/python-pyparsing 3.0.7-1 0.96 MiB community/python-pytest 7.1.1-1 2.62 MiB community/python-pytz 2022.1-1 0.14 MiB community/python-rfc3986 1.5.0-3 0.24 MiB community/python-rich 12.0.1-1 1.76 MiB 0.37 MiB community/python-sniffio 1.2.0-5 0.02 MiB community/python-sqlalchemy 1.4.30-1 10.88 MiB community/python-sqlparse 0.4.2-3 0.22 MiB extra/python-tomli 2.0.1-1 0.08 MiB community/python-typing_extensions 4.1.0-1 0.20 MiB extra/python-urllib3 1.26.7-5 0.69 MiB community/python-werkzeug 2.0.3-1 2.25 MiB extra/git 2.35.1-1 29.55 MiB extra/python-django 4.0.3-1 28.72 MiB 4.43 MiB community/python-flask-sqlalchemy 2.5.1-3 0.23 MiB community/python-httpx 0.22.0-1 0.74 MiB community/python-pytest-asyncio 0.17.1-1 0.06 MiB community/python-pytest-django 4.5.2-1 0.16 MiB 0.04 MiB extra/python-requests 2.27.1-1 0.45 MiB extra/python-setuptools 1:59.1.0-1 2.95 MiB community/python-starlette 0.14.2-3 0.54 MiB Total Download Size: 4.84 MiB Total Installed Size: 114.77 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-django-4.0.3-1-any downloading... python-rich-12.0.1-1-any downloading... python-pytest-django-4.5.2-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing git... Optional dependencies for git tk: gitk and git gui perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] installing python-appdirs... installing python-more-itertools... installing python-ordered-set... installing python-pyparsing... Optional dependencies for python-pyparsing python-railroad-diagrams: for generating Railroad Diagrams python-jinja: for generating Railroad Diagrams [pending] installing python-packaging... installing python-setuptools... installing python-attrs... installing python-iniconfig... installing python-pluggy... installing python-apipkg... installing python-py... installing python-tomli... installing python-pytest... installing python-typing_extensions... installing python-pytest-asyncio... installing python-pytest-django... installing python-urllib3... Optional dependencies for python-urllib3 python-pysocks: SOCKS support python-brotli: Brotli support python-pyopenssl: security support python-idna: security support [pending] installing python-chardet... installing python-idna... installing python-requests... Optional dependencies for python-requests python-pysocks: SOCKS proxy support installing python-pytz... installing python-sqlparse... installing python-asgiref... installing python-django... Optional dependencies for python-django python-psycopg2: for PostgreSQL backend python-argon2_cffi: for Argon2 password hashing support installing python-werkzeug... installing python-markupsafe... installing python-jinja... Optional dependencies for python-jinja python-babel: for i18n support installing python-itsdangerous... installing python-click... installing python-flask... installing python-greenlet... installing python-sqlalchemy... Optional dependencies for python-sqlalchemy python-psycopg2: connect to PostgreSQL database installing python-flask-sqlalchemy... installing python-charset-normalizer... installing python-sniffio... installing python-anyio... Optional dependencies for python-anyio python-curio: curio backend python-trio: trio backend installing python-h11... installing python-certifi... installing python-httpcore... Optional dependencies for python-httpcore python-h2: for HTTP/2 support python-socksio: for SOCKS support installing python-rfc3986... installing python-colorama... installing python-pygments... installing python-docutils... installing python-future... Optional dependencies for python-future python-setuptools: futurize and pasteurize scripts [installed] installing python-commonmark... installing python-rich... installing python-httpx... Optional dependencies for python-httpx python-brotlicffi: for brotli response decompression installing python-starlette... Optional dependencies for python-starlette python-aiofiles python-graphene python-itsdangerous [installed] python-jinja [installed] python-yaml python-requests [installed] python-ujson python-python-multipart :: Running post-transaction hooks... (1/1) Warn about old perl modules [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Creating working copy of authlib git repo... Cloning into 'authlib'... done. Switched to a new branch 'makepkg' ==> Starting prepare()... ==> Starting pkgver()... ==> Starting build()... running build running build_py creating build creating build/lib creating build/lib/authlib copying authlib/__init__.py -> build/lib/authlib copying authlib/deprecate.py -> build/lib/authlib copying authlib/consts.py -> build/lib/authlib creating build/lib/authlib/common copying authlib/common/__init__.py -> build/lib/authlib/common copying authlib/common/security.py -> build/lib/authlib/common copying authlib/common/encoding.py -> build/lib/authlib/common copying authlib/common/errors.py -> build/lib/authlib/common copying authlib/common/urls.py -> build/lib/authlib/common creating build/lib/authlib/integrations copying authlib/integrations/__init__.py -> build/lib/authlib/integrations copying authlib/integrations/flask_helpers.py -> build/lib/authlib/integrations copying authlib/integrations/django_helpers.py -> build/lib/authlib/integrations creating build/lib/authlib/jose copying authlib/jose/__init__.py -> build/lib/authlib/jose copying authlib/jose/errors.py -> build/lib/authlib/jose copying authlib/jose/jwk.py -> build/lib/authlib/jose copying authlib/jose/util.py -> build/lib/authlib/jose creating build/lib/authlib/oauth1 copying authlib/oauth1/__init__.py -> build/lib/authlib/oauth1 copying authlib/oauth1/client.py -> build/lib/authlib/oauth1 copying authlib/oauth1/errors.py -> build/lib/authlib/oauth1 creating build/lib/authlib/oauth2 copying authlib/oauth2/__init__.py -> build/lib/authlib/oauth2 copying authlib/oauth2/auth.py -> build/lib/authlib/oauth2 copying authlib/oauth2/base.py -> build/lib/authlib/oauth2 copying authlib/oauth2/client.py -> build/lib/authlib/oauth2 creating build/lib/authlib/oidc copying authlib/oidc/__init__.py -> build/lib/authlib/oidc creating build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/errors.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/__init__.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/async_app.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/base_app.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/base_oauth.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/framework_integration.py -> build/lib/authlib/integrations/base_client copying authlib/integrations/base_client/remote_app.py -> build/lib/authlib/integrations/base_client creating build/lib/authlib/integrations/django_client copying authlib/integrations/django_client/__init__.py -> build/lib/authlib/integrations/django_client copying authlib/integrations/django_client/integration.py -> build/lib/authlib/integrations/django_client creating build/lib/authlib/integrations/django_oauth1 copying authlib/integrations/django_oauth1/__init__.py -> build/lib/authlib/integrations/django_oauth1 copying authlib/integrations/django_oauth1/authorization_server.py -> build/lib/authlib/integrations/django_oauth1 copying authlib/integrations/django_oauth1/nonce.py -> build/lib/authlib/integrations/django_oauth1 copying authlib/integrations/django_oauth1/resource_protector.py -> build/lib/authlib/integrations/django_oauth1 creating build/lib/authlib/integrations/django_oauth2 copying authlib/integrations/django_oauth2/__init__.py -> build/lib/authlib/integrations/django_oauth2 copying authlib/integrations/django_oauth2/signals.py -> build/lib/authlib/integrations/django_oauth2 copying authlib/integrations/django_oauth2/authorization_server.py -> build/lib/authlib/integrations/django_oauth2 copying authlib/integrations/django_oauth2/endpoints.py -> build/lib/authlib/integrations/django_oauth2 copying authlib/integrations/django_oauth2/resource_protector.py -> build/lib/authlib/integrations/django_oauth2 creating build/lib/authlib/integrations/flask_client copying authlib/integrations/flask_client/__init__.py -> build/lib/authlib/integrations/flask_client copying authlib/integrations/flask_client/integration.py -> build/lib/authlib/integrations/flask_client copying authlib/integrations/flask_client/oauth_registry.py -> build/lib/authlib/integrations/flask_client copying authlib/integrations/flask_client/remote_app.py -> build/lib/authlib/integrations/flask_client creating build/lib/authlib/integrations/flask_oauth1 copying authlib/integrations/flask_oauth1/__init__.py -> build/lib/authlib/integrations/flask_oauth1 copying authlib/integrations/flask_oauth1/authorization_server.py -> build/lib/authlib/integrations/flask_oauth1 copying authlib/integrations/flask_oauth1/cache.py -> build/lib/authlib/integrations/flask_oauth1 copying authlib/integrations/flask_oauth1/resource_protector.py -> build/lib/authlib/integrations/flask_oauth1 creating build/lib/authlib/integrations/flask_oauth2 copying authlib/integrations/flask_oauth2/__init__.py -> build/lib/authlib/integrations/flask_oauth2 copying authlib/integrations/flask_oauth2/errors.py -> build/lib/authlib/integrations/flask_oauth2 copying authlib/integrations/flask_oauth2/signals.py -> build/lib/authlib/integrations/flask_oauth2 copying authlib/integrations/flask_oauth2/authorization_server.py -> build/lib/authlib/integrations/flask_oauth2 copying authlib/integrations/flask_oauth2/resource_protector.py -> build/lib/authlib/integrations/flask_oauth2 creating build/lib/authlib/integrations/httpx_client copying authlib/integrations/httpx_client/__init__.py -> build/lib/authlib/integrations/httpx_client copying authlib/integrations/httpx_client/assertion_client.py -> build/lib/authlib/integrations/httpx_client copying authlib/integrations/httpx_client/oauth1_client.py -> build/lib/authlib/integrations/httpx_client copying authlib/integrations/httpx_client/oauth2_client.py -> build/lib/authlib/integrations/httpx_client copying authlib/integrations/httpx_client/utils.py -> build/lib/authlib/integrations/httpx_client creating build/lib/authlib/integrations/requests_client copying authlib/integrations/requests_client/__init__.py -> build/lib/authlib/integrations/requests_client copying authlib/integrations/requests_client/assertion_session.py -> build/lib/authlib/integrations/requests_client copying authlib/integrations/requests_client/oauth1_session.py -> build/lib/authlib/integrations/requests_client copying authlib/integrations/requests_client/oauth2_session.py -> build/lib/authlib/integrations/requests_client creating build/lib/authlib/integrations/sqla_oauth2 copying authlib/integrations/sqla_oauth2/__init__.py -> build/lib/authlib/integrations/sqla_oauth2 copying authlib/integrations/sqla_oauth2/client_mixin.py -> build/lib/authlib/integrations/sqla_oauth2 copying authlib/integrations/sqla_oauth2/functions.py -> build/lib/authlib/integrations/sqla_oauth2 copying authlib/integrations/sqla_oauth2/tokens_mixins.py -> build/lib/authlib/integrations/sqla_oauth2 creating build/lib/authlib/integrations/starlette_client copying authlib/integrations/starlette_client/__init__.py -> build/lib/authlib/integrations/starlette_client copying authlib/integrations/starlette_client/integration.py -> build/lib/authlib/integrations/starlette_client creating build/lib/authlib/integrations/sqla_oauth1 copying authlib/integrations/sqla_oauth1/__init__.py -> build/lib/authlib/integrations/sqla_oauth1 copying authlib/integrations/sqla_oauth1/functions.py -> build/lib/authlib/integrations/sqla_oauth1 copying authlib/integrations/sqla_oauth1/mixins.py -> build/lib/authlib/integrations/sqla_oauth1 creating build/lib/authlib/jose/drafts copying authlib/jose/drafts/__init__.py -> build/lib/authlib/jose/drafts copying authlib/jose/drafts/_jwe_enc_cryptography.py -> build/lib/authlib/jose/drafts creating build/lib/authlib/jose/rfc7515 copying authlib/jose/rfc7515/__init__.py -> build/lib/authlib/jose/rfc7515 copying authlib/jose/rfc7515/models.py -> build/lib/authlib/jose/rfc7515 copying authlib/jose/rfc7515/jws.py -> build/lib/authlib/jose/rfc7515 creating build/lib/authlib/jose/rfc7516 copying authlib/jose/rfc7516/__init__.py -> build/lib/authlib/jose/rfc7516 copying authlib/jose/rfc7516/jwe.py -> build/lib/authlib/jose/rfc7516 copying authlib/jose/rfc7516/models.py -> build/lib/authlib/jose/rfc7516 creating build/lib/authlib/jose/rfc7517 copying authlib/jose/rfc7517/_cryptography_key.py -> build/lib/authlib/jose/rfc7517 copying authlib/jose/rfc7517/__init__.py -> build/lib/authlib/jose/rfc7517 copying authlib/jose/rfc7517/jwk.py -> build/lib/authlib/jose/rfc7517 copying authlib/jose/rfc7517/models.py -> build/lib/authlib/jose/rfc7517 creating build/lib/authlib/jose/rfc7518 copying authlib/jose/rfc7518/util.py -> build/lib/authlib/jose/rfc7518 copying authlib/jose/rfc7518/__init__.py -> build/lib/authlib/jose/rfc7518 copying authlib/jose/rfc7518/jwe_algorithms.py -> build/lib/authlib/jose/rfc7518 copying authlib/jose/rfc7518/jws_algorithms.py -> build/lib/authlib/jose/rfc7518 copying authlib/jose/rfc7518/oct_key.py -> build/lib/authlib/jose/rfc7518 creating build/lib/authlib/jose/rfc7519 copying authlib/jose/rfc7519/__init__.py -> build/lib/authlib/jose/rfc7519 copying authlib/jose/rfc7519/claims.py -> build/lib/authlib/jose/rfc7519 copying authlib/jose/rfc7519/jwt.py -> build/lib/authlib/jose/rfc7519 creating build/lib/authlib/jose/rfc8037 copying authlib/jose/rfc8037/__init__.py -> build/lib/authlib/jose/rfc8037 copying authlib/jose/rfc8037/_jws_cryptography.py -> build/lib/authlib/jose/rfc8037 copying authlib/jose/rfc8037/okp_key.py -> build/lib/authlib/jose/rfc8037 creating build/lib/authlib/jose/rfc7518/_cryptography_backends copying authlib/jose/rfc7518/_cryptography_backends/__init__.py -> build/lib/authlib/jose/rfc7518/_cryptography_backends copying authlib/jose/rfc7518/_cryptography_backends/_jwe_alg.py -> build/lib/authlib/jose/rfc7518/_cryptography_backends copying authlib/jose/rfc7518/_cryptography_backends/_jwe_enc.py -> build/lib/authlib/jose/rfc7518/_cryptography_backends copying authlib/jose/rfc7518/_cryptography_backends/_jws.py -> build/lib/authlib/jose/rfc7518/_cryptography_backends copying authlib/jose/rfc7518/_cryptography_backends/_keys.py -> build/lib/authlib/jose/rfc7518/_cryptography_backends creating build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/__init__.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/base_server.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/models.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/parameters.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/resource_protector.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/rsa.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/signature.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/util.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/authorization_server.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/client_auth.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/errors.py -> build/lib/authlib/oauth1/rfc5849 copying authlib/oauth1/rfc5849/wrapper.py -> build/lib/authlib/oauth1/rfc5849 creating build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/parameters.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/util.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/__init__.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/authenticate_client.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/authorization_server.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/errors.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/models.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/resource_protector.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/token_endpoint.py -> build/lib/authlib/oauth2/rfc6749 copying authlib/oauth2/rfc6749/wrappers.py -> build/lib/authlib/oauth2/rfc6749 creating build/lib/authlib/oauth2/rfc6750 copying authlib/oauth2/rfc6750/parameters.py -> build/lib/authlib/oauth2/rfc6750 copying authlib/oauth2/rfc6750/__init__.py -> build/lib/authlib/oauth2/rfc6750 copying authlib/oauth2/rfc6750/errors.py -> build/lib/authlib/oauth2/rfc6750 copying authlib/oauth2/rfc6750/validator.py -> build/lib/authlib/oauth2/rfc6750 copying authlib/oauth2/rfc6750/wrappers.py -> build/lib/authlib/oauth2/rfc6750 creating build/lib/authlib/oauth2/rfc7009 copying authlib/oauth2/rfc7009/__init__.py -> build/lib/authlib/oauth2/rfc7009 copying authlib/oauth2/rfc7009/parameters.py -> build/lib/authlib/oauth2/rfc7009 copying authlib/oauth2/rfc7009/revocation.py -> build/lib/authlib/oauth2/rfc7009 creating build/lib/authlib/oauth2/rfc7521 copying authlib/oauth2/rfc7521/__init__.py -> build/lib/authlib/oauth2/rfc7521 copying authlib/oauth2/rfc7521/client.py -> build/lib/authlib/oauth2/rfc7521 creating build/lib/authlib/oauth2/rfc7523 copying authlib/oauth2/rfc7523/__init__.py -> build/lib/authlib/oauth2/rfc7523 copying authlib/oauth2/rfc7523/assertion.py -> build/lib/authlib/oauth2/rfc7523 copying authlib/oauth2/rfc7523/auth.py -> build/lib/authlib/oauth2/rfc7523 copying authlib/oauth2/rfc7523/client.py -> build/lib/authlib/oauth2/rfc7523 copying authlib/oauth2/rfc7523/jwt_bearer.py -> build/lib/authlib/oauth2/rfc7523 creating build/lib/authlib/oauth2/rfc7591 copying authlib/oauth2/rfc7591/__init__.py -> build/lib/authlib/oauth2/rfc7591 copying authlib/oauth2/rfc7591/claims.py -> build/lib/authlib/oauth2/rfc7591 copying authlib/oauth2/rfc7591/errors.py -> build/lib/authlib/oauth2/rfc7591 copying authlib/oauth2/rfc7591/endpoint.py -> build/lib/authlib/oauth2/rfc7591 creating build/lib/authlib/oauth2/rfc7592 copying authlib/oauth2/rfc7592/__init__.py -> build/lib/authlib/oauth2/rfc7592 copying authlib/oauth2/rfc7592/endpoint.py -> build/lib/authlib/oauth2/rfc7592 creating build/lib/authlib/oauth2/rfc7636 copying authlib/oauth2/rfc7636/__init__.py -> build/lib/authlib/oauth2/rfc7636 copying authlib/oauth2/rfc7636/challenge.py -> build/lib/authlib/oauth2/rfc7636 creating build/lib/authlib/oauth2/rfc7662 copying authlib/oauth2/rfc7662/models.py -> build/lib/authlib/oauth2/rfc7662 copying authlib/oauth2/rfc7662/__init__.py -> build/lib/authlib/oauth2/rfc7662 copying authlib/oauth2/rfc7662/introspection.py -> build/lib/authlib/oauth2/rfc7662 creating build/lib/authlib/oauth2/rfc8414 copying authlib/oauth2/rfc8414/__init__.py -> build/lib/authlib/oauth2/rfc8414 copying authlib/oauth2/rfc8414/models.py -> build/lib/authlib/oauth2/rfc8414 copying authlib/oauth2/rfc8414/well_known.py -> build/lib/authlib/oauth2/rfc8414 creating build/lib/authlib/oauth2/rfc8628 copying authlib/oauth2/rfc8628/__init__.py -> build/lib/authlib/oauth2/rfc8628 copying authlib/oauth2/rfc8628/errors.py -> build/lib/authlib/oauth2/rfc8628 copying authlib/oauth2/rfc8628/device_code.py -> build/lib/authlib/oauth2/rfc8628 copying authlib/oauth2/rfc8628/endpoint.py -> build/lib/authlib/oauth2/rfc8628 copying authlib/oauth2/rfc8628/models.py -> build/lib/authlib/oauth2/rfc8628 creating build/lib/authlib/oauth2/rfc8693 copying authlib/oauth2/rfc8693/__init__.py -> build/lib/authlib/oauth2/rfc8693 creating build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/__init__.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/client_credentials.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/implicit.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/resource_owner_password_credentials.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/authorization_code.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/base.py -> build/lib/authlib/oauth2/rfc6749/grants copying authlib/oauth2/rfc6749/grants/refresh_token.py -> build/lib/authlib/oauth2/rfc6749/grants creating build/lib/authlib/oidc/core copying authlib/oidc/core/errors.py -> build/lib/authlib/oidc/core copying authlib/oidc/core/models.py -> build/lib/authlib/oidc/core copying authlib/oidc/core/util.py -> build/lib/authlib/oidc/core copying authlib/oidc/core/__init__.py -> build/lib/authlib/oidc/core copying authlib/oidc/core/claims.py -> build/lib/authlib/oidc/core creating build/lib/authlib/oidc/discovery copying authlib/oidc/discovery/__init__.py -> build/lib/authlib/oidc/discovery copying authlib/oidc/discovery/models.py -> build/lib/authlib/oidc/discovery copying authlib/oidc/discovery/well_known.py -> build/lib/authlib/oidc/discovery creating build/lib/authlib/oidc/core/grants copying authlib/oidc/core/grants/__init__.py -> build/lib/authlib/oidc/core/grants copying authlib/oidc/core/grants/code.py -> build/lib/authlib/oidc/core/grants copying authlib/oidc/core/grants/hybrid.py -> build/lib/authlib/oidc/core/grants copying authlib/oidc/core/grants/implicit.py -> build/lib/authlib/oidc/core/grants copying authlib/oidc/core/grants/util.py -> build/lib/authlib/oidc/core/grants running egg_info creating Authlib.egg-info writing Authlib.egg-info/PKG-INFO writing dependency_links to Authlib.egg-info/dependency_links.txt writing requirements to Authlib.egg-info/requires.txt writing top-level names to Authlib.egg-info/top_level.txt writing manifest file 'Authlib.egg-info/SOURCES.txt' reading manifest file 'Authlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' no previously-included directories found matching 'tests*' adding license file 'LICENSE' writing manifest file 'Authlib.egg-info/SOURCES.txt' ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.10.1, pytest-7.1.1, pluggy-1.0.0 django: settings: tests.django.settings (from ini) rootdir: /build/python-authlib/src/authlib, configfile: setup.cfg plugins: asyncio-0.17.1, django-4.5.2, anyio-3.5.0 asyncio: mode=legacy collected 259 items tests/core/test_jose/test_jwe.py ............... [ 5%] tests/core/test_jose/test_jwk.py ................... [ 13%] tests/core/test_jose/test_jws.py .............. [ 18%] tests/core/test_jose/test_jwt.py ................ [ 24%] tests/core/test_oauth2/test_rfc6749_misc.py ..... [ 26%] tests/core/test_oauth2/test_rfc7591.py ...... [ 28%] tests/core/test_oauth2/test_rfc7662.py ...... [ 31%] tests/core/test_oauth2/test_rfc8414.py .......................... [ 41%] tests/core/test_oidc/test_core.py .......... [ 45%] tests/core/test_oidc/test_discovery.py ....................... [ 54%] tests/core/test_requests_client/test_assertion_session.py .. [ 54%] tests/core/test_requests_client/test_oauth1_session.py ................ [ 61%] tests/core/test_requests_client/test_oauth2_session.py ................. [ 67%] ........... [ 71%] tests/py3/test_httpx_client/test_assertion_client.py .. [ 72%] tests/py3/test_httpx_client/test_async_assertion_client.py .. [ 73%] tests/py3/test_httpx_client/test_async_oauth1_client.py ....... [ 76%] tests/py3/test_httpx_client/test_async_oauth2_client.py ................ [ 82%] .... [ 83%] tests/py3/test_httpx_client/test_oauth1_client.py ....... [ 86%] tests/py3/test_httpx_client/test_oauth2_client.py ................... [ 93%] tests/py3/test_starlette_client/test_oauth_client.py ........... [ 98%] tests/py3/test_starlette_client/test_user_mixin.py ..... [100%] =============================== warnings summary =============================== ../../../../usr/lib/python3.10/site-packages/django/conf/__init__.py:206 /usr/lib/python3.10/site-packages/django/conf/__init__.py:206: RemovedInDjango50Warning: The default value of USE_TZ will change from False to True in Django 5.0. Set USE_TZ to False in your project settings if you want to keep the current default behavior. warnings.warn( ../../../../usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:186 /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:186: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file. config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) ../../../../usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1252 /usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1252: PytestConfigWarning: Unknown config option: python_paths self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") tests/core/test_jose/test_jwe.py::JWETest::test_aes_gcm_jwe /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:312: DeprecationWarning: '@pytest.fixture' is applied to in 'legacy' mode, please replace it with '@pytest_asyncio.fixture' as a preparation for switching to 'strict' mode (or use 'auto' mode to seamlessly handle all these fixtures as asyncio-driven). warnings.warn( tests/core/test_jose/test_jwe.py: 1 warning tests/core/test_jose/test_jwk.py: 1 warning tests/core/test_jose/test_jws.py: 1 warning tests/core/test_jose/test_jwt.py: 1 warning tests/core/test_oauth2/test_rfc6749_misc.py: 2 warnings tests/core/test_oauth2/test_rfc7591.py: 1 warning tests/core/test_oauth2/test_rfc7662.py: 1 warning tests/core/test_oauth2/test_rfc8414.py: 2 warnings tests/core/test_oidc/test_core.py: 2 warnings tests/core/test_oidc/test_discovery.py: 2 warnings tests/core/test_requests_client/test_assertion_session.py: 1 warning tests/core/test_requests_client/test_oauth1_session.py: 1 warning tests/core/test_requests_client/test_oauth2_session.py: 1 warning /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:312: DeprecationWarning: '@pytest.fixture' is applied to .fixture, file=/usr/lib/python3.10/site-packages/_pytest/unittest.py, line=142> in 'legacy' mode, please replace it with '@pytest_asyncio.fixture' as a preparation for switching to 'strict' mode (or use 'auto' mode to seamlessly handle all these fixtures as asyncio-driven). warnings.warn( tests/py3/test_httpx_client/test_assertion_client.py: 3 warnings tests/py3/test_httpx_client/test_async_assertion_client.py: 3 warnings tests/py3/test_httpx_client/test_async_oauth1_client.py: 7 warnings tests/py3/test_httpx_client/test_async_oauth2_client.py: 37 warnings tests/py3/test_httpx_client/test_oauth1_client.py: 7 warnings tests/py3/test_httpx_client/test_oauth2_client.py: 42 warnings tests/py3/test_starlette_client/test_oauth_client.py: 6 warnings tests/py3/test_starlette_client/test_user_mixin.py: 2 warnings /usr/lib/python3.10/site-packages/httpx/_content.py:203: DeprecationWarning: Use 'content=<...>' to upload raw bytes/text content. warnings.warn(message, DeprecationWarning) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ====================== 259 passed, 128 warnings in 6.86s ======================= ============================= test session starts ============================== platform linux -- Python 3.10.1, pytest-7.1.1, pluggy-1.0.0 django: settings: tests.django.settings (from ini) rootdir: /build/python-authlib/src/authlib, configfile: setup.cfg plugins: asyncio-0.17.1, django-4.5.2, anyio-3.5.0 asyncio: mode=legacy collected 61 items tests/django/test_client/test_oauth_client.py ............. [ 21%] tests/django/test_oauth1/test_authorize.py FFFF [ 27%] tests/django/test_oauth1/test_resource_protector.py FFFF [ 34%] tests/django/test_oauth1/test_token_credentials.py FFFFF [ 42%] tests/django/test_oauth2/test_authorization_code_grant.py FFFFFFF [ 54%] tests/django/test_oauth2/test_client_credentials_grant.py FFFFF [ 62%] tests/django/test_oauth2/test_implicit_grant.py FFF [ 67%] tests/django/test_oauth2/test_password_grant.py FFFFF [ 75%] tests/django/test_oauth2/test_refresh_token.py FFFFFF [ 85%] tests/django/test_oauth2/test_resource_protector.py FFFFF [ 93%] tests/django/test_oauth2/test_revocation_endpoint.py FFFF [100%] =================================== FAILURES =================================== ___________________ AuthorizationTest.test_authorize_denied ____________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['PLAINTEXT']}) def test_authorize_denied(self): self.prepare_data() server = self.create_server() initiate_url = '/oauth/initiate' authorize_url = '/oauth/authorize' # case 1 request = self.factory.post(initiate_url, data={ 'oauth_consumer_key': 'client', 'oauth_callback': 'oob', 'oauth_signature_method': 'PLAINTEXT', 'oauth_signature': 'secret&' }) > resp = server.create_temporary_credentials_response(request) tests/django/test_oauth1/test_authorize.py:65: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:105: in create_temporary_credentials_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________________ AuthorizationTest.test_authorize_granted ___________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['PLAINTEXT']}) def test_authorize_granted(self): self.prepare_data() server = self.create_server() user = User.objects.get(username='foo') initiate_url = '/oauth/initiate' authorize_url = '/oauth/authorize' # case 1 request = self.factory.post(initiate_url, data={ 'oauth_consumer_key': 'client', 'oauth_callback': 'oob', 'oauth_signature_method': 'PLAINTEXT', 'oauth_signature': 'secret&' }) > resp = server.create_temporary_credentials_response(request) tests/django/test_oauth1/test_authorize.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:105: in create_temporary_credentials_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _________________ AuthorizationTest.test_invalid_authorization _________________ self = def test_invalid_authorization(self): server = self.create_server() url = '/oauth/authorize' request = self.factory.post(url) > self.assertRaises( errors.MissingRequiredParameterError, server.check_authorization_request, request ) tests/django/test_oauth1/test_authorize.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth1/authorization_server.py:59: in check_authorization_request req = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________________ AuthorizationTest.test_invalid_initiate ____________________ self = def test_invalid_initiate(self): server = self.create_server() url = '/oauth/initiate' request = self.factory.post(url, data={ 'oauth_consumer_key': 'client', 'oauth_callback': 'oob', 'oauth_signature_method': 'PLAINTEXT', 'oauth_signature': 'secret&' }) > resp = server.create_temporary_credentials_response(request) tests/django/test_oauth1/test_authorize.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:105: in create_temporary_credentials_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ____________________ ResourceTest.test_hmac_sha1_signature _____________________ self = def test_hmac_sha1_signature(self): self.prepare_data() handle = self.create_route() url = '/user' params = [ ('oauth_consumer_key', 'client'), ('oauth_token', 'valid-token'), ('oauth_signature_method', 'HMAC-SHA1'), ('oauth_timestamp', str(int(time.time()))), ('oauth_nonce', 'hmac-sha1-nonce'), ] base_string = signature.construct_base_string( 'GET', 'http://testserver/user', params ) sig = signature.hmac_sha1_signature( base_string, 'secret', 'valid-token-secret') params.append(('oauth_signature', sig)) auth_param = ','.join(['{}="{}"'.format(k, v) for k, v in params]) auth_header = 'OAuth ' + auth_param # case 1: success request = self.factory.get(url, HTTP_AUTHORIZATION=auth_header) > resp = handle(request) tests/django/test_oauth1/test_resource_protector.py:143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth1/resource_protector.py:56: in decorated credential = self.acquire_credential(request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = def acquire_credential(self, request): if request.method in ['POST', 'PUT']: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth1/resource_protector.py:47: AttributeError _________________ ResourceTest.test_invalid_request_parameters _________________ self = def test_invalid_request_parameters(self): self.prepare_data() handle = self.create_route() url = '/user' # case 1 request = self.factory.get(url) > resp = handle(request) tests/django/test_oauth1/test_resource_protector.py:51: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth1/resource_protector.py:56: in decorated credential = self.acquire_credential(request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = def acquire_credential(self, request): if request.method in ['POST', 'PUT']: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth1/resource_protector.py:47: AttributeError ____________________ ResourceTest.test_plaintext_signature _____________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['PLAINTEXT']}) def test_plaintext_signature(self): self.prepare_data() handle = self.create_route() url = '/user' # case 1: success auth_header = ( 'OAuth oauth_consumer_key="client",' 'oauth_signature_method="PLAINTEXT",' 'oauth_token="valid-token",' 'oauth_signature="secret&valid-token-secret"' ) request = self.factory.get(url, HTTP_AUTHORIZATION=auth_header) > resp = handle(request) tests/django/test_oauth1/test_resource_protector.py:109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth1/resource_protector.py:56: in decorated credential = self.acquire_credential(request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = def acquire_credential(self, request): if request.method in ['POST', 'PUT']: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth1/resource_protector.py:47: AttributeError _____________________ ResourceTest.test_rsa_sha1_signature _____________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['RSA-SHA1']}) def test_rsa_sha1_signature(self): self.prepare_data() handle = self.create_route() url = '/user' params = [ ('oauth_consumer_key', 'client'), ('oauth_token', 'valid-token'), ('oauth_signature_method', 'RSA-SHA1'), ('oauth_timestamp', str(int(time.time()))), ('oauth_nonce', 'rsa-sha1-nonce'), ] base_string = signature.construct_base_string( 'GET', 'http://testserver/user', params ) sig = signature.rsa_sha1_signature( base_string, read_file_path('rsa_private.pem')) params.append(('oauth_signature', sig)) auth_param = ','.join(['{}="{}"'.format(k, v) for k, v in params]) auth_header = 'OAuth ' + auth_param request = self.factory.get(url, HTTP_AUTHORIZATION=auth_header) > resp = handle(request) tests/django/test_oauth1/test_resource_protector.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth1/resource_protector.py:56: in decorated credential = self.acquire_credential(request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = def acquire_credential(self, request): if request.method in ['POST', 'PUT']: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth1/resource_protector.py:47: AttributeError ______________ AuthorizationTest.test_duplicated_oauth_parameters ______________ self = def test_duplicated_oauth_parameters(self): self.prepare_data() server = self.create_server() url = '/oauth/token?oauth_consumer_key=client' request = self.factory.post(url, data={ 'oauth_consumer_key': 'client', 'oauth_token': 'abc', 'oauth_verifier': 'abc' }) > resp = server.create_token_response(request) tests/django/test_oauth1/test_token_credentials.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:243: in create_token_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ AuthorizationTest.test_hmac_sha1_signature __________________ self = def test_hmac_sha1_signature(self): self.prepare_data() server = self.create_server() url = '/oauth/token' params = [ ('oauth_consumer_key', 'client'), ('oauth_token', 'abc'), ('oauth_verifier', 'abc-verifier'), ('oauth_signature_method', 'HMAC-SHA1'), ('oauth_timestamp', str(int(time.time()))), ('oauth_nonce', 'hmac-sha1-nonce'), ] base_string = signature.construct_base_string( 'POST', 'http://testserver/oauth/token', params ) sig = signature.hmac_sha1_signature( base_string, 'secret', 'abc-secret') params.append(('oauth_signature', sig)) auth_param = ','.join(['{}="{}"'.format(k, v) for k, v in params]) auth_header = 'OAuth ' + auth_param # case 1: success self.prepare_temporary_credential(server) request = self.factory.post(url, HTTP_AUTHORIZATION=auth_header) > resp = server.create_token_response(request) tests/django/test_oauth1/test_token_credentials.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:243: in create_token_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________ AuthorizationTest.test_invalid_token_request_parameters ____________ self = def test_invalid_token_request_parameters(self): self.prepare_data() server = self.create_server() url = '/oauth/token' # case 1 request = self.factory.post(url) > resp = server.create_token_response(request) tests/django/test_oauth1/test_token_credentials.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:243: in create_token_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ AuthorizationTest.test_plaintext_signature __________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['PLAINTEXT']}) def test_plaintext_signature(self): self.prepare_data() server = self.create_server() url = '/oauth/token' # case 1: success self.prepare_temporary_credential(server) auth_header = ( 'OAuth oauth_consumer_key="client",' 'oauth_signature_method="PLAINTEXT",' 'oauth_token="abc",' 'oauth_verifier="abc-verifier",' 'oauth_signature="secret&abc-secret"' ) request = self.factory.post(url, HTTP_AUTHORIZATION=auth_header) > resp = server.create_token_response(request) tests/django/test_oauth1/test_token_credentials.py:98: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:243: in create_token_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ AuthorizationTest.test_rsa_sha1_signature ___________________ self = @override_settings( AUTHLIB_OAUTH1_PROVIDER={'signature_methods': ['RSA-SHA1']}) def test_rsa_sha1_signature(self): self.prepare_data() server = self.create_server() url = '/oauth/token' self.prepare_temporary_credential(server) params = [ ('oauth_consumer_key', 'client'), ('oauth_token', 'abc'), ('oauth_verifier', 'abc-verifier'), ('oauth_signature_method', 'RSA-SHA1'), ('oauth_timestamp', str(int(time.time()))), ('oauth_nonce', 'rsa-sha1-nonce'), ] base_string = signature.construct_base_string( 'POST', 'http://testserver/oauth/token', params ) sig = signature.rsa_sha1_signature( base_string, read_file_path('rsa_private.pem')) params.append(('oauth_signature', sig)) auth_param = ','.join(['{}="{}"'.format(k, v) for k, v in params]) auth_header = 'OAuth ' + auth_param request = self.factory.post(url, HTTP_AUTHORIZATION=auth_header) > resp = server.create_token_response(request) tests/django/test_oauth1/test_token_credentials.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth1/rfc5849/authorization_server.py:243: in create_token_response request = self.create_oauth1_request(request) authlib/integrations/django_oauth1/authorization_server.py:64: in create_oauth1_request return create_oauth_request(request, OAuth1Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________ AuthorizationCodeTest.test_create_authorization_response ___________ self = def test_create_authorization_response(self): server = self.create_server() self.prepare_data() data = {'response_type': 'code', 'client_id': 'client'} request = self.factory.post('/authorize', data=data) > server.validate_consent_request(request) tests/django/test_oauth2/test_authorization_code_grant.py:108: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________ AuthorizationCodeTest.test_create_token_response_invalid ___________ self = def test_create_token_response_invalid(self): server = self.create_server() self.prepare_data() # case: no auth request = self.factory.post('/oauth/token', data={'grant_type': 'authorization_code'}) > resp = server.create_token_response(request) tests/django/test_oauth2/test_authorization_code_grant.py:125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ___________ AuthorizationCodeTest.test_create_token_response_success ___________ self = def test_create_token_response_success(self): self.prepare_data() > data = self.get_token_response() tests/django/test_oauth2/test_authorization_code_grant.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/django/test_oauth2/test_authorization_code_grant.py:173: in get_token_response resp = server.create_authorization_response(request, grant_user=grant_user) authlib/oauth2/rfc6749/authorization_server.py:197: in create_authorization_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _____ AuthorizationCodeTest.test_create_token_response_with_refresh_token ______ self = @override_settings( AUTHLIB_OAUTH2_PROVIDER={'refresh_token_generator': True}) def test_create_token_response_with_refresh_token(self): self.prepare_data(grant_type='authorization_code\nrefresh_token') > data = self.get_token_response() tests/django/test_oauth2/test_authorization_code_grant.py:164: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/django/test_oauth2/test_authorization_code_grant.py:173: in get_token_response resp = server.create_authorization_response(request, grant_user=grant_user) authlib/oauth2/rfc6749/authorization_server.py:197: in create_authorization_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________ AuthorizationCodeTest.test_validate_consent_request_client __________ self = def test_validate_consent_request_client(self): server = self.create_server() url = '/authorize?response_type=code' request = self.factory.get(url) > self.assertRaises( errors.InvalidClientError, server.validate_consent_request, request ) tests/django/test_oauth2/test_authorization_code_grant.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______ AuthorizationCodeTest.test_validate_consent_request_redirect_uri _______ self = def test_validate_consent_request_redirect_uri(self): server = self.create_server() self.prepare_data() base_url = '/authorize?response_type=code&client_id=client' url = base_url + '&redirect_uri=https%3A%2F%2Fa.c' request = self.factory.get(url) > self.assertRaises( errors.InvalidRequestError, server.validate_consent_request, request ) tests/django/test_oauth2/test_authorization_code_grant.py:78: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________ AuthorizationCodeTest.test_validate_consent_request_scope ___________ self = def test_validate_consent_request_scope(self): server = self.create_server() server.metadata = {'scopes_supported': ['profile']} self.prepare_data() base_url = '/authorize?response_type=code&client_id=client' url = base_url + '&scope=invalid' request = self.factory.get(url) > self.assertRaises( errors.InvalidScopeError, server.validate_consent_request, request ) tests/django/test_oauth2/test_authorization_code_grant.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________________ PasswordTest.test_authorize_token _______________________ self = def test_authorize_token(self): server = self.create_server() self.prepare_data() request = self.factory.post( '/oauth/token', data={'grant_type': 'client_credentials'}, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_client_credentials_grant.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________________ PasswordTest.test_invalid_client _______________________ self = def test_invalid_client(self): server = self.create_server() self.prepare_data() request = self.factory.post( '/oauth/token', data={'grant_type': 'client_credentials'}, ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_client_credentials_grant.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________________ PasswordTest.test_invalid_request _______________________ self = def test_invalid_request(self): server = self.create_server() self.prepare_data() request = self.factory.get( '/oauth/token?grant_type=client_credentials', HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_client_credentials_grant.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________________ PasswordTest.test_invalid_scope ________________________ self = def test_invalid_scope(self): server = self.create_server() server.metadata = {'scopes_supported': ['profile']} self.prepare_data() request = self.factory.post( '/oauth/token', data={'grant_type': 'client_credentials', 'scope': 'invalid'}, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_client_credentials_grant.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ____________________ PasswordTest.test_unauthorized_client _____________________ self = def test_unauthorized_client(self): server = self.create_server() self.prepare_data(grant_type='invalid') request = self.factory.post( '/oauth/token', data={'grant_type': 'client_credentials'}, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_client_credentials_grant.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________ ImplicitTest.test_create_authorization_response ________________ self = def test_create_authorization_response(self): server = self.create_server() self.prepare_data() data = {'response_type': 'token', 'client_id': 'client'} request = self.factory.post('/authorize', data=data) > server.validate_consent_request(request) tests/django/test_oauth2/test_implicit_grant.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________ ImplicitTest.test_validate_consent_request_client _______________ self = def test_validate_consent_request_client(self): server = self.create_server() url = '/authorize?response_type=token' request = self.factory.get(url) > self.assertRaises( errors.InvalidClientError, server.validate_consent_request, request ) tests/django/test_oauth2/test_implicit_grant.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________ ImplicitTest.test_validate_consent_request_scope _______________ self = def test_validate_consent_request_scope(self): server = self.create_server() server.metadata = {'scopes_supported': ['profile']} self.prepare_data() base_url = '/authorize?response_type=token&client_id=client' url = base_url + '&scope=invalid' request = self.factory.get(url) > self.assertRaises( errors.InvalidScopeError, server.validate_consent_request, request ) tests/django/test_oauth2/test_implicit_grant.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/authorization_server.py:126: in validate_consent_request req = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________________ PasswordTest.test_authorize_token _______________________ self = def test_authorize_token(self): server = self.create_server() self.prepare_data() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'password', 'username': 'foo', 'password': 'ok', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_password_grant.py:161: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________________ PasswordTest.test_invalid_client _______________________ self = def test_invalid_client(self): server = self.create_server() self.prepare_data() request = self.factory.post( '/oauth/token', data={'grant_type': 'password', 'username': 'foo', 'password': 'ok'}, ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_password_grant.py:48: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________________ PasswordTest.test_invalid_request _______________________ self = def test_invalid_request(self): server = self.create_server() self.prepare_data() auth_header = self.create_basic_auth('client', 'secret') # case 1 request = self.factory.get( '/oauth/token?grant_type=password', HTTP_AUTHORIZATION=auth_header, ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_password_grant.py:92: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _______________________ PasswordTest.test_invalid_scope ________________________ self = def test_invalid_scope(self): server = self.create_server() server.metadata = {'scopes_supported': ['profile']} self.prepare_data() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'password', 'username': 'foo', 'password': 'ok', 'scope': 'invalid', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_password_grant.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ____________________ PasswordTest.test_unauthorized_client _____________________ self = def test_unauthorized_client(self): server = self.create_server() self.prepare_data(grant_type='invalid') request = self.factory.post( '/oauth/token', data={ 'grant_type': 'password', 'username': 'foo', 'password': 'ok', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_password_grant.py:144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ RefreshTokenTest.test_authorize_tno_scope ___________________ self = def test_authorize_tno_scope(self): server = self.create_server() self.prepare_client() self.prepare_token() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'refresh_token', 'refresh_token': 'r1', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:138: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _________________ RefreshTokenTest.test_authorize_token_scope __________________ self = def test_authorize_token_scope(self): server = self.create_server() self.prepare_client() self.prepare_token() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'refresh_token', 'refresh_token': 'r1', 'scope': 'profile', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:157: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _____________________ RefreshTokenTest.test_invalid_client _____________________ self = def test_invalid_client(self): server = self.create_server() self.prepare_client() request = self.factory.post( '/oauth/token', data={'grant_type': 'refresh_token', 'refresh_token': 'foo'}, ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:66: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _________________ RefreshTokenTest.test_invalid_refresh_token __________________ self = def test_invalid_refresh_token(self): self.prepare_client() server = self.create_server() auth_header = self.create_basic_auth('client', 'secret') request = self.factory.post( '/oauth/token', data={'grant_type': 'refresh_token'}, HTTP_AUTHORIZATION=auth_header ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError _____________________ RefreshTokenTest.test_invalid_scope ______________________ self = def test_invalid_scope(self): server = self.create_server() server.metadata = {'scopes_supported': ['profile']} self.prepare_client() self.prepare_token() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'refresh_token', 'refresh_token': 'r1', 'scope': 'invalid', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ____________________ RefreshTokenTest.test_revoke_old_token ____________________ self = def test_revoke_old_token(self): server = self.create_server() self.prepare_client() self.prepare_token() request = self.factory.post( '/oauth/token', data={ 'grant_type': 'refresh_token', 'refresh_token': 'r1', 'scope': 'profile', }, HTTP_AUTHORIZATION=self.create_basic_auth('client', 'secret'), ) > resp = server.create_token_response(request) tests/django/test_oauth2/test_refresh_token.py:176: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:215: in create_token_response request = self.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ ResourceProtectorTest.test_access_resource __________________ self = def test_access_resource(self): self.prepare_data() @require_oauth('profile', optional=True) def get_user_profile(request): if request.oauth_token: user = request.oauth_token.user return JsonResponse(dict(sub=user.pk, username=user.username)) return JsonResponse(dict(sub=0, username='anonymous')) request = self.factory.get('/user') > resp = get_user_profile(request) tests/django/test_oauth2/test_resource_protector.py:99: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/resource_protector.py:41: in decorated token = self.acquire_token(request, scope, operator) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = , scope = 'profile', operator = 'AND' def acquire_token(self, request, scope=None, operator='AND'): """A method to acquire current valid token with the given scope. :param request: Django HTTP request instance :param scope: string or list of scope values :param operator: value of "AND" or "OR" :return: token object """ headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth2/resource_protector.py:28: AttributeError ___________________ ResourceProtectorTest.test_expired_token ___________________ self = def test_expired_token(self): self.prepare_data(0) @require_oauth('profile') def get_user_profile(request): user = request.oauth_token.user return JsonResponse(dict(sub=user.pk, username=user.username)) request = self.factory.get('/user', HTTP_AUTHORIZATION='bearer a1') > resp = get_user_profile(request) tests/django/test_oauth2/test_resource_protector.py:69: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/resource_protector.py:41: in decorated token = self.acquire_token(request, scope, operator) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = , scope = 'profile', operator = 'AND' def acquire_token(self, request, scope=None, operator='AND'): """A method to acquire current valid token with the given scope. :param request: Django HTTP request instance :param scope: string or list of scope values :param operator: value of "AND" or "OR" :return: token object """ headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth2/resource_protector.py:28: AttributeError ________________ ResourceProtectorTest.test_insufficient_token _________________ self = def test_insufficient_token(self): self.prepare_data() @require_oauth('email') def get_user_email(request): user = request.oauth_token.user return JsonResponse(dict(email=user.email)) request = self.factory.get('/user/email', HTTP_AUTHORIZATION='bearer a1') > resp = get_user_email(request) tests/django/test_oauth2/test_resource_protector.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/resource_protector.py:41: in decorated token = self.acquire_token(request, scope, operator) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = , scope = 'email', operator = 'AND' def acquire_token(self, request, scope=None, operator='AND'): """A method to acquire current valid token with the given scope. :param request: Django HTTP request instance :param scope: string or list of scope values :param operator: value of "AND" or "OR" :return: token object """ headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth2/resource_protector.py:28: AttributeError ___________________ ResourceProtectorTest.test_invalid_token ___________________ self = def test_invalid_token(self): @require_oauth('profile') def get_user_profile(request): user = request.oauth_token.user return JsonResponse(dict(sub=user.pk, username=user.username)) self.prepare_data() request = self.factory.get('/user') > resp = get_user_profile(request) tests/django/test_oauth2/test_resource_protector.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/resource_protector.py:41: in decorated token = self.acquire_token(request, scope, operator) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = , scope = 'profile', operator = 'AND' def acquire_token(self, request, scope=None, operator='AND'): """A method to acquire current valid token with the given scope. :param request: Django HTTP request instance :param scope: string or list of scope values :param operator: value of "AND" or "OR" :return: token object """ headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth2/resource_protector.py:28: AttributeError __________________ ResourceProtectorTest.test_scope_operator ___________________ self = def test_scope_operator(self): self.prepare_data() @require_oauth('profile email', 'AND') def operator_and(request): user = request.oauth_token.user return JsonResponse(dict(sub=user.pk, username=user.username)) @require_oauth('profile email', 'OR') def operator_or(request): user = request.oauth_token.user return JsonResponse(dict(sub=user.pk, username=user.username)) request = self.factory.get('/user', HTTP_AUTHORIZATION='bearer a1') > resp = operator_and(request) tests/django/test_oauth2/test_resource_protector.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/integrations/django_oauth2/resource_protector.py:41: in decorated token = self.acquire_token(request, scope, operator) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = request = , scope = 'profile email', operator = 'AND' def acquire_token(self, request, scope=None, operator='AND'): """A method to acquire current valid token with the given scope. :param request: Django HTTP request instance :param scope: string or list of scope values :param operator: value of "AND" or "OR" :return: token object """ headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_oauth2/resource_protector.py:28: AttributeError __________________ RevocationEndpointTest.test_invalid_client __________________ self = def test_invalid_client(self): server = self.create_server() request = self.factory.post('/oauth/revoke') > resp = server.create_endpoint_response(ENDPOINT_NAME, request) tests/django/test_oauth2/test_revocation_endpoint.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:183: in create_endpoint_response request = endpoint.create_endpoint_request(request) authlib/oauth2/rfc6749/token_endpoint.py:18: in create_endpoint_request return self.server.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError __________________ RevocationEndpointTest.test_invalid_token ___________________ self = def test_invalid_token(self): server = self.create_server() self.prepare_client() self.prepare_token() auth_header = self.create_basic_auth('client', 'secret') request = self.factory.post('/oauth/revoke', HTTP_AUTHORIZATION=auth_header) > resp = server.create_endpoint_response(ENDPOINT_NAME, request) tests/django/test_oauth2/test_revocation_endpoint.py:75: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ authlib/oauth2/rfc6749/authorization_server.py:183: in create_endpoint_response request = endpoint.create_endpoint_request(request) authlib/oauth2/rfc6749/token_endpoint.py:18: in create_endpoint_request return self.server.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ______________ RevocationEndpointTest.test_revoke_token_with_hint ______________ self = def test_revoke_token_with_hint(self): self.prepare_client() self.prepare_token() > self.revoke_token({'token': 'a1', 'token_type_hint': 'access_token'}) tests/django/test_oauth2/test_revocation_endpoint.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/django/test_oauth2/test_revocation_endpoint.py:134: in revoke_token resp = server.create_endpoint_response(ENDPOINT_NAME, request) authlib/oauth2/rfc6749/authorization_server.py:183: in create_endpoint_response request = endpoint.create_endpoint_request(request) authlib/oauth2/rfc6749/token_endpoint.py:18: in create_endpoint_request return self.server.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError ____________ RevocationEndpointTest.test_revoke_token_without_hint _____________ self = def test_revoke_token_without_hint(self): self.prepare_client() self.prepare_token() > self.revoke_token({'token': 'a1'}) tests/django/test_oauth2/test_revocation_endpoint.py:122: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/django/test_oauth2/test_revocation_endpoint.py:134: in revoke_token resp = server.create_endpoint_response(ENDPOINT_NAME, request) authlib/oauth2/rfc6749/authorization_server.py:183: in create_endpoint_response request = endpoint.create_endpoint_request(request) authlib/oauth2/rfc6749/token_endpoint.py:18: in create_endpoint_request return self.server.create_oauth2_request(request) authlib/integrations/django_oauth2/authorization_server.py:80: in create_oauth2_request return create_oauth_request(request, OAuth2Request) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ request = request_cls = use_json = False def create_oauth_request(request, request_cls, use_json=False): if isinstance(request, request_cls): return request if request.method == 'POST': if use_json: body = json_loads(request.body) else: body = request.POST.dict() else: body = None headers = parse_request_headers(request) > url = request.get_raw_uri() E AttributeError: 'WSGIRequest' object has no attribute 'get_raw_uri' authlib/integrations/django_helpers.py:21: AttributeError =============================== warnings summary =============================== ../../../../usr/lib/python3.10/site-packages/django/conf/__init__.py:206 /usr/lib/python3.10/site-packages/django/conf/__init__.py:206: RemovedInDjango50Warning: The default value of USE_TZ will change from False to True in Django 5.0. Set USE_TZ to False in your project settings if you want to keep the current default behavior. warnings.warn( ../../../../usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:186 /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:186: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file. config.issue_config_time_warning(LEGACY_MODE, stacklevel=2) ../../../../usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1252 /usr/lib/python3.10/site-packages/_pytest/config/__init__.py:1252: PytestConfigWarning: Unknown config option: python_paths self._warn_or_fail_if_strict(f"Unknown config option: {key}\n") tests/django/test_client/test_oauth_client.py::DjangoOAuthTest::test_oauth1_authorize /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:312: DeprecationWarning: '@pytest.fixture' is applied to in 'legacy' mode, please replace it with '@pytest_asyncio.fixture' as a preparation for switching to 'strict' mode (or use 'auto' mode to seamlessly handle all these fixtures as asyncio-driven). warnings.warn( tests/django/test_client/test_oauth_client.py: 1 warning tests/django/test_oauth1/test_authorize.py: 1 warning tests/django/test_oauth1/test_resource_protector.py: 1 warning tests/django/test_oauth1/test_token_credentials.py: 1 warning tests/django/test_oauth2/test_authorization_code_grant.py: 1 warning tests/django/test_oauth2/test_client_credentials_grant.py: 1 warning tests/django/test_oauth2/test_implicit_grant.py: 1 warning tests/django/test_oauth2/test_password_grant.py: 1 warning tests/django/test_oauth2/test_refresh_token.py: 1 warning tests/django/test_oauth2/test_resource_protector.py: 1 warning tests/django/test_oauth2/test_revocation_endpoint.py: 1 warning /usr/lib/python3.10/site-packages/pytest_asyncio/plugin.py:312: DeprecationWarning: '@pytest.fixture' is applied to .fixture, file=/usr/lib/python3.10/site-packages/_pytest/unittest.py, line=142> in 'legacy' mode, please replace it with '@pytest_asyncio.fixture' as a preparation for switching to 'strict' mode (or use 'auto' mode to seamlessly handle all these fixtures as asyncio-driven). warnings.warn( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/django/test_oauth1/test_authorize.py::AuthorizationTest::test_authorize_denied FAILED tests/django/test_oauth1/test_authorize.py::AuthorizationTest::test_authorize_granted FAILED tests/django/test_oauth1/test_authorize.py::AuthorizationTest::test_invalid_authorization FAILED tests/django/test_oauth1/test_authorize.py::AuthorizationTest::test_invalid_initiate FAILED tests/django/test_oauth1/test_resource_protector.py::ResourceTest::test_hmac_sha1_signature FAILED tests/django/test_oauth1/test_resource_protector.py::ResourceTest::test_invalid_request_parameters FAILED tests/django/test_oauth1/test_resource_protector.py::ResourceTest::test_plaintext_signature FAILED tests/django/test_oauth1/test_resource_protector.py::ResourceTest::test_rsa_sha1_signature FAILED tests/django/test_oauth1/test_token_credentials.py::AuthorizationTest::test_duplicated_oauth_parameters FAILED tests/django/test_oauth1/test_token_credentials.py::AuthorizationTest::test_hmac_sha1_signature FAILED tests/django/test_oauth1/test_token_credentials.py::AuthorizationTest::test_invalid_token_request_parameters FAILED tests/django/test_oauth1/test_token_credentials.py::AuthorizationTest::test_plaintext_signature FAILED tests/django/test_oauth1/test_token_credentials.py::AuthorizationTest::test_rsa_sha1_signature FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_create_authorization_response FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_create_token_response_invalid FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_create_token_response_success FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_create_token_response_with_refresh_token FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_validate_consent_request_client FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_validate_consent_request_redirect_uri FAILED tests/django/test_oauth2/test_authorization_code_grant.py::AuthorizationCodeTest::test_validate_consent_request_scope FAILED tests/django/test_oauth2/test_client_credentials_grant.py::PasswordTest::test_authorize_token FAILED tests/django/test_oauth2/test_client_credentials_grant.py::PasswordTest::test_invalid_client FAILED tests/django/test_oauth2/test_client_credentials_grant.py::PasswordTest::test_invalid_request FAILED tests/django/test_oauth2/test_client_credentials_grant.py::PasswordTest::test_invalid_scope FAILED tests/django/test_oauth2/test_client_credentials_grant.py::PasswordTest::test_unauthorized_client FAILED tests/django/test_oauth2/test_implicit_grant.py::ImplicitTest::test_create_authorization_response FAILED tests/django/test_oauth2/test_implicit_grant.py::ImplicitTest::test_validate_consent_request_client FAILED tests/django/test_oauth2/test_implicit_grant.py::ImplicitTest::test_validate_consent_request_scope FAILED tests/django/test_oauth2/test_password_grant.py::PasswordTest::test_authorize_token FAILED tests/django/test_oauth2/test_password_grant.py::PasswordTest::test_invalid_client FAILED tests/django/test_oauth2/test_password_grant.py::PasswordTest::test_invalid_request FAILED tests/django/test_oauth2/test_password_grant.py::PasswordTest::test_invalid_scope FAILED tests/django/test_oauth2/test_password_grant.py::PasswordTest::test_unauthorized_client FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_authorize_tno_scope FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_authorize_token_scope FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_invalid_client FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_invalid_refresh_token FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_invalid_scope FAILED tests/django/test_oauth2/test_refresh_token.py::RefreshTokenTest::test_revoke_old_token FAILED tests/django/test_oauth2/test_resource_protector.py::ResourceProtectorTest::test_access_resource FAILED tests/django/test_oauth2/test_resource_protector.py::ResourceProtectorTest::test_expired_token FAILED tests/django/test_oauth2/test_resource_protector.py::ResourceProtectorTest::test_insufficient_token FAILED tests/django/test_oauth2/test_resource_protector.py::ResourceProtectorTest::test_invalid_token FAILED tests/django/test_oauth2/test_resource_protector.py::ResourceProtectorTest::test_scope_operator FAILED tests/django/test_oauth2/test_revocation_endpoint.py::RevocationEndpointTest::test_invalid_client FAILED tests/django/test_oauth2/test_revocation_endpoint.py::RevocationEndpointTest::test_invalid_token FAILED tests/django/test_oauth2/test_revocation_endpoint.py::RevocationEndpointTest::test_revoke_token_with_hint FAILED tests/django/test_oauth2/test_revocation_endpoint.py::RevocationEndpointTest::test_revoke_token_without_hint ================== 48 failed, 13 passed, 15 warnings in 9.97s ================== ==> ERROR: A failure occurred in check().  Aborting... ==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix15/build receiving incremental file list python-authlib-0.15.5-3-riscv64-build.log python-authlib-0.15.5-3-riscv64-check.log python-authlib-0.15.5-3-riscv64-pkgver.log python-authlib-0.15.5-3-riscv64-prepare.log sent 100 bytes received 9,535 bytes 3,854.00 bytes/sec total size is 120,148 speedup is 12.47