==>(B Building on mausholdvi(B ==>(B Checking for remote environment...(B ==>(B Syncing package to remote host...(B sending incremental file list created directory packages/python-weasyprint ./ .SRCINFO 1,454 100% 0.00kB/s 0:00:00 1,454 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=8/10) .nvchecker.toml 98 100% 95.70kB/s 0:00:00 98 100% 95.70kB/s 0:00:00 (xfr#2, to-chk=7/10) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=6/10) PKGBUILD 2,406 100% 2.29MB/s 0:00:00 2,406 100% 2.29MB/s 0:00:00 (xfr#4, to-chk=5/10) REUSE.toml 218 100% 212.89kB/s 0:00:00 218 100% 212.89kB/s 0:00:00 (xfr#5, to-chk=4/10) python-weasyprint-70.0-1.log 758 100% 740.23kB/s 0:00:00 758 100% 740.23kB/s 0:00:00 (xfr#6, to-chk=3/10) remove-version-constraint.patch 186 100% 181.64kB/s 0:00:00 186 100% 181.64kB/s 0:00:00 (xfr#7, to-chk=2/10) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 3,597 bytes received 212 bytes 2,539.33 bytes/sec total size is 5,227 speedup is 1.37 ==>(B Running pkgctl build --arch riscv64 on remote host...(B ==> WARNING:(B invalid architecture: riscv64(B ==>(B Updating pacman database cache(B [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==>(B Building python-weasyprint(B  ->(B repo: extra(B  ->(B arch: riscv64(B  ->(B worker: felix-2(B ==>(B Building python-weasyprint for [extra] (riscv64)(B ]3008;start=00c23c441cdd4ae5a126b1c99ee62352;user=root;hostname=mausholdvi.felixc.at;machineid=33bd66794bef4c019a0e3acfdcceb30a;bootid=11eb23fbe1744c419a9234311914f0c3;pid=3137539;comm=systemd-nspawn;container=arch-nspawn-3137539;type=container\]11;?\]2;🔵 Container arch-nspawn-3137539 on mausholdvi.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... resolving dependencies... looking for conflicting packages... Package (2) Old Version New Version Net Change Download Size core/cryptsetup 2.8.7-1 2.8.8-1 0.16 MiB 0.86 MiB core/hwdata 0.410-1 0.411-1 0.04 MiB 1.70 MiB Total Download Size: 2.56 MiB Total Installed Size: 13.61 MiB Net Upgrade Size: 0.20 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... hwdata-0.411-1-any downloading... cryptsetup-2.8.8-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... upgrading cryptsetup... upgrading hwdata... :: Running post-transaction hooks... (1/2) Creating temporary files... (2/2) Arming ConditionNeedsUpdate... [?25h[!p]104\[?7h]3008;end=00c23c441cdd4ae5a126b1c99ee62352\==>(B Building in chroot for [extra] (riscv64)...(B ==>(B Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-2]...(Bdone(B ==>(B Making package: python-weasyprint 70.0-1 (Tue Sep 8 13:03:35 2026)(B ==>(B Retrieving sources...(B  ->(B Cloning python-weasyprint git repo...(B Cloning into bare repository '/home/felix/packages/python-weasyprint/python-weasyprint'... remote: Enumerating objects: 45112, done. remote: Counting objects: 0% (1/400) remote: Counting objects: 1% (4/400) remote: Counting objects: 2% (8/400) remote: Counting objects: 3% (12/400) remote: Counting objects: 4% (16/400) remote: Counting objects: 5% (20/400) remote: Counting objects: 6% (24/400) remote: Counting objects: 7% (28/400) remote: Counting objects: 8% (32/400) remote: Counting objects: 9% (36/400) remote: Counting objects: 10% (40/400) remote: Counting objects: 11% (44/400) remote: Counting objects: 12% (48/400) remote: Counting objects: 13% (52/400) remote: Counting objects: 14% (56/400) remote: Counting objects: 15% (60/400) remote: Counting objects: 16% (64/400) remote: Counting objects: 17% (68/400) remote: Counting objects: 18% (72/400) remote: Counting objects: 19% (76/400) remote: Counting objects: 20% (80/400) remote: Counting objects: 21% (84/400) remote: Counting objects: 22% (88/400) remote: Counting objects: 23% (92/400) remote: Counting objects: 24% (96/400) remote: Counting objects: 25% (100/400) remote: Counting objects: 26% (104/400) remote: Counting objects: 27% (108/400) remote: Counting objects: 28% (112/400) remote: Counting objects: 29% (116/400) remote: Counting objects: 30% (120/400) remote: Counting objects: 31% (124/400) remote: Counting objects: 32% (128/400) remote: Counting objects: 33% (132/400) remote: Counting objects: 34% (136/400) remote: Counting objects: 35% (140/400) remote: Counting objects: 36% (144/400) remote: Counting objects: 37% (148/400) remote: Counting objects: 38% (152/400) remote: Counting objects: 39% (156/400) remote: Counting objects: 40% (160/400) remote: Counting objects: 41% (164/400) remote: Counting objects: 42% (168/400) remote: Counting objects: 43% (172/400) remote: Counting objects: 44% (176/400) remote: Counting objects: 45% (180/400) remote: Counting objects: 46% (184/400) remote: Counting objects: 47% (188/400) remote: Counting objects: 48% (192/400) remote: Counting objects: 49% (196/400) remote: Counting objects: 50% (200/400) remote: Counting objects: 51% (204/400) remote: Counting objects: 52% (208/400) remote: Counting objects: 53% (212/400) remote: Counting objects: 54% (216/400) remote: Counting objects: 55% (220/400) remote: Counting objects: 56% (224/400) remote: Counting objects: 57% (228/400) remote: Counting objects: 58% (232/400) remote: Counting objects: 59% (236/400) remote: Counting objects: 60% (240/400) remote: Counting objects: 61% (244/400) remote: Counting objects: 62% (248/400) remote: Counting objects: 63% (252/400) remote: Counting objects: 64% (256/400) remote: Counting objects: 65% (260/400) remote: Counting objects: 66% (264/400) remote: Counting objects: 67% (268/400) remote: Counting objects: 68% (272/400) remote: Counting objects: 69% (276/400) remote: Counting objects: 70% (280/400) remote: Counting objects: 71% (284/400) remote: Counting objects: 72% (288/400) remote: Counting objects: 73% (292/400) remote: Counting objects: 74% (296/400) remote: Counting objects: 75% (300/400) remote: Counting objects: 76% (304/400) remote: Counting objects: 77% (308/400) remote: Counting objects: 78% (312/400) remote: Counting objects: 79% (316/400) remote: Counting objects: 80% (320/400) remote: Counting objects: 81% (324/400) remote: Counting objects: 82% (328/400) remote: Counting objects: 83% (332/400) remote: Counting objects: 84% (336/400) remote: Counting objects: 85% (340/400) remote: Counting objects: 86% (344/400) remote: Counting objects: 87% (348/400) remote: Counting objects: 88% (352/400) remote: Counting objects: 89% (356/400) remote: Counting objects: 90% (360/400) remote: Counting objects: 91% (364/400) remote: Counting objects: 92% (368/400) remote: Counting objects: 93% (372/400) remote: Counting objects: 94% (376/400) remote: Counting objects: 95% (380/400) remote: Counting objects: 96% (384/400) remote: Counting objects: 97% (388/400) remote: Counting objects: 98% (392/400) remote: Counting objects: 99% (396/400) remote: Counting objects: 100% (400/400) remote: Counting objects: 100% (400/400), done. remote: Compressing objects: 0% (1/266) remote: Compressing objects: 1% (3/266) remote: Compressing objects: 2% (6/266) remote: Compressing objects: 3% (8/266) remote: Compressing objects: 4% (11/266) remote: Compressing objects: 5% (14/266) remote: Compressing objects: 6% (16/266) remote: Compressing objects: 7% (19/266) remote: Compressing objects: 8% (22/266) remote: Compressing objects: 9% (24/266) remote: Compressing objects: 10% (27/266) remote: Compressing objects: 11% (30/266) remote: Compressing objects: 12% (32/266) remote: Compressing objects: 13% (35/266) remote: Compressing objects: 14% (38/266) remote: Compressing objects: 15% (40/266) remote: Compressing objects: 16% (43/266) remote: Compressing objects: 17% (46/266) remote: Compressing objects: 18% (48/266) remote: Compressing objects: 19% (51/266) remote: Compressing objects: 20% (54/266) remote: Compressing objects: 21% (56/266) remote: Compressing objects: 22% (59/266) remote: Compressing objects: 23% (62/266) remote: Compressing objects: 24% (64/266) remote: Compressing objects: 25% (67/266) remote: Compressing objects: 26% (70/266) remote: Compressing objects: 27% (72/266) remote: Compressing objects: 28% (75/266) remote: Compressing objects: 29% (78/266) remote: Compressing objects: 30% (80/266) remote: Compressing objects: 31% (83/266) remote: Compressing objects: 32% (86/266) remote: Compressing objects: 33% (88/266) remote: Compressing objects: 34% (91/266) remote: Compressing objects: 35% (94/266) remote: Compressing objects: 36% (96/266) remote: Compressing objects: 37% (99/266) remote: Compressing objects: 38% (102/266) remote: Compressing objects: 39% (104/266) remote: Compressing objects: 40% (107/266) remote: Compressing objects: 41% (110/266) remote: Compressing objects: 42% (112/266) remote: Compressing objects: 43% (115/266) remote: Compressing objects: 44% (118/266) remote: Compressing objects: 45% (120/266) remote: Compressing objects: 46% (123/266) remote: Compressing objects: 47% (126/266) remote: Compressing objects: 48% (128/266) remote: Compressing objects: 49% (131/266) remote: Compressing objects: 50% (133/266) remote: Compressing objects: 51% (136/266) remote: Compressing objects: 52% (139/266) remote: Compressing objects: 53% (141/266) remote: Compressing objects: 54% (144/266) remote: Compressing objects: 55% (147/266) remote: Compressing objects: 56% (149/266) remote: Compressing objects: 57% (152/266) remote: Compressing objects: 58% (155/266) remote: Compressing objects: 59% (157/266) remote: Compressing objects: 60% (160/266) remote: Compressing objects: 61% (163/266) remote: Compressing objects: 62% (165/266) remote: Compressing objects: 63% (168/266) remote: Compressing objects: 64% (171/266) remote: Compressing objects: 65% (173/266) remote: Compressing objects: 66% (176/266) remote: Compressing objects: 67% (179/266) remote: Compressing objects: 68% (181/266) remote: Compressing objects: 69% (184/266) remote: Compressing objects: 70% (187/266) remote: Compressing objects: 71% (189/266) remote: Compressing objects: 72% (192/266) remote: Compressing objects: 73% (195/266) remote: Compressing objects: 74% (197/266) remote: Compressing objects: 75% (200/266) remote: Compressing objects: 76% (203/266) remote: Compressing objects: 77% (205/266) remote: Compressing objects: 78% (208/266) remote: Compressing objects: 79% (211/266) remote: Compressing objects: 80% (213/266) remote: Compressing objects: 81% (216/266) remote: Compressing objects: 82% (219/266) remote: Compressing objects: 83% (221/266) remote: Compressing objects: 84% (224/266) remote: Compressing objects: 85% (227/266) remote: Compressing objects: 86% (229/266) remote: Compressing objects: 87% (232/266) remote: Compressing objects: 88% (235/266) remote: Compressing objects: 89% (237/266) remote: Compressing objects: 90% (240/266) remote: Compressing objects: 91% (243/266) remote: Compressing objects: 92% (245/266) remote: Compressing objects: 93% (248/266) remote: Compressing objects: 94% (251/266) remote: Compressing objects: 95% (253/266) remote: Compressing objects: 96% (256/266) remote: Compressing objects: 97% (259/266) remote: Compressing objects: 98% (261/266) remote: Compressing objects: 99% (264/266) remote: Compressing objects: 100% (266/266) remote: Compressing objects: 100% (266/266), done. Receiving objects: 0% (1/45112) Receiving objects: 1% (452/45112) Receiving objects: 2% (903/45112) Receiving objects: 3% (1354/45112) Receiving objects: 4% (1805/45112) Receiving objects: 5% (2256/45112) Receiving objects: 6% (2707/45112) Receiving objects: 7% (3158/45112) Receiving objects: 8% (3609/45112) Receiving objects: 9% (4061/45112) Receiving objects: 10% (4512/45112) Receiving objects: 11% (4963/45112) Receiving objects: 12% (5414/45112) Receiving objects: 13% (5865/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 14% (6316/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 15% (6767/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 16% (7218/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 17% (7670/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 18% (8121/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 19% (8572/45112), 1.36 MiB | 2.71 MiB/s Receiving objects: 19% (8926/45112), 7.10 MiB | 7.09 MiB/s Receiving objects: 20% (9023/45112), 7.10 MiB | 7.09 MiB/s Receiving objects: 20% (9179/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 21% (9474/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 22% (9925/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 23% (10376/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 24% (10827/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 25% (11278/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 26% (11730/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 27% (12181/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 28% (12632/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 29% (13083/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 30% (13534/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 31% (13985/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 32% (14436/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 33% (14887/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 34% (15339/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 35% (15790/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 36% (16241/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 37% (16692/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 38% (17143/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 39% (17594/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 40% (18045/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 41% (18496/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 42% (18948/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 43% (19399/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 44% (19850/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 45% (20301/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 46% (20752/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 47% (21203/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 48% (21654/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 49% (22105/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 50% (22556/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 51% (23008/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 52% (23459/45112), 19.23 MiB | 9.61 MiB/s Receiving objects: 53% (23910/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 54% (24361/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 55% (24812/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 56% (25263/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 57% (25714/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 58% (26165/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 59% (26617/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 60% (27068/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 61% (27519/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 62% (27970/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 63% (28421/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 64% (28872/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 65% (29323/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 66% (29774/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 67% (30226/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 68% (30677/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 69% (31128/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 70% (31579/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 70% (31716/45112), 22.51 MiB | 9.00 MiB/s Receiving objects: 71% (32030/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 72% (32481/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 73% (32932/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 74% (33383/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 75% (33834/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 76% (34286/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 77% (34737/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 78% (35188/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 79% (35639/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 80% (36090/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 81% (36541/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 82% (36992/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 83% (37443/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 84% (37895/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 85% (38346/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 86% (38797/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 87% (39248/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 88% (39699/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 89% (40150/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 90% (40601/45112), 27.97 MiB | 9.32 MiB/s Receiving objects: 91% (41052/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 92% (41504/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 93% (41955/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 94% (42406/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 95% (42857/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 96% (43308/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 97% (43759/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 98% (44210/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 99% (44661/45112), 32.64 MiB | 9.32 MiB/s remote: Total 45112 (delta 234), reused 193 (delta 134), pack-reused 44712 (from 2) Receiving objects: 100% (45112/45112), 32.64 MiB | 9.32 MiB/s Receiving objects: 100% (45112/45112), 36.22 MiB | 9.25 MiB/s, done. Resolving deltas: 0% (0/32674) Resolving deltas: 1% (327/32674) Resolving deltas: 2% (654/32674) Resolving deltas: 3% (981/32674) Resolving deltas: 4% (1307/32674) Resolving deltas: 5% (1634/32674) Resolving deltas: 6% (1961/32674) Resolving deltas: 7% (2288/32674) Resolving deltas: 8% (2614/32674) Resolving deltas: 9% (2941/32674) Resolving deltas: 10% (3269/32674) Resolving deltas: 11% (3595/32674) Resolving deltas: 12% (3921/32674) Resolving deltas: 13% (4248/32674) Resolving deltas: 14% (4575/32674) Resolving deltas: 15% (4902/32674) Resolving deltas: 16% (5228/32674) Resolving deltas: 17% (5555/32674) Resolving deltas: 18% (5882/32674) Resolving deltas: 19% (6209/32674) Resolving deltas: 20% (6535/32674) Resolving deltas: 20% (6727/32674) Resolving deltas: 21% (6862/32674) Resolving deltas: 22% (7189/32674) Resolving deltas: 23% (7516/32674) Resolving deltas: 24% (7842/32674) Resolving deltas: 25% (8169/32674) Resolving deltas: 26% (8496/32674) Resolving deltas: 27% (8822/32674) Resolving deltas: 28% (9149/32674) Resolving deltas: 29% (9476/32674) Resolving deltas: 30% (9803/32674) Resolving deltas: 31% (10130/32674) Resolving deltas: 32% (10456/32674) Resolving deltas: 33% (10783/32674) Resolving deltas: 34% (11110/32674) Resolving deltas: 35% (11436/32674) Resolving deltas: 36% (11764/32674) Resolving deltas: 37% (12090/32674) Resolving deltas: 38% (12418/32674) Resolving deltas: 39% (12743/32674) Resolving deltas: 40% (13070/32674) Resolving deltas: 41% (13397/32674) Resolving deltas: 42% (13724/32674) Resolving deltas: 43% (14050/32674) Resolving deltas: 44% (14377/32674) Resolving deltas: 45% (14704/32674) Resolving deltas: 46% (15031/32674) Resolving deltas: 47% (15357/32674) Resolving deltas: 48% (15684/32674) Resolving deltas: 49% (16011/32674) Resolving deltas: 50% (16337/32674) Resolving deltas: 51% (16664/32674) Resolving deltas: 52% (16991/32674) Resolving deltas: 53% (17318/32674) Resolving deltas: 54% (17644/32674) Resolving deltas: 55% (17971/32674) Resolving deltas: 56% (18298/32674) Resolving deltas: 57% (18625/32674) Resolving deltas: 58% (18951/32674) Resolving deltas: 59% (19278/32674) Resolving deltas: 60% (19605/32674) Resolving deltas: 61% (19932/32674) Resolving deltas: 62% (20258/32674) Resolving deltas: 63% (20585/32674) Resolving deltas: 64% (20912/32674) Resolving deltas: 65% (21239/32674) Resolving deltas: 66% (21565/32674) Resolving deltas: 66% (21777/32674) Resolving deltas: 67% (21892/32674) Resolving deltas: 68% (22219/32674) Resolving deltas: 69% (22546/32674) Resolving deltas: 70% (22872/32674) Resolving deltas: 71% (23199/32674) Resolving deltas: 72% (23526/32674) Resolving deltas: 73% (23853/32674) Resolving deltas: 74% (24179/32674) Resolving deltas: 75% (24506/32674) Resolving deltas: 76% (24833/32674) Resolving deltas: 77% (25159/32674) Resolving deltas: 78% (25486/32674) Resolving deltas: 79% (25813/32674) Resolving deltas: 80% (26140/32674) Resolving deltas: 81% (26466/32674) Resolving deltas: 82% (26793/32674) Resolving deltas: 83% (27120/32674) Resolving deltas: 84% (27447/32674) Resolving deltas: 85% (27773/32674) Resolving deltas: 86% (28100/32674) Resolving deltas: 87% (28427/32674) Resolving deltas: 88% (28754/32674) Resolving deltas: 89% (29080/32674) Resolving deltas: 90% (29407/32674) Resolving deltas: 91% (29735/32674) Resolving deltas: 92% (30061/32674) Resolving deltas: 93% (30387/32674) Resolving deltas: 94% (30714/32674) Resolving deltas: 95% (31041/32674) Resolving deltas: 96% (31368/32674) Resolving deltas: 97% (31695/32674) Resolving deltas: 98% (32021/32674) Resolving deltas: 99% (32348/32674) Resolving deltas: 100% (32674/32674) Resolving deltas: 100% (32674/32674), done.  ->(B Found remove-version-constraint.patch(B ==>(B Validating source files with sha512sums...(B python-weasyprint ... Passed remove-version-constraint.patch ... Passed ==>(B Validating source files with b2sums...(B python-weasyprint ... Passed remove-version-constraint.patch ... Passed ]3008;start=201bdec2fa1f4f1a952f9ee83bfbede6;user=root;hostname=mausholdvi.felixc.at;machineid=33bd66794bef4c019a0e3acfdcceb30a;bootid=11eb23fbe1744c419a9234311914f0c3;pid=3138900;comm=systemd-nspawn;container=arch-nspawn-3138900;type=container\]11;?\]2;🔵 Container arch-nspawn-3138900 on mausholdvi.felixc.at\]3008;start=eb519bfbe0a849af915131edef3a818d;user=root;hostname=arch-nspawn-3138900;machineid=8903119f00f24aa9995b0b1b9256498c;bootid=461d96ec748c4e3fb832989dfb461414;pid=14;comm=sudo;targetuser=builduser;type=session\==>(B Making package: python-weasyprint 70.0-1 (Tue Sep 8 13:04:07 2026)(B ==>(B Checking runtime dependencies...(B ==>(B Installing missing dependencies...(B ]3008;start=2d7e235dd0284f6988fa269de2ddce80;user=builduser;hostname=arch-nspawn-3138900;machineid=8903119f00f24aa9995b0b1b9256498c;bootid=461d96ec748c4e3fb832989dfb461414;pid=888;comm=sudo;targetuser=root;type=session\[?25l:: There are 11 providers available for ttf-font: :: Repository extra 1) gnu-free-fonts 2) noto-fonts 3) ttf-bitstream-vera 4) ttf-croscore 5) ttf-dejavu 6) ttf-droid 7) ttf-ibm-plex 8) ttf-input 9) ttf-input-nerd 10) ttf-liberation 11) ttf-roboto Enter a number (default=1): resolving dependencies... looking for conflicting packages... Package (53) New Version Net Change Download Size extra/aom 3.15.0-1 4.98 MiB extra/cairo 1.18.4-1 1.44 MiB extra/dav1d 1.5.4-1 0.71 MiB extra/fontconfig 2:2.18.3-2 1.28 MiB extra/freetype2 2.14.3-1 1.61 MiB extra/fribidi 1.0.16-2 0.24 MiB extra/graphite 1:1.3.15-1 0.18 MiB extra/harfbuzz 14.4.0-1 4.70 MiB extra/jbigkit 2.1-8 0.13 MiB extra/lcms2 2.19.1-1 0.66 MiB extra/libavif 1.4.2-1 0.77 MiB extra/libdatrie 0.2.14-1 0.48 MiB extra/libdeflate 1.26-1 0.10 MiB extra/libimagequant 4.4.1-2 0.55 MiB extra/libjpeg-turbo 3.2.0-2 2.24 MiB extra/libpng 1.6.58-2 0.54 MiB extra/libraqm 0.11.0-1 0.19 MiB 0.04 MiB extra/libthai 0.1.30-1 1.24 MiB extra/libtiff 4.7.2-1 1.18 MiB extra/libwebp 1.6.0-2 0.64 MiB extra/libx11 1.8.13-1 9.75 MiB extra/libxau 1.0.12-1 0.02 MiB extra/libxcb 1.17.0-1 3.69 MiB extra/libxdmcp 1.1.5-2 0.13 MiB extra/libxext 1.3.7-1 0.30 MiB extra/libxft 2.3.9-1 0.12 MiB extra/libxrender 0.9.12-1 0.09 MiB extra/libyuv r2921+644251f25-1 1.16 MiB core/lzo 2.10-5 0.34 MiB extra/openjpeg2 2.5.4-1 13.30 MiB extra/pixman 0.46.4-1 0.48 MiB extra/python-packaging 26.3-1 1.58 MiB extra/python-pycparser 3.00-1 0.71 MiB extra/python-six 1.17.0-3 0.12 MiB extra/python-webencodings 0.5.1-13 0.07 MiB 0.02 MiB extra/rav1e 0.8.1-3 4.85 MiB extra/svt-av1 4.2.0-1 2.16 MiB extra/xcb-proto 1.17.0-4 1.03 MiB extra/xorgproto 2025.1-1 1.47 MiB extra/zopfli 1.0.3-5 0.26 MiB 0.13 MiB extra/gnu-free-fonts 20120503-9 6.65 MiB extra/pango 1:1.58.2-1 2.37 MiB core/python-brotli 1.2.0-1 0.88 MiB 0.40 MiB extra/python-cffi 2.1.1-1 1.41 MiB extra/python-cssselect2 0.10.1-1 0.19 MiB 0.04 MiB extra/python-fonttools 4.64.0-1 21.34 MiB 3.03 MiB extra/python-html5lib 1.1-18 1.69 MiB 0.25 MiB extra/python-pillow 12.3.0-1 4.85 MiB 0.94 MiB extra/python-pydyf 0.12.1-2 0.09 MiB 0.02 MiB extra/python-pyphen 0.18.1-1 6.10 MiB 1.17 MiB extra/python-tinycss2 1.5.1-2 0.35 MiB 0.06 MiB extra/python-tinyhtml5 2.1.0-1 0.77 MiB 0.10 MiB extra/python-zopfli 0.4.3-1 0.06 MiB 0.02 MiB Total Download Size: 6.23 MiB Total Installed Size: 112.23 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-fonttools-4.64.0-1-riscv64 downloading... python-pyphen-0.18.1-1-any downloading... python-pillow-12.3.0-1-riscv64 downloading... python-brotli-1.2.0-1-riscv64 downloading... python-html5lib-1.1-18-any downloading... zopfli-1.0.3-5-riscv64 downloading... python-tinyhtml5-2.1.0-1-any downloading... python-tinycss2-1.5.1-2-any downloading... libraqm-0.11.0-1-riscv64 downloading... python-cssselect2-0.10.1-1-any downloading... python-webencodings-0.5.1-13-any downloading... python-pydyf-0.12.1-2-any downloading... python-zopfli-0.4.3-1-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libpng... installing freetype2... Optional dependencies for freetype2 harfbuzz: Improved autohinting [pending] installing fontconfig... Creating fontconfig configuration... Rebuilding fontconfig cache... installing xcb-proto... installing xorgproto... installing libxdmcp... installing libxau... installing libxcb... installing libx11... installing libxext... installing libxrender... installing lzo... installing pixman... installing cairo... installing fribidi... installing graphite... Optional dependencies for graphite graphite-docs: Documentation installing harfbuzz... Optional dependencies for harfbuzz harfbuzz-utils: utilities installing libdatrie... installing libthai... installing libxft... installing pango... installing python-brotli... installing python-pycparser... installing python-cffi... Optional dependencies for python-cffi python-setuptools: "limited api" version checking in cffi.setuptools_ext installing python-webencodings... installing python-tinycss2... installing python-cssselect2... installing python-fonttools... Optional dependencies for python-fonttools python-brotli: to compress/decompress WOFF 2.0 web fonts [installed] python-fs: to read/write UFO source files python-lxml: faster backend for XML files reading/writing python-lz4: for graphite type tables in ttLib/tables python-matplotlib: for visualizing DesignSpaceDocument and resulting VariationModel python-pyqt5: for drawing glyphs with Qt’s QPainterPath python-reportlab: to drawing glyphs as PNG images python-scipy: for finding wrong contour/component order between different masters python-sympy: for symbolic font statistics analysis python-uharfbuzz: to use the Harfbuzz Repacker for packing GSUB/GPOS tables python-unicodedata2: for displaying the Unicode character names when dumping the cmap table with ttx python-zopfli: faster backend fom WOFF 1.0 web fonts compression [pending] installing python-six... installing python-html5lib... Optional dependencies for python-html5lib python-lxml: lxml treebuilder python-genshi: genshi treewalker installing python-packaging... installing libjpeg-turbo... installing jbigkit... installing libdeflate... installing libwebp... Optional dependencies for libwebp libwebp-utils: WebP conversion and inspection tools installing libtiff... Optional dependencies for libtiff freeglut: for using tiffgt installing lcms2... installing aom... installing dav1d... Optional dependencies for dav1d dav1d-doc: HTML documentation installing libyuv... installing rav1e... installing svt-av1... installing libavif... installing libraqm... installing openjpeg2... installing libimagequant... installing python-pillow... Optional dependencies for python-pillow libwebp: for webp images [installed] tk: for the ImageTK module python-olefile: OLE2 file support python-pyqt6: for the ImageQt module python-defusedxml: for reading XMP tags installing python-pydyf... installing python-pyphen... installing python-tinyhtml5... installing zopfli... installing python-zopfli... installing gnu-free-fonts... :: Running post-transaction hooks... (1/3) Arming ConditionNeedsUpdate... (2/3) Updating fontconfig configuration... (3/3) Updating fontconfig cache... [?25h]3008;end=2d7e235dd0284f6988fa269de2ddce80\==>(B Checking buildtime dependencies...(B ==>(B Installing missing dependencies...(B ]3008;start=d149549f4762418792f2b3a6affae5c1;user=builduser;hostname=arch-nspawn-3138900;machineid=8903119f00f24aa9995b0b1b9256498c;bootid=461d96ec748c4e3fb832989dfb461414;pid=1173;comm=sudo;targetuser=root;type=session\[?25lresolving dependencies... looking for conflicting packages... Package (38) New Version Net Change Download Size extra/avahi 1:0.9rc5-1 1.94 MiB extra/bubblewrap 0.12.0-1 0.09 MiB extra/gdk-pixbuf2 2.44.7-1 2.98 MiB extra/giflib 6.1.3-2 0.30 MiB extra/glycin 2.1.5-2 20.41 MiB extra/gperftools 2.18.1-1 1.99 MiB extra/gtest 1.18.0-1 1.57 MiB extra/highway 1.4.0-1 4.57 MiB extra/ijs 0.35-7 0.11 MiB extra/jbig2dec 0.20-2 0.14 MiB extra/libcups 2:2.4.19-1 0.83 MiB extra/libdaemon 0.14-6 0.05 MiB extra/libice 1.1.2-1 0.35 MiB extra/libidn 1.44-1 0.85 MiB extra/libjxl 0.12.0-1 9.72 MiB extra/libpaper 2.2.8-1 0.13 MiB extra/librsvg 2:2.62.3-1 10.04 MiB extra/libsm 1.2.6-1 0.26 MiB extra/libunwind 1.8.3-1 0.26 MiB extra/libxt 1.3.1-1 1.99 MiB extra/perl-error 0.17030-3 0.04 MiB extra/perl-mailtools 2.22-3 0.10 MiB extra/perl-timedate 2.35-1 0.15 MiB extra/poppler-data 0.4.12-2 12.34 MiB extra/python-iniconfig 2.3.0-1 0.07 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pygments 2.21.0-1 15.59 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/shared-mime-info 2.5.1-2 5.81 MiB extra/zlib-ng 2.3.3-1 0.23 MiB extra/ghostscript 10.07.1-1 43.65 MiB extra/git 2.55.0-1 29.92 MiB extra/python-build 1.6.0-1 0.33 MiB extra/python-flit-core 4.0.2-1 0.36 MiB 0.07 MiB extra/python-installer 1.0.1-1 0.21 MiB extra/python-pytest 1:9.1.1-1 4.95 MiB 0.81 MiB extra/python-wheel 0.48.0-1 0.34 MiB extra/ttf-dejavu 2.37+18+g9b5d1b2f-8 9.79 MiB 2.61 MiB Total Download Size: 3.49 MiB Total Installed Size: 182.80 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... ttf-dejavu-2.37+18+g9b5d1b2f-8-any downloading... python-pytest-1:9.1.1-1-any downloading... python-flit-core-4.0.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 zlib-ng... installing git... Optional dependencies for git git-zsh-completion: upstream zsh completion tk: gitk and git gui openssh: ssh transport and crypto man: show help with `git command --help` 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-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] less: the default pager for git installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand installing python-flit-core... installing python-iniconfig... installing python-pluggy... installing python-pygments... installing python-pytest... installing libice... installing libsm... installing libxt... installing libdaemon... installing avahi... Optional dependencies for avahi gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc libevent: libevent bindings [installed] nss-mdns: NSS support for mDNS python-dbus: avahi-bookmarks, avahi-discover python-gobject: avahi-bookmarks, avahi-discover python-twisted: avahi-bookmarks installing libcups... installing jbig2dec... installing libpaper... installing ijs... installing libidn... installing poppler-data... installing bubblewrap... installing giflib... installing libunwind... installing gperftools... installing gtest... Optional dependencies for gtest python: gmock generator [installed] installing highway... installing libjxl... Optional dependencies for libjxl java-runtime: for JNI bindings installing librsvg... installing glycin... Optional dependencies for glycin libheif: Load .avif, .heic and .heif installing shared-mime-info... installing gdk-pixbuf2... Optional dependencies for gdk-pixbuf2 libheif: Load .avif, .heic and .heif libopenraw: Load .arw, .cr2, .crw, .dng, .erf, .mrw, .nef, .orf, .pef and .raf libwmf: Load .apm and .wmf installing ghostscript... Optional dependencies for ghostscript gtk3: needed for gsx installing ttf-dejavu... :: Running post-transaction hooks... (1/9) Creating system user accounts... Creating group 'avahi' with GID 968. Creating user 'avahi' (Avahi mDNS/DNS-SD daemon) with UID 968 and GID 968. Creating group 'git' with GID 967. Creating user 'git' (git daemon user) with UID 967 and GID 967. (2/9) Reloading system manager configuration... Skipped: Current root is not booted. (3/9) Updating the MIME type database... (4/9) Arming ConditionNeedsUpdate... (5/9) Updating fontconfig configuration... (6/9) Reloading system bus configuration... Skipped: Current root is not booted. (7/9) Checking for old perl modules... (8/9) Updating fontconfig cache... (9/9) Updating the info directory file... [?25h]3008;end=d149549f4762418792f2b3a6affae5c1\==>(B Retrieving sources...(B  ->(B Found remove-version-constraint.patch(B ==> WARNING:(B Skipping all source file integrity checks.(B ==>(B Extracting sources...(B  ->(B Creating working copy of python-weasyprint git repo...(B Cloning into 'python-weasyprint'... done. Switched to a new branch 'makepkg' ==>(B Starting prepare()...(B patching file pyproject.toml ==>(B Starting build()...(B * Getting build dependencies for wheel... * Building wheel... Successfully built weasyprint-70.0-py3-none-any.whl ==>(B Starting check()...(B ============================= test session starts ============================== platform linux -- Python 3.14.7, pytest-9.1.1, pluggy-1.6.0 rootdir: /build/python-weasyprint/src/python-weasyprint configfile: pyproject.toml collected 4380 items / 15 deselected / 4365 selected tests/css/test_common.py ............................................... [ 1%] .................... [ 1%] tests/css/test_counters.py ........x...................... [ 2%] tests/css/test_descriptors.py ................ [ 2%] tests/css/test_errors.py ................ [ 2%] tests/css/test_expanders.py ............................................ [ 3%] ........................................................................ [ 5%] ........................................................................ [ 7%] ........................................................................ [ 8%] ...................................................................... [ 10%] tests/css/test_fonts.py ..................... [ 11%] tests/css/test_layers.py ................. [ 11%] tests/css/test_math.py ................................................. [ 12%] ........................................................................ [ 14%] ........................................................................ [ 15%] ........................................................................ [ 17%] ........................................................................ [ 19%] ........................................................................ [ 20%] ........................xx.......... [ 21%] tests/css/test_nesting.py ........ [ 21%] tests/css/test_pages.py ........................ [ 22%] tests/css/test_target.py ........ [ 22%] tests/css/test_ua.py ... [ 22%] tests/css/test_validation.py ........................................... [ 23%] ........................................................................ [ 25%] ........................................................................ [ 26%] ........................................................................ [ 28%] ........................................................................ [ 30%] ........................................................................ [ 31%] ........................................................................ [ 33%] ........................................................................ [ 35%] ........................................................................ [ 36%] ........................................................................ [ 38%] ........................................................................ [ 40%] ........................................................................ [ 41%] ........................................................................ [ 43%] ............. [ 43%] tests/css/test_variables.py ............................................ [ 44%] ........................................................................ [ 46%] ........................................................................ [ 47%] ........................................................................ [ 49%] ............. [ 49%] tests/draw/svg/test_bounding_box.py FFFFFFFFFxxFF [ 50%] tests/draw/svg/test_clip.py FFxF [ 50%] tests/draw/svg/test_defs.py FFFF [ 50%] tests/draw/svg/test_gradients.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 51%] tests/draw/svg/test_images.py FFFFFFFFFxFFFFFF [ 51%] tests/draw/svg/test_markers.py FFFFFFFFFFF [ 51%] tests/draw/svg/test_opacity.py FFxxFFFF [ 52%] tests/draw/svg/test_paths.py FFFFFFFFFFFFFFFFFFFFFFF [ 52%] tests/draw/svg/test_patterns.py FFFFFFF [ 52%] tests/draw/svg/test_shapes.py FFFFFFFFFFFFFFFFFFF [ 53%] tests/draw/svg/test_text.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 53%] tests/draw/svg/test_transform.py FFFFFFFFFFFFFFFFFFFFFF [ 54%] tests/draw/svg/test_units.py FFFFFFF [ 54%] tests/draw/svg/test_visibility.py FFFFFFFF [ 54%] tests/draw/test_absolute.py FFFFFFFFFFFFxFFFFFFFFFFFFFFF [ 55%] tests/draw/test_background.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 56%] FFFFFFFFFFFFFFF [ 56%] tests/draw/test_before_after.py FFF [ 56%] tests/draw/test_box.py FFFFF.........FF.FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 57%] [ 57%] tests/draw/test_cmyk_color_profiles.py FFFFFF [ 58%] tests/draw/test_column.py FFF [ 58%] tests/draw/test_current_color.py FFFFFxFF [ 58%] tests/draw/test_float.py FFFFFFFFFFFFxxFFFFFFFFFFFFFxFxFFFFF [ 59%] tests/draw/test_footnote.py FFFFFFFFFFF [ 59%] tests/draw/test_footnote_column.py FFFFFFFFFx [ 59%] tests/draw/test_gradient.py FFFFFFFFFFFFFFFFFFFFFFFFFF [ 60%] tests/draw/test_image.py FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF [ 61%] FFFFFF.FFFF [ 61%] tests/draw/test_leader.py FFFFxxFxFFFFFFFFFF [ 61%] tests/draw/test_list.py FFF [ 62%] tests/draw/test_note.py FFFFFFFFFFFxxx [ 62%] tests/draw/test_opacity.py FFFFFF [ 62%] tests/draw/test_overflow.py FFFFFFFFF [ 62%] tests/draw/test_page.py FFFFFFFFFFFF [ 62%] tests/draw/test_table.py FFFFFFFFFFFFFFFFFFFFFxFFFFFFFFxFFFFxFFFFF [ 63%] tests/draw/test_text.py FFFFFFFxFFFFFxFFFFFFFFFFFFFFFFFxxxFFFFFFFFFFFFFF [ 65%] [ 65%] tests/draw/test_transform.py FFFFFF [ 65%] tests/draw/test_visibility.py F [ 65%] tests/draw/test_whitespace.py FFFFFFFFF [ 65%] tests/layout/test_block.py ............................................. [ 66%] ................xx............. [ 67%] tests/layout/test_column.py ............................................ [ 68%] ...... [ 68%] tests/layout/test_flex.py .............................................. [ 69%] ........................................................................ [ 70%] ............................................................. [ 72%] tests/layout/test_float.py ...........................x......... [ 73%] tests/layout/test_footnotes.py ...x........................ [ 73%] tests/layout/test_grid.py .............................................. [ 74%] ....x [ 75%] tests/layout/test_image.py ............................................. [ 76%] .............................. [ 76%] tests/layout/test_inline.py .x...........x.............................. [ 77%] ......... [ 77%] tests/layout/test_inline_block.py .. [ 78%] tests/layout/test_list.py .......x.. [ 78%] tests/layout/test_logical.py FFFFFFFFFFFFFF [ 78%] tests/layout/test_notes.py .. [ 78%] tests/layout/test_page.py ..................................x........... [ 79%] ................................................................ [ 81%] tests/layout/test_position.py ...................xx [ 81%] tests/layout/test_preferred.py ......................................... [ 82%] .................................................. [ 83%] tests/layout/test_table.py ............................................. [ 84%] ............x............F.............................................. [ 86%] ...................... [ 86%] tests/test_acid2.py F [ 86%] tests/test_api.py ...F................................................FF [ 88%] .....................FFFFFFFFFFFF....FFF.......F... [ 89%] tests/test_boxes.py .................................................... [ 90%] ....... [ 90%] tests/test_fonts.py ........ [ 90%] tests/test_html.py ..................................................... [ 92%] ........................................................................ [ 93%] ................................... [ 94%] tests/test_pdf.py ...................................................... [ 95%] ................... [ 96%] tests/test_stacking.py ...FFFFF [ 96%] tests/test_text.py ..................................................... [ 97%] ........................................................................ [ 99%] ....................x........ [ 99%] tests/test_unicode.py F [ 99%] tests/test_url.py .... [100%] =================================== FAILURES =================================== ____________________________ test_bounding_box_rect ____________________________ assert_pixels = . at 0x3fab64d4e0> @assert_no_logs def test_bounding_box_rect(assert_pixels): > assert_pixels(''' BBBBB BBBBR BBBRR BBRRR BRRRR ''', ''' ''') tests/draw/svg/test_bounding_box.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_bounding_box_circle ___________________________ assert_pixels = . at 0x3fab64d010> @assert_no_logs def test_bounding_box_circle(assert_pixels): > assert_pixels(''' __________ __BBBBBB__ _BBBBBBBz_ _BBBBBBzR_ _BBBBBzRR_ _BBBBzRRR_ _BBBzRRRR_ _BBzRRRRR_ __zRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_bounding_box.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_bounding_box_ellipse ___________________________ assert_pixels = . at 0x3fab6341a0> @assert_no_logs def test_bounding_box_ellipse(assert_pixels): > assert_pixels(''' __________ __BBBBBB__ _BBBBBBBz_ _BBBBBBzR_ _BBBBBzRR_ _BBBBzRRR_ _BBBzRRRR_ _BBzRRRRR_ __zRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_bounding_box.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_bounding_box_line ____________________________ assert_pixels = . at 0x3fab6352d0> @assert_no_logs def test_bounding_box_line(assert_pixels): > assert_pixels(''' BB___ BBB__ _BRR_ __RRR ___RR ''', ''' ''') tests/draw/svg/test_bounding_box.py:98: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_bounding_box_polygon ___________________________ assert_pixels = . at 0x3fab636140> @assert_no_logs def test_bounding_box_polygon(assert_pixels): > assert_pixels(''' BBBBB BBBBR BBBRR BBRRR BRRRR ''', ''' ''') tests/draw/svg/test_bounding_box.py:125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_bounding_box_polyline __________________________ assert_pixels = . at 0x3fab636f00> @assert_no_logs def test_bounding_box_polyline(assert_pixels): > assert_pixels(''' BBBBB BBBBR BBBRR BBRRR BRRRR ''', ''' ''') tests/draw/svg/test_bounding_box.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_bounding_box_text ____________________________ assert_pixels = . at 0x3fab637cc0> @assert_no_logs def test_bounding_box_text(assert_pixels): > assert_pixels(''' BB BR ''', ''' A ''') tests/draw/svg/test_bounding_box.py:177: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_bounding_box_path_hv ___________________________ assert_pixels = . at 0x3fb02b01a0> @assert_no_logs def test_bounding_box_path_hv(assert_pixels): > assert_pixels(''' BBBBB BBBBR BBBRR BBRRR BRRRR ''', ''' ''') tests/draw/svg/test_bounding_box.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_bounding_box_path_l ___________________________ assert_pixels = . at 0x3fb031c3b0> @assert_no_logs def test_bounding_box_path_l(assert_pixels): > assert_pixels(''' BBBBB BBBBR BBBRR BBRRR BRRRR ''', ''' ''') tests/draw/svg/test_bounding_box.py:228: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_svg_empty_size ______________________________ assert_pixels = . at 0x3fab634a90> @assert_no_logs def test_svg_empty_size(assert_pixels): > assert_pixels(''' BBB__ BBB__ BBB__ BBB__ _____ ''', ''' ''') tests/draw/svg/test_bounding_box.py:314: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_bounding_box_use_opacity _________________________ assert_pixels = . at 0x3fab64ec40> @assert_no_logs def test_bounding_box_use_opacity(assert_pixels): > assert_pixels(''' sssss sssss sssss sssss sssss ''', ''' ''') tests/draw/svg/test_bounding_box.py:333: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_clip_path ________________________________ assert_pixels = . at 0x3fab64e6c0> @assert_no_logs def test_clip_path(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RBBBR__ __RBBBR__ __RBBBR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_clip.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_clip_path_on_group ____________________________ assert_pixels = . at 0x3fb02b1170> @assert_no_logs def test_clip_path_on_group(assert_pixels): > assert_pixels(''' _________ _________ __BBBB___ __BRRRR__ __BRRRR__ __BRRRR__ ___RRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_clip.py:39: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_clip_path_outside_defs __________________________ assert_pixels = . at 0x3fb02b2a30> @assert_no_logs def test_clip_path_outside_defs(assert_pixels): # Regression test for #2662. > assert_pixels(''' _________ _________ __RRRRR__ __RBBBR__ __RBBBR__ __RBBBR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_clip.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________________ test_use ___________________________________ assert_pixels = . at 0x3fb02b1e80> @assert_no_logs def test_use(assert_pixels): > assert_pixels(RESULT, STYLE + SVG) tests/draw/svg/test_defs.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_use_base64 ________________________________ assert_pixels = . at 0x3fab81c880> @assert_no_logs def test_use_base64(assert_pixels): base64_svg = b64encode(SVG.encode()).decode() > assert_pixels(RESULT, f'{STYLE}') tests/draw/svg/test_defs.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_use_symbol_color _____________________________ assert_pixels = . at 0x3fab81db10> @assert_no_logs def test_use_symbol_color(assert_pixels): # Regression test for #2676. svg = SVG.replace('fill="blue"', '') svg = svg.replace('href="#square"', 'href="#square" fill="blue"') > assert_pixels(RESULT, STYLE + svg) tests/draw/svg/test_defs.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_use_context_paint ____________________________ assert_pixels = . at 0x3fab81eda0> @assert_no_logs def test_use_context_paint(assert_pixels): > assert_pixels(''' RRBB__GGMM RRBB__GGMM ''', ''' ''') tests/draw/svg/test_defs.py:63: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_linear_gradient _____________________________ assert_pixels = . at 0x3fb02b3e20> @assert_no_logs def test_linear_gradient(assert_pixels): > assert_pixels(''' __________ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _RRRRRRRR_ _RRRRRRRR_ _RRRRRRRR_ _RRRRRRRR_ __________ ''', ''' ''') tests/draw/svg/test_gradients.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_linear_gradient_userspace ________________________ assert_pixels = . at 0x3fb02b2ae0> @assert_no_logs def test_linear_gradient_userspace(assert_pixels): > assert_pixels(''' __________ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _RRRRRRRR_ _RRRRRRRR_ _RRRRRRRR_ _RRRRRRRR_ __________ ''', ''' ''') tests/draw/svg/test_gradients.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_linear_gradient_multicolor ________________________ assert_pixels = . at 0x3fb02b1850> @assert_no_logs def test_linear_gradient_multicolor(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_linear_gradient_multicolor_userspace ___________________ assert_pixels = . at 0x3fab64ecf0> @assert_no_logs def test_linear_gradient_multicolor_userspace(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB zBBBBBBBBz RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_linear_gradient_transform ________________________ assert_pixels = . at 0x3fab634460> @assert_no_logs def test_linear_gradient_transform(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:142: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_linear_gradient_transform_nested _____________________ assert_pixels = . at 0x3fab6366c0> @assert_no_logs def test_linear_gradient_transform_nested(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_linear_gradient_transform_repeat _____________________ assert_pixels = . at 0x3fab81ecf0> @assert_no_logs def test_linear_gradient_transform_repeat(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG zvvvvvvvvz BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_linear_gradient_userspace_transform ___________________ assert_pixels = . at 0x3fab81dbc0> @assert_no_logs def test_linear_gradient_userspace_transform(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:251: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_linear_gradient_userspace_transform_nested ________________ assert_pixels = . at 0x3fab81cd50> @assert_no_logs def test_linear_gradient_userspace_transform_nested(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:287: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_linear_gradient_transform_repeat_userspace ________________ assert_pixels = . at 0x3fb05a0880> @assert_no_logs def test_linear_gradient_transform_repeat_userspace(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG zvvvvvvvvz BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:324: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_linear_gradient_repeat __________________________ assert_pixels = . at 0x3fab637e20> @assert_no_logs def test_linear_gradient_repeat(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:360: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_linear_gradient_repeat_long _______________________ assert_pixels = . at 0x3fab634300> @assert_no_logs def test_linear_gradient_repeat_long(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv BBBBBBBBBB RRRRRRRRRR GGGGGGGGGG vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:403: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_linear_gradient_repeat_userspace _____________________ assert_pixels = . at 0x3fab64c3b0> @assert_no_logs def test_linear_gradient_repeat_userspace(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv __________ ''', ''' ''') tests/draw/svg/test_gradients.py:446: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_linear_gradient_reflect _________________________ assert_pixels = . at 0x3fb02b2fb0> @assert_no_logs def test_linear_gradient_reflect(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv GGGGGGGGGG GGGGGGGGGG RRRRRRRRRR RRRRRRRRRR BBBBBBBBBB BBBBBBBBBB __________ ''', ''' ''') tests/draw/svg/test_gradients.py:489: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_linear_gradient_reflect_userspace ____________________ assert_pixels = . at 0x3fb02b2b90> @assert_no_logs def test_linear_gradient_reflect_userspace(assert_pixels): > assert_pixels(''' __________ BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR GGGGGGGGGG GGGGGGGGGG vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv GGGGGGGGGG GGGGGGGGGG RRRRRRRRRR RRRRRRRRRR BBBBBBBBBB BBBBBBBBBB __________ ''', ''' ''') tests/draw/svg/test_gradients.py:532: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_linear_gradient_inherit_attributes ____________________ assert_pixels = . at 0x3fab81c880> @assert_no_logs def test_linear_gradient_inherit_attributes(assert_pixels): > assert_pixels(''' BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR ''', ''' ''') tests/draw/svg/test_gradients.py:575: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_linear_gradient_inherit_children _____________________ assert_pixels = . at 0x3fab81e090> @assert_no_logs def test_linear_gradient_inherit_children(assert_pixels): > assert_pixels(''' BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR ''', ''' ''') tests/draw/svg/test_gradients.py:608: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_linear_gradient_inherit_no_override ___________________ assert_pixels = . at 0x3fb05a0300> @assert_no_logs def test_linear_gradient_inherit_no_override(assert_pixels): > assert_pixels(''' BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR RRRRRRRRRR ''', ''' ''') tests/draw/svg/test_gradients.py:641: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_radial_gradient _____________________________ assert_pixels = . at 0x3fb05a2350> @assert_no_logs def test_radial_gradient(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:677: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_radial_gradient_transform ________________________ assert_pixels = . at 0x3fb05a3110> @assert_no_logs def test_radial_gradient_transform(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:711: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_radial_gradient_transform_nested _____________________ assert_pixels = . at 0x3fb05a3ed0> @assert_no_logs def test_radial_gradient_transform_nested(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:746: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_radial_gradient_userspace ________________________ assert_pixels = . at 0x3fb05b0d50> @assert_no_logs def test_radial_gradient_userspace(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:782: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________ test_radial_gradient_negative_rect_userspace _________________ assert_pixels = . at 0x3fb05a3690> @assert_no_logs def test_radial_gradient_negative_rect_userspace(assert_pixels): > assert_pixels(''' ____________ rrrrrrrrrrr_ rrrrrrrrrrr_ rrrrrBBrrrr_ rrrrBBBBrrr_ rrrBBBBBBrr_ rrrBBBBBBrr_ rrrrBBBBrrr_ rrrrrBBrrrr_ rrrrrrrrrrr_ rrrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:815: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_radial_gradient_userspace_transform ___________________ assert_pixels = . at 0x3fabff3cc0> @assert_no_logs def test_radial_gradient_userspace_transform(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:848: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_radial_gradient_userspace_transform_nested ________________ assert_pixels = . at 0x3fab2cb5e0> @assert_no_logs def test_radial_gradient_userspace_transform_nested(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrrrrrrrr_ _rrrrBBrrrr_ _rrrBBBBrrr_ _rrBBBBBBrr_ _rrBBBBBBrr_ _rrrBBBBrrr_ _rrrrBBrrrr_ _rrrrrrrrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:882: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_radial_gradient_multicolor ________________________ assert_pixels = . at 0x3fb05a17a0> @assert_no_logs def test_radial_gradient_multicolor(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrGGGGrrr_ _rrGGBBGGrr_ _rGGBBBBGGr_ _rGBBBBBBGr_ _rGBBBBBBGr_ _rGGBBBBGGr_ _rrGGBBGGrr_ _rrrGGGGrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:917: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_radial_gradient_multicolor_userspace ___________________ assert_pixels = . at 0x3fb05a2090> @assert_no_logs def test_radial_gradient_multicolor_userspace(assert_pixels): > assert_pixels(''' ____________ _rrrrrrrrrr_ _rrrGGGGrrr_ _rrGGBBGGrr_ _rGGBBBBGGr_ _rGBBBBBBGr_ _rGBBBBBBGr_ _rGGBBBBGGr_ _rrGGBBGGrr_ _rrrGGGGrrr_ _rrrrrrrrrr_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:953: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_radial_gradient_repeat __________________________ assert_pixels = . at 0x3fb05a1fe0> @assert_no_logs def test_radial_gradient_repeat(assert_pixels): > assert_pixels(''' ____________ _GBBzzzzBBG_ _BrrGGGGrrB_ _BrGBBBBGrB_ _zGBBrrBBGz_ _zGBrGGrBGz_ _zGBrGGrBGz_ _zGBBrrBBGz_ _BrGBBBBGrB_ _BrrGGGGrrB_ _GBBzzzzBBG_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:989: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_radial_gradient_reflect _________________________ assert_pixels = . at 0x3fab81f8a0> @assert_no_logs def test_radial_gradient_reflect(assert_pixels): > assert_pixels(''' ____________ _GrrzzzzrrG_ _rrrGGGGrrr_ _rrGBBBBGrr_ _zGBBBBBBGz_ _zGBBGGBBGz_ _zGBBGGBBGz_ _zGBBBBBBGz_ _rrGBBBBGrr_ _rrrGGGGrrr_ _GrrzzzzrrG_ ____________ ''', ''' ''') tests/draw/svg/test_gradients.py:1025: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_radial_gradient_inherit_attributes ____________________ assert_pixels = . at 0x3fab81f5e0> @assert_no_logs def test_radial_gradient_inherit_attributes(assert_pixels): > assert_pixels(''' rrrrrrrrrr rrrrrrrrrr rrrrBBrrrr rrrBBBBrrr rrBBBBBBrr rrBBBBBBrr rrrBBBBrrr rrrrBBrrrr rrrrrrrrrr rrrrrrrrrr ''', ''' ''') tests/draw/svg/test_gradients.py:1061: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_radial_gradient_inherit_children _____________________ assert_pixels = . at 0x3fb05a0040> @assert_no_logs def test_radial_gradient_inherit_children(assert_pixels): > assert_pixels(''' rrrrrrrrrr rrrrrrrrrr rrrrBBrrrr rrrBBBBrrr rrBBBBBBrr rrBBBBBBrr rrrBBBBrrr rrrrBBrrrr rrrrrrrrrr rrrrrrrrrr ''', ''' ''') tests/draw/svg/test_gradients.py:1095: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_radial_gradient_inherit_no_override ___________________ assert_pixels = . at 0x3fb05a1170> @assert_no_logs def test_radial_gradient_inherit_no_override(assert_pixels): > assert_pixels(''' rrrrrrrrrr rrrrrrrrrr rrrrBBrrrr rrrBBBBrrr rrBBBBBBrr rrBBBBBBrr rrrBBBBrrr rrrrBBrrrr rrrrrrrrrr rrrrrrrrrr ''', ''' ''') tests/draw/svg/test_gradients.py:1129: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_gradient_opacity _____________________________ assert_pixels = . at 0x3fb05a28d0> @assert_no_logs def test_gradient_opacity(assert_pixels): > assert_pixels(''' BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB BBBBBBBBBB ssssssssss ssssssssss ssssssssss ssssssssss ssssssssss ''', ''' ''') tests/draw/svg/test_gradients.py:1166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_gradient_bad_url[#grad'] _________________________ assert_pixels = . at 0x3fabfd41a0> url = "#grad'" @assert_no_logs @pytest.mark.parametrize('url', ["#grad'", "'#gra", '!', '#']) def test_gradient_bad_url(assert_pixels, url): > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', ''' ''' % url) tests/draw/svg/test_gradients.py:1198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_gradient_bad_url['#gra] _________________________ assert_pixels = . at 0x3fab81f270> url = "'#gra" @assert_no_logs @pytest.mark.parametrize('url', ["#grad'", "'#gra", '!', '#']) def test_gradient_bad_url(assert_pixels, url): > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', ''' ''' % url) tests/draw/svg/test_gradients.py:1198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_gradient_bad_url[!] ___________________________ assert_pixels = . at 0x3fab81fed0> url = '!' @assert_no_logs @pytest.mark.parametrize('url', ["#grad'", "'#gra", '!', '#']) def test_gradient_bad_url(assert_pixels, url): > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', ''' ''' % url) tests/draw/svg/test_gradients.py:1198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_gradient_bad_url[#] ___________________________ assert_pixels = . at 0x3fb02b0930> url = '#' @assert_no_logs @pytest.mark.parametrize('url', ["#grad'", "'#gra", '!', '#']) def test_gradient_bad_url(assert_pixels, url): > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', ''' ''' % url) tests/draw/svg/test_gradients.py:1198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_image_svg ________________________________ assert_pixels = . at 0x3fb02b1d20> @assert_no_logs def test_image_svg(assert_pixels): > assert_pixels(''' ____ ____ __B_ ____ ''', ''' ''') tests/draw/svg/test_images.py:12: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_image_svg_viewbox ____________________________ assert_pixels = . at 0x3fab64e770> @assert_no_logs def test_image_svg_viewbox(assert_pixels): > assert_pixels(''' ____ ____ __B_ ____ ''', ''' ''') tests/draw/svg/test_images.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_svg_align_default _________________________ assert_pixels = . at 0x3fab635850> @assert_no_logs def test_image_svg_align_default(assert_pixels): > assert_pixels(''' __BRRR__ __BRRR__ __RRRG__ __RRRG__ ________ ________ ________ ________ ''', ''' ''') tests/draw/svg/test_images.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_image_svg_align_none ___________________________ assert_pixels = . at 0x3fab637690> @assert_no_logs def test_image_svg_align_none(assert_pixels): > assert_pixels(''' BBRRRRRR BBRRRRRR RRRRRRGG RRRRRRGG ________ ________ ________ ________ ''', ''' ''') tests/draw/svg/test_images.py:77: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_image_svg_align_no_viewbox ________________________ assert_pixels = . at 0x3fab64dc70> @assert_no_logs def test_image_svg_align_no_viewbox(assert_pixels): > assert_pixels(''' BBRRRRRR BBRRRRRR RRRRRRGG RRRRRRGG ________ ________ ________ ________ ''', ''' ''') tests/draw/svg/test_images.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_svg_align_meet_x __________________________ assert_pixels = . at 0x3fb02b2c40> @assert_no_logs def test_image_svg_align_meet_x(assert_pixels): > assert_pixels(''' ____BRRR ____BRRR ____RRRG ____RRRG ________ ________ ________ ________ ''', ''' ''') tests/draw/svg/test_images.py:128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_svg_align_meet_y __________________________ assert_pixels = . at 0x3fb02b0880> @assert_no_logs def test_image_svg_align_meet_y(assert_pixels): > assert_pixels(''' ________ ________ ________ ________ BRRR____ BRRR____ RRRG____ RRRG____ ''', ''' ''') tests/draw/svg/test_images.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_svg_align_slice_x _________________________ assert_pixels = . at 0x3fab81fa00> @assert_no_logs def test_image_svg_align_slice_x(assert_pixels): > assert_pixels(''' BBRRRRRR BBRRRRRR BBRRRRRR BBRRRRRR ________ ________ ________ ________ ''', ''' ''') tests/draw/svg/test_images.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_svg_align_slice_y _________________________ assert_pixels = . at 0x3fb072b060> @assert_no_logs def test_image_svg_align_slice_y(assert_pixels): > assert_pixels(''' BBRR____ BBRR____ BBRR____ BBRR____ RRRR____ RRRR____ RRRR____ RRRR____ ''', ''' ''') tests/draw/svg/test_images.py:206: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_image_svg_wrong _____________________________ assert_pixels = . at 0x3fb05a00f0> def test_image_svg_wrong(assert_pixels): > assert_pixels(''' ____ ____ ____ ____ ''', ''' ''') tests/draw/svg/test_images.py:252: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _______________________________ test_image_image _______________________________ assert_pixels = . at 0x3fab634b40> @assert_no_logs def test_image_image(assert_pixels): > assert_pixels(''' rBBB BBBB BBBB BBBB ''', ''' ''' % path2url(resource_path('pattern.png'))) tests/draw/svg/test_images.py:270: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_image_image_rendering __________________________ assert_pixels = . at 0x3fab6361f0> @assert_no_logs def test_image_image_rendering(assert_pixels): > assert_pixels(''' rrBBBBBB rrBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB ''', ''' ''' % path2url(resource_path('pattern.png'))) tests/draw/svg/test_images.py:288: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_image_image_wrong ____________________________ assert_pixels = . at 0x3fb05b0e00> def test_image_image_wrong(assert_pixels): > assert_pixels(''' ____ ____ ____ ____ ''', ''' ''') tests/draw/svg/test_images.py:310: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- ERROR weasyprint:images.py:336 Failed to load image at 'file:///build/python-weasyprint/src/python-weasyprint/tests/resources/it%20doesn%E2%80%99t%20exist,%20mouhahahaha': URLError: _________________________ test_image_in_g_height_only __________________________ assert_pixels = . at 0x3fb05b0040> @assert_no_logs def test_image_in_g_height_only(assert_pixels): """Test that image inside g with only height set preserves aspect ratio.""" > assert_pixels(''' rrBBBBBB rrBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB ''', ''' ''' % path2url(resource_path('pattern.png'))) tests/draw/svg/test_images.py:329: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_image_in_g_width_only __________________________ assert_pixels = . at 0x3fb05b2140> @assert_no_logs def test_image_in_g_width_only(assert_pixels): """Test that image inside g with only width set preserves aspect ratio.""" > assert_pixels(''' rrBBBBBB rrBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB ''', ''' ''' % path2url(resource_path('pattern.png'))) tests/draw/svg/test_images.py:354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_markers _________________________________ assert_pixels = . at 0x3fab635b10> @assert_no_logs def test_markers(assert_pixels): > assert_pixels(''' ___________ ___________ _____RRR___ _____RRR___ _____RRR___ ___________ _____RRR___ _____RRR___ _____RRR___ ___________ _____RRR___ _____RRR___ _____RRR___ ''', ''' ''') tests/draw/svg/test_markers.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_markers_context_paint __________________________ assert_pixels = . at 0x3fb05a21f0> @assert_no_logs def test_markers_context_paint(assert_pixels): > assert_pixels(''' ___________ ___________ _____BRR___ _____RRR___ _____RRR___ ___________ _____BRR___ _____RRR___ _____RRR___ ___________ _____BRR___ _____RRR___ _____RRR___ ''', ''' ''') tests/draw/svg/test_markers.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_markers_no_dash _____________________________ assert_pixels = . at 0x3fab2e68d0> @assert_no_logs def test_markers_no_dash(assert_pixels): > assert_pixels(''' ___________ __RRRRRR___ __RRRRRR___ ''', ''' ''') tests/draw/svg/test_markers.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_markers_context_stroke_no_dash ______________________ assert_pixels = . at 0x3fab81cbf0> @assert_no_logs def test_markers_context_stroke_no_dash(assert_pixels): > assert_pixels(''' ___________ __RRRRRR___ __RRRRRR___ ''', ''' ''') tests/draw/svg/test_markers.py:109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_markers_viewbox _____________________________ assert_pixels = . at 0x3fb02b0880> @assert_no_logs def test_markers_viewbox(assert_pixels): > assert_pixels(''' ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ''', ''' ''') tests/draw/svg/test_markers.py:136: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_markers_size _______________________________ assert_pixels = . at 0x3fb02b14e0> @assert_no_logs def test_markers_size(assert_pixels): > assert_pixels(''' ___________ ____BBR____ ____BBR____ ____RRR____ ___________ ____BBR____ ____BBR____ ____RRR____ ___________ ____BBR____ ____BBR____ ____RRR____ ___________ ''', ''' ''') tests/draw/svg/test_markers.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_markers_viewbox_size ___________________________ assert_pixels = . at 0x3fb05b0720> @assert_no_logs def test_markers_viewbox_size(assert_pixels): > assert_pixels(''' ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ____RRR____ ____RRR____ ____RRR____ ___________ ''', ''' ''') tests/draw/svg/test_markers.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_markers_overflow _____________________________ assert_pixels = . at 0x3fb05b12d0> def test_markers_overflow(assert_pixels): > assert_pixels(''' ___________ ____BBRR___ ____BBRR___ ____RRRR___ ____RRRR___ ____BBRR___ ____BBRR___ ____RRRR___ ____RRRR___ ____BBRR___ ____BBRR___ ____RRRR___ ____RRRR___ ''', ''' ''') tests/draw/svg/test_markers.py:246: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_markers_userspace ____________________________ assert_pixels = . at 0x3fb05b3690> @assert_no_logs def test_markers_userspace(assert_pixels): > assert_pixels(''' ___________ ___________ _____R_____ ___________ ___________ ___________ _____R_____ ___________ ___________ ___________ _____R_____ ___________ ___________ ''', ''' ''') tests/draw/svg/test_markers.py:284: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_markers_stroke_width ___________________________ assert_pixels = . at 0x3fb05cc460> @assert_no_logs def test_markers_stroke_width(assert_pixels): > assert_pixels(''' ___________ ___________ _____RRR___ _____RRR___ _____RRR___ ___________ _____RRR___ _____RRR___ _____RRR___ ___________ _____RRR___ _____RRR___ _____RRR___ ''', ''' ''') tests/draw/svg/test_markers.py:321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_markers_viewbox_stroke_width _______________________ assert_pixels = . at 0x3fb05cd170> @assert_no_logs def test_markers_viewbox_stroke_width(assert_pixels): > assert_pixels(''' ___________ ____BRR____ ____RRR____ ____RRR____ ___________ ____BRR____ ____RRR____ ____RRR____ ___________ ____BRR____ ____RRR____ ____RRR____ ___________ ''', ''' ''') tests/draw/svg/test_markers.py:358: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_opacity _________________________________ assert_same_renderings = . at 0x3fb05cdf30> @assert_no_logs def test_opacity(assert_same_renderings): > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', ) tests/draw/svg/test_opacity.py:17: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_fill_opacity _______________________________ assert_same_renderings = . at 0x3fb05b3060> @assert_no_logs def test_fill_opacity(assert_same_renderings): > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', ) tests/draw/svg/test_opacity.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_pattern_gradient_stroke_fill_opacity ___________________ assert_same_renderings = . at 0x3fb02b21f0> @assert_no_logs def test_pattern_gradient_stroke_fill_opacity(assert_same_renderings): > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', tolerance=1, ) tests/draw/svg/test_opacity.py:87: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_translate_opacity ____________________________ assert_same_renderings = . at 0x3fabfd4a90> @assert_no_logs def test_translate_opacity(assert_same_renderings): # Regression test for #1976. > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', ) tests/draw/svg/test_opacity.py:136: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_group_opacity_transformed_child _____________________ assert_same_renderings = . at 0x3fab81e6c0> @assert_no_logs def test_group_opacity_transformed_child(assert_same_renderings): > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', opacity_source % ''' ''', opacity_source % ''' ''', ) tests/draw/svg/test_opacity.py:150: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_translate_use_opacity __________________________ assert_same_renderings = . at 0x3fab634670> @assert_no_logs def test_translate_use_opacity(assert_same_renderings): # Regression test for #1976. > assert_same_renderings( opacity_source % ''' ''', opacity_source % ''' ''', ) tests/draw/svg/test_opacity.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_h __________________________________ assert_pixels = . at 0x3fb05a03b0> @assert_no_logs def test_path_h(assert_pixels): > assert_pixels(''' BBBBBBBB__ BBBBBBBB__ __________ RRRRRRRR__ RRRRRRRR__ __________ GGGGGGGG__ GGGGGGGG__ BBBBBBBB__ BBBBBBBB__ ''', ''' ''') tests/draw/svg/test_paths.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_v __________________________________ assert_pixels = . at 0x3fb05ccb40> @assert_no_logs def test_path_v(assert_pixels): > assert_pixels(''' BB____GG__ BB____GG__ BB____GG__ BB____GG__ ___RR_____ ___RR_____ ___RR___BB ___RR___BB ___RR___BB ___RR___BB ''', ''' ''') tests/draw/svg/test_paths.py:39: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_l __________________________________ assert_pixels = . at 0x3fb05cc9e0> @assert_no_logs def test_path_l(assert_pixels): > assert_pixels(''' ______RR__ ______RR__ ______RR__ ___BB_RR__ ___BB_RR__ ___BB_RR__ ___BB_____ ___BB_____ ___BB_____ ___BB_____ ''', ''' ''') tests/draw/svg/test_paths.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_z __________________________________ assert_pixels = . at 0x3fb05cf270> @assert_no_logs def test_path_z(assert_pixels): > assert_pixels(''' BBBBBBB___ BBBBBBB___ BB___BB___ BB___BB___ BBBBBBB___ BBBBBBB___ ____RRRRRR ____RRRRRR ____RR__RR ____RRRRRR ''', ''' ''') tests/draw/svg/test_paths.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_path_z_fill _______________________________ assert_pixels = . at 0x3fb05cfe20> @assert_no_logs def test_path_z_fill(assert_pixels): > assert_pixels(''' BBBBBBB___ BBBBBBB___ BBGGGBB___ BBGGGBB___ BBBBBBB___ BBBBBBB___ ____RRRRRR ____RRRRRR ____RRGGRR ____RRRRRR ''', ''' ''') tests/draw/svg/test_paths.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_c __________________________________ assert_pixels = . at 0x3fb05cf060> @assert_no_logs def test_path_c(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ __BBB_____ __BBB_____ __________ __RRR_____ __RRR_____ __________ ''', ''' ''') tests/draw/svg/test_paths.py:151: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_s __________________________________ assert_pixels = . at 0x3fb05cf110> @assert_no_logs def test_path_s(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ __BBB_____ __BBB_____ __________ __RRR_____ __RRR_____ __________ ''', ''' ''') tests/draw/svg/test_paths.py:178: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_cs _________________________________ assert_pixels = . at 0x3fb05ce8d0> @assert_no_logs def test_path_cs(assert_pixels): > assert_pixels(''' __BBBBBB__ __BBBBBBB_ _____BBBB_ __RRRRRR__ __RRRRRRR_ _____RRRR_ __GGGGGG__ __GGGGGGG_ _____GGGG_ __BBBBBB__ __BBBBBBB_ _____BBBB_ ''', ''' ''') tests/draw/svg/test_paths.py:205: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_q __________________________________ assert_pixels = . at 0x3fb05a1170> @assert_no_logs def test_path_q(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ __BBBB____ __BBBB____ __________ __RRRR____ __RRRR____ __________ ''', ''' ''') tests/draw/svg/test_paths.py:238: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_t __________________________________ assert_pixels = . at 0x3fab635380> @assert_no_logs def test_path_t(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ __BBBB____ __BBBB____ __________ __RRRR____ __RRRR____ __________ ''', ''' ''') tests/draw/svg/test_paths.py:265: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_qt _________________________________ assert_pixels = . at 0x3fab81efb0> @assert_no_logs def test_path_qt(assert_pixels): > assert_pixels(''' _BBBB_______ BBBBBBB_____ BBBBBBBB__BB BB__BBBBBBBB _____BBBBBBB _______BBBB_ _RRRR_______ RRRRRRR_____ RRRRRRRR__RR RR__RRRRRRRR _____RRRRRRR _______RRRR_ ''', ''' ''') tests/draw/svg/test_paths.py:292: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_path_qt2 _________________________________ assert_pixels = . at 0x3fb02b0e00> @assert_no_logs def test_path_qt2(assert_pixels): > assert_pixels(''' _BBBB_______ BBBBBBB_____ BBBBBBBB__BB BB__BBBBBBBB _____BBBBBBB _______BBBB_ _RRRR_______ RRRRRRR_____ RRRRRRRR__RR RR__RRRRRRRR _____RRRRRRR _______RRRR_ ''', ''' ''') tests/draw/svg/test_paths.py:321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a __________________________________ assert_pixels = . at 0x3fb05b3ed0> @assert_no_logs def test_path_a(assert_pixels): > assert_pixels(''' __BBBB______ _BBBBB______ BBBBBB______ BBBB________ BBB_________ BBB____RRRR_ ______RRRRR_ _____RRRRRR_ _____RRRR___ _____RRR____ _____RRR____ ____________ ''', ''' ''') tests/draw/svg/test_paths.py:350: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a2 _________________________________ assert_pixels = . at 0x3fb05b17a0> @assert_no_logs def test_path_a2(assert_pixels): > assert_pixels(''' ______GGGG__ ______GGGGG_ ______GGGGGG ________GGGG _________GGG _________GGG GGG______GGG GGG______GGG GGGG____GGGG GGGGGGGGGGGG _GGGGGGGGGG_ __GGGGGGGG__ ''', ''' ''') tests/draw/svg/test_paths.py:379: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a3 _________________________________ assert_pixels = . at 0x3fab1e8ca0> @assert_no_logs def test_path_a3(assert_pixels): > assert_pixels(''' ______GGGG__ ______GGGGG_ ______GGGGGG ________GGGG _________GGG _________GGG GGG______GGG GGG______GGG GGGG____GGGG GGGGGGGGGGGG _GGGGGGGGGG_ __GGGGGGGG__ ''', ''' ''') tests/draw/svg/test_paths.py:406: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a4 _________________________________ assert_pixels = . at 0x3fab1e97a0> @assert_no_logs def test_path_a4(assert_pixels): > assert_pixels(''' ____________ ____BBB_____ ____BBB_____ ___BBBB_____ _BBBBBB_____ _BBBBB______ _BBBB____RRR _________RRR ________RRRR ______RRRRRR ______RRRRR_ ______RRRR__ ''', ''' ''') tests/draw/svg/test_paths.py:433: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a5 _________________________________ assert_pixels = . at 0x3fab1ea350> @assert_no_logs def test_path_a5(assert_pixels): > assert_pixels(''' __BBBBBBBB__ _BBBBBBBBBB_ BBBBBBBBBBBB BBBB____BBBB BBB______BBB BBB______BBB BBB_________ BBB_________ BBBB________ BBBBBB______ _BBBBB______ __BBBB______ ''', ''' ''') tests/draw/svg/test_paths.py:462: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a6 _________________________________ assert_pixels = . at 0x3fb05b0720> @assert_no_logs def test_path_a6(assert_pixels): > assert_pixels(''' __BBBBBBBB__ _BBBBBBBBBB_ BBBBBBBBBBBB BBBB____BBBB BBB______BBB BBB______BBB BBB_________ BBB_________ BBBB________ BBBBBB______ _BBBBB______ __BBBB______ ''', ''' ''') tests/draw/svg/test_paths.py:489: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_path_a7 _________________________________ assert_pixels = . at 0x3fb05b1e80> @assert_no_logs def test_path_a7(assert_pixels): > assert_pixels(''' ____________ ____________ ____________ ____________ ____________ ____________ GGG______GGG GGG______GGG GGGG____GGGG GGGGGGGGGGGG _GGGGGGGGGG_ __GGGGGGGG__ ''', ''' ''') tests/draw/svg/test_paths.py:516: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_path_wrong_point _____________________________ assert_pixels = . at 0x3fb02b0510> @assert_no_logs def test_path_wrong_point(assert_pixels): > assert_pixels(''' ____________ GG__________ GG__________ GG__________ GG__________ ____________ ____________ ____________ ____________ ____________ ____________ ____________ ''', ''' ''') tests/draw/svg/test_paths.py:543: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_path_markers_l ______________________________ assert_pixels = . at 0x3fab81f480> @assert_no_logs def test_path_markers_l(assert_pixels): > assert_pixels(''' _________zz_ _RR_____zzRz _RRGGGGzzRzz _RRGGGzzRzz_ _RR___zRzz__ ________zG__ _______RRRR_ _______RRRR_ ________GG__ _______RRRR_ _______RRRR_ ____________ ''', ''' ''') tests/draw/svg/test_paths.py:570: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_path_markers_hv _____________________________ assert_pixels = . at 0x3fb05a00f0> @assert_no_logs def test_path_markers_hv(assert_pixels): > assert_pixels(''' _________zz_ _RR_____zzRz _RRGGGGzzRzz _RRGGGzzRzz_ _RR___zRzz__ ________zG__ _______RRRR_ _______RRRR_ ________GG__ _______RRRR_ _______RRRR_ ____________ ''', ''' ''') tests/draw/svg/test_paths.py:604: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_path_syntax _______________________________ assert_pixels = . at 0x3fb05cd590> @assert_no_logs def test_path_syntax(assert_pixels): > assert_pixels(''' BBBBBBBB__ BBBBBBBB__ __________ RRRRRRRR__ RRRRRRRR__ __________ GGGGGGGG__ GGGGGGGG__ BBBBBBBB__ BBBBBBBB__ ''', ''' ''') tests/draw/svg/test_paths.py:638: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_pattern _________________________________ assert_pixels = . at 0x3fb05cf270> @assert_no_logs def test_pattern(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_pattern_2 ________________________________ assert_pixels = . at 0x3fab1e8eb0> @assert_no_logs def test_pattern_2(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_pattern_3 ________________________________ assert_pixels = . at 0x3fab1eb110> @assert_no_logs def test_pattern_3(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_pattern_4 ________________________________ assert_pixels = . at 0x3fab1380f0> @assert_no_logs def test_pattern_4(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:104: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_pattern_inherit_attributes ________________________ assert_pixels = . at 0x3fab139010> @assert_no_logs def test_pattern_inherit_attributes(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:136: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_pattern_inherit_children _________________________ assert_pixels = . at 0x3fab139fe0> @assert_no_logs def test_pattern_inherit_children(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:170: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_pattern_inherit_no_override _______________________ assert_pixels = . at 0x3fab1eb7f0> @assert_no_logs def test_pattern_inherit_no_override(assert_pixels): > assert_pixels(''' BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB BBrrBBrr BBrrBBrr rrBBrrBB rrBBrrBB ''', ''' ''') tests/draw/svg/test_patterns.py:203: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_rect_stroke _______________________________ assert_pixels = . at 0x3fab1e8eb0> @assert_no_logs def test_rect_stroke(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_rect_fill ________________________________ assert_pixels = . at 0x3fab1e9900> @assert_no_logs def test_rect_fill(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_rect_stroke_fill _____________________________ assert_pixels = . at 0x3fb05ccbf0> @assert_no_logs def test_rect_stroke_fill(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RRBBBRR_ _RRBBBRR_ _RRBBBRR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:55: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_rect_round ________________________________ assert_pixels = . at 0x3fab81e2a0> @assert_no_logs def test_rect_round(assert_pixels): > assert_pixels(''' _zzzzzzz_ zzzzzzzzz zzRRRRRzz zzRRRRRzz zzRRRRRzz zzRRRRRzz zzRRRRRzz zzzzzzzzz _zzzzzzz_ ''', ''' ''') tests/draw/svg/test_shapes.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_rect_round_zero _____________________________ assert_pixels = . at 0x3fb072b060> @assert_no_logs def test_rect_round_zero(assert_pixels): > assert_pixels(''' RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR RRRRRRRRR ''', ''' ''') tests/draw/svg/test_shapes.py:102: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________________ test_line ___________________________________ assert_pixels = . at 0x3fb02b2b90> @assert_no_logs def test_line(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ RRRRRR___ RRRRRR___ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:125: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_polyline _________________________________ assert_pixels = . at 0x3fb05b3270> @assert_no_logs def test_polyline(assert_pixels): > assert_pixels(''' _________ RRRRRR___ RRRRRR___ RR__RR___ RR__RR___ RR__RR___ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_polyline_fill ______________________________ assert_pixels = . at 0x3fab1392d0> @assert_no_logs def test_polyline_fill(assert_pixels): > assert_pixels(''' _________ RRRRRR___ RRRRRR___ RRBBRR___ RRBBRR___ RRBBRR___ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:173: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_polygon _________________________________ assert_pixels = . at 0x3fab138bf0> @assert_no_logs def test_polygon(assert_pixels): > assert_pixels(''' _________ RRRRRR___ RRRRRR___ RR__RR___ RR__RR___ RRRRRR___ RRRRRR___ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:197: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_polygon_fill _______________________________ assert_pixels = . at 0x3fab13b480> @assert_no_logs def test_polygon_fill(assert_pixels): > assert_pixels(''' _________ RRRRRR___ RRRRRR___ RRBBRR___ RRBBRR___ RRRRRR___ RRRRRR___ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:221: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_circle_stroke ______________________________ assert_pixels = . at 0x3fab3800f0> @assert_no_logs def test_circle_stroke(assert_pixels): > assert_pixels(''' __________ __RRRRRR__ _RRRRRRRR_ _RRRRRRRR_ _RRR__RRR_ _RRR__RRR_ _RRRRRRRR_ _RRRRRRRR_ __RRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_shapes.py:245: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_circle_fill _______________________________ assert_pixels = . at 0x3fab13b530> @assert_no_logs def test_circle_fill(assert_pixels): > assert_pixels(''' __________ __RRRRRR__ _RRRRRRRR_ _RRRRRRRR_ _RRRBBRRR_ _RRRBBRRR_ _RRRRRRRR_ _RRRRRRRR_ __RRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_shapes.py:270: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_ellipse_stroke ______________________________ assert_pixels = . at 0x3fab139010> @assert_no_logs def test_ellipse_stroke(assert_pixels): > assert_pixels(''' __________ __RRRRRR__ _RRRRRRRR_ _RRRRRRRR_ _RRR__RRR_ _RRR__RRR_ _RRRRRRRR_ _RRRRRRRR_ __RRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_shapes.py:295: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_ellipse_fill _______________________________ assert_pixels = . at 0x3fab138d50> @assert_no_logs def test_ellipse_fill(assert_pixels): > assert_pixels(''' __________ __RRRRRR__ _RRRRRRRR_ _RRRRRRRR_ _RRRBBRRR_ _RRRBBRRR_ _RRRRRRRR_ _RRRRRRRR_ __RRRRRR__ __________ ''', ''' ''') tests/draw/svg/test_shapes.py:320: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_rect_in_g ________________________________ assert_pixels = . at 0x3fb072b060> @assert_no_logs def test_rect_in_g(assert_pixels): > assert_pixels(''' RRRRR____ RRRRR____ RRRRR____ RRRRR____ RRRRR____ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:345: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_rect_x_y_in_g ______________________________ assert_pixels = . at 0x3fabff3cc0> @assert_no_logs def test_rect_x_y_in_g(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:370: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_rect_stroke_zero _____________________________ assert_pixels = . at 0x3fb05cd7a0> @assert_no_logs def test_rect_stroke_zero(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:395: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_rect_width_height_zero __________________________ assert_pixels = . at 0x3fb05cfcc0> @assert_no_logs def test_rect_width_height_zero(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:419: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_rect_fill_inherit ____________________________ assert_pixels = . at 0x3fab1eb1c0> @assert_no_logs def test_rect_fill_inherit(assert_pixels): > assert_pixels(''' _________ _________ __KKKKK__ __KKKKK__ __KKKKK__ __KKKKK__ __KKKKK__ _________ _________ ''', ''' ''') tests/draw/svg/test_shapes.py:442: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_text_fill ________________________________ assert_pixels = . at 0x3fab1e9430> @assert_no_logs def test_text_fill(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''') tests/draw/svg/test_text.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_text_stroke _______________________________ assert_pixels = . at 0x3fab380ca0> @assert_no_logs def test_text_stroke(assert_pixels): > assert_pixels(''' _BBBBBBBBBBBB_______ _BBBBBBBBBBBB_______ _BBBBBBBBBBBB_______ _BBBBBBBBBBBB_______ ''', ''' A B C ''') tests/draw/svg/test_text.py:26: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_text_x __________________________________ assert_pixels = . at 0x3fab381c70> @assert_no_logs def test_text_x(assert_pixels): > assert_pixels(''' BB__BB_BBBB_________ BB__BB_BBBB_________ ''', ''' ABCD ''') tests/draw/svg/test_text.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_text_y __________________________________ assert_pixels = . at 0x3fab382820> @assert_no_logs def test_text_y(assert_pixels): > assert_pixels(''' __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ ''', ''' ABCDEF ''') tests/draw/svg/test_text.py:66: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_text_xy _________________________________ assert_pixels = . at 0x3fab1eb1c0> @assert_no_logs def test_text_xy(assert_pixels): > assert_pixels(''' __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ ''', ''' ABCDE ''') tests/draw/svg/test_text.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_text_dx _________________________________ assert_pixels = . at 0x3fb05cfcc0> @assert_no_logs def test_text_dx(assert_pixels): > assert_pixels(''' BB__BB_BBBB_________ BB__BB_BBBB_________ ''', ''' ABCD ''') tests/draw/svg/test_text.py:120: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_text_dy _________________________________ assert_pixels = . at 0x3fabff3cc0> @assert_no_logs def test_text_dy(assert_pixels): > assert_pixels(''' __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ BBBBBBBBBB_____BBBBB__________ ''', ''' ABCDEF ''') tests/draw/svg/test_text.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_text_dx_dy ________________________________ assert_pixels = . at 0x3fb02b2cf0> @assert_no_logs def test_text_dx_dy(assert_pixels): > assert_pixels(''' __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB __________BBBBB_____BBBBBBBBBB BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ BBBBB__________BBBBB__________ ''', ''' ABCDE ''') tests/draw/svg/test_text.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_text_anchor_start ____________________________ assert_pixels = . at 0x3fab139c70> @assert_no_logs def test_text_anchor_start(assert_pixels): > assert_pixels(''' __BBBBBB____________ __BBBBBB____________ ____BBBBBB__________ ____BBBBBB__________ ''', ''' ABC ABC ''') tests/draw/svg/test_text.py:193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_text_anchor_middle ____________________________ assert_pixels = . at 0x3fab13bc10> @assert_no_logs def test_text_anchor_middle(assert_pixels): > assert_pixels(''' _______BBBBBB_______ _______BBBBBB_______ ''', ''' ABC ''') tests/draw/svg/test_text.py:218: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_text_anchor_end _____________________________ assert_pixels = . at 0x3fab3831c0> @assert_no_logs def test_text_anchor_end(assert_pixels): > assert_pixels(''' ____________BBBBBB__ ____________BBBBBB__ ''', ''' ABC ''') tests/draw/svg/test_text.py:237: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_text_direction_rtl_anchor_start _____________________ assert_pixels = . at 0x3fab382140> @assert_no_logs def test_text_direction_rtl_anchor_start(assert_pixels): > assert_pixels(''' ____________BBBBBB__ ____________BBBBBB__ ''', ''' ABC ''') tests/draw/svg/test_text.py:256: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_text_direction_rtl_anchor_end ______________________ assert_pixels = . at 0x3fab380a90> @assert_no_logs def test_text_direction_rtl_anchor_end(assert_pixels): > assert_pixels(''' __BBBBBB____________ __BBBBBB____________ ''', ''' ABC ''') tests/draw/svg/test_text.py:276: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_text_tspan ________________________________ assert_pixels = . at 0x3fab383ab0> @assert_no_logs def test_text_tspan(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''') tests/draw/svg/test_text.py:295: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_text_tspan_anchor_middle _________________________ assert_pixels = . at 0x3fab308300> @assert_no_logs def test_text_tspan_anchor_middle(assert_pixels): > assert_pixels(''' _______BBBBBB_______ _______BBBBBB_______ ''', ''' ABC ''') tests/draw/svg/test_text.py:313: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_text_tspan_anchor_end __________________________ assert_pixels = . at 0x3fab3092d0> @assert_no_logs def test_text_tspan_anchor_end(assert_pixels): > assert_pixels(''' ____________BBBBBB__ ____________BBBBBB__ ''', ''' ABC ''') tests/draw/svg/test_text.py:331: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_text_anchor_middle_tspan _________________________ assert_pixels = . at 0x3fab380b40> @assert_no_logs def test_text_anchor_middle_tspan(assert_pixels): > assert_pixels(''' _______BBBBBB_______ _______BBBBBB_______ ''', ''' ABC ''') tests/draw/svg/test_text.py:349: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_text_anchor_end_tspan __________________________ assert_pixels = . at 0x3fab381c70> @assert_no_logs def test_text_anchor_end_tspan(assert_pixels): > assert_pixels(''' ____________BBBBBB__ ____________BBBBBB__ ''', ''' ABC ''') tests/draw/svg/test_text.py:368: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_text_anchor_middle_tspan_head_tail ____________________ assert_pixels = . at 0x3fab3821f0> @assert_no_logs def test_text_anchor_middle_tspan_head_tail(assert_pixels): > assert_pixels(''' ____BBBBRRRRRRBB____ ____BBBBRRRRRRBB____ ''', ''' AAABCA ''') tests/draw/svg/test_text.py:387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_text_anchor_end_tspan_head_tail _____________________ assert_pixels = . at 0x3fab138250> @assert_no_logs def test_text_anchor_end_tspan_head_tail(assert_pixels): > assert_pixels(''' ______BBBBRRRRRRBB__ ______BBBBRRRRRRBB__ ''', ''' AAABCA ''') tests/draw/svg/test_text.py:406: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_text_anchor_middle_end_tspan _______________________ assert_pixels = . at 0x3fb05b16f0> @assert_no_logs def test_text_anchor_middle_end_tspan(assert_pixels): > assert_pixels(''' _______BBBBBB_______ _______BBBBBB_______ ____________BBBBBB__ ____________BBBBBB__ ''', ''' ABC ABC ''') tests/draw/svg/test_text.py:425: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_text_tspan_anchor_non_text ________________________ assert_pixels = . at 0x3fb05ccbf0> @assert_no_logs def test_text_tspan_anchor_non_text(assert_pixels): # Regression test for #2375. > assert_pixels(''' _______BBBBBB_______ _______BBBBBB_______ ''', ''' ABC ''') tests/draw/svg/test_text.py:447: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_text_rotate _______________________________ assert_pixels = . at 0x3fab1e8f60> @assert_no_logs def test_text_rotate(assert_pixels): > assert_pixels(''' __RR__RR__RR________ __RR__RR__RR________ BB__BB__BB__________ BB__BB__BB__________ ''', ''' abc abc ''') tests/draw/svg/test_text.py:466: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_text_text_length _____________________________ assert_pixels = . at 0x3fab308f60> @assert_no_logs def test_text_text_length(assert_pixels): > assert_pixels(''' __RRRRRR____________ __RRRRRR____________ __BB__BB__BB________ __BB__BB__BB________ ''', ''' abc abc ''') tests/draw/svg/test_text.py:487: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_text_length_adjust_glyphs_only ______________________ assert_pixels = . at 0x3fab30a1f0> @assert_no_logs def test_text_length_adjust_glyphs_only(assert_pixels): > assert_pixels(''' __RRRRRR____________ __RRRRRR____________ __BBBBBBBBBBBB______ __BBBBBBBBBBBB______ ''', ''' abc abc ''') tests/draw/svg/test_text.py:509: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_text_font_face ______________________________ assert_pixels = . at 0x3fab30ada0> @assert_no_logs def test_text_font_face(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''') tests/draw/svg/test_text.py:531: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_text_font_face_css ____________________________ assert_pixels = . at 0x3fab30b270> @assert_no_logs def test_text_font_face_css(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''') tests/draw/svg/test_text.py:557: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_text_length_adjust_spacing_and_glyphs __________________ assert_pixels = . at 0x3fab328040> @assert_no_logs def test_text_length_adjust_spacing_and_glyphs(assert_pixels): > assert_pixels(''' __RR_RR_RR__________ __RR_RR_RR__________ __BBBB__BBBB__BBBB__ __BBBB__BBBB__BBBB__ ''', ''' abc abc ''') tests/draw/svg/test_text.py:584: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_font_shorthand ______________________________ assert_pixels = . at 0x3fab30af00> @assert_no_logs def test_font_shorthand(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:607: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________ test_font_shorthand_inheritance_from_parent __________________ assert_pixels = . at 0x3fab30ab90> @assert_no_logs def test_font_shorthand_inheritance_from_parent(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:626: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________ test_explicit_properties_override_parent_shorthand ______________ assert_pixels = . at 0x3fab308b40> @assert_no_logs def test_explicit_properties_override_parent_shorthand(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:647: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________ test_font_shorthand_overrides_explicit_parent_properties ___________ assert_pixels = . at 0x3fab2e6610> @assert_no_logs def test_font_shorthand_overrides_explicit_parent_properties(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:668: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________ test_child_font_shorthand_overrides_parent_shorthand _____________ assert_pixels = . at 0x3fabff3cc0> @assert_no_logs def test_child_font_shorthand_overrides_parent_shorthand(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:689: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_mixed_explicit_and_shorthand_across_levels ________________ assert_pixels = . at 0x3fab64cf60> @assert_no_logs def test_mixed_explicit_and_shorthand_across_levels(assert_pixels): > assert_pixels(''' BBBBBB__BBBBBB______ BBBBBB__BBBBBB______ ''', ''' ABC DEF ''', ) tests/draw/svg/test_text.py:710: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_text_fill_opacity ____________________________ assert_pixels = . at 0x3fab138e00> @assert_no_logs def test_text_fill_opacity(assert_pixels): # Regression text for #2665. > assert_pixels(''' ______ _ssss_ _ssss_ _ssss_ _ssss_ ______ ''', ''' A ''') tests/draw/svg/test_text.py:734: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_transform_translate ___________________________ assert_pixels = . at 0x3fab382140> @assert_no_logs def test_transform_translate(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_transform_translate_one _________________________ assert_pixels = . at 0x3fab3290c0> @assert_no_logs def test_transform_translate_one(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_transform_translatex ___________________________ assert_pixels = . at 0x3fab329850> @assert_no_logs def test_transform_translatex(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_transform_translatey ___________________________ assert_pixels = . at 0x3fab32a400> @assert_no_logs def test_transform_translatey(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_rotate _____________________________ assert_pixels = . at 0x3fab32afb0> @assert_no_logs def test_transform_rotate(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_transform_rotate_cx_cy __________________________ assert_pixels = . at 0x3fab3814e0> @assert_no_logs def test_transform_rotate_cx_cy(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_transform_rotate_angle_units[90deg] ___________________ assert_same_renderings = . at 0x3fab13bc10> angle = '90deg' @pytest.mark.parametrize( 'angle', ['90deg', '100grad', '1.5707963267948966rad', '.25turn']) @assert_no_logs def test_transform_rotate_angle_units(assert_same_renderings, angle): > assert_same_renderings(''' ''', f''' ''') tests/draw/svg/test_transform.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_transform_rotate_angle_units[100grad] __________________ assert_same_renderings = . at 0x3fab634a90> angle = '100grad' @pytest.mark.parametrize( 'angle', ['90deg', '100grad', '1.5707963267948966rad', '.25turn']) @assert_no_logs def test_transform_rotate_angle_units(assert_same_renderings, angle): > assert_same_renderings(''' ''', f''' ''') tests/draw/svg/test_transform.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________ test_transform_rotate_angle_units[1.5707963267948966rad] ___________ assert_same_renderings = . at 0x3fab2d07d0> angle = '1.5707963267948966rad' @pytest.mark.parametrize( 'angle', ['90deg', '100grad', '1.5707963267948966rad', '.25turn']) @assert_no_logs def test_transform_rotate_angle_units(assert_same_renderings, angle): > assert_same_renderings(''' ''', f''' ''') tests/draw/svg/test_transform.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_transform_rotate_angle_units[.25turn] __________________ assert_same_renderings = . at 0x3fab308b40> angle = '.25turn' @pytest.mark.parametrize( 'angle', ['90deg', '100grad', '1.5707963267948966rad', '.25turn']) @assert_no_logs def test_transform_rotate_angle_units(assert_same_renderings, angle): > assert_same_renderings(''' ''', f''' ''') tests/draw/svg/test_transform.py:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_transform_skew ______________________________ assert_pixels = . at 0x3fab30a2a0> @assert_no_logs def test_transform_skew(assert_pixels): > assert_pixels(''' _________ _RRR_____ _RRRRRR__ __RRRRR__ __RRRRR__ __RRRRRR_ ____RRRR_ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_transform_skew_one ____________________________ assert_pixels = . at 0x3fab32b7f0> @assert_no_logs def test_transform_skew_one(assert_pixels): > assert_pixels(''' _________ _RRRRR___ _RRRRRR__ __RRRRR__ __RRRRR__ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:203: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_transform_skewx _____________________________ assert_pixels = . at 0x3fab329bc0> @assert_no_logs def test_transform_skewx(assert_pixels): > assert_pixels(''' _________ _RRRRR___ _RRRRRR__ __RRRRR__ __RRRRR__ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:227: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_transform_skewy _____________________________ assert_pixels = . at 0x3fab328d50> @assert_no_logs def test_transform_skewy(assert_pixels): > assert_pixels(''' _________ _RR______ _RRRR____ _RRRR____ _RRRR____ _RRRR____ __RRR____ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:251: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_transform_scale _____________________________ assert_pixels = . at 0x3fab974300> @assert_no_logs def test_transform_scale(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:275: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_scale_2 ____________________________ assert_pixels = . at 0x3fab974eb0> @assert_no_logs def test_transform_scale_2(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:299: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_scalex _____________________________ assert_pixels = . at 0x3fab975a60> @assert_no_logs def test_transform_scalex(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:323: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_scaley _____________________________ assert_pixels = . at 0x3fab32bab0> @assert_no_logs def test_transform_scaley(assert_pixels): > assert_pixels(''' _________ _RRRR____ _RRRR____ _RRRR____ _RRRR____ _RRRR____ _RRRR____ _RRRR____ _________ ''', ''' ''') tests/draw/svg/test_transform.py:347: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_matrix _____________________________ assert_pixels = . at 0x3fab32a770> @assert_no_logs def test_transform_matrix(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_transform.py:371: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_transform_multiple ____________________________ assert_pixels = . at 0x3fab30a1f0> @assert_no_logs def test_transform_multiple(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_unknown ____________________________ assert_pixels = . at 0x3fab30aa30> @assert_no_logs def test_transform_unknown(assert_pixels): > assert_pixels(''' RRRRR____ R__RR____ R__RR____ R__RR____ RRRRR____ RRRRR____ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:421: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_transform_origin _____________________________ assert_pixels = . at 0x3fab81e2a0> @assert_no_logs def test_transform_origin(assert_pixels): > assert_pixels(''' ___RRRRRR ___RRRRRR ___RR___R ___RR___R ___RRRRRR ___RRRRRR _________ _________ _________ ''', ''' ''') tests/draw/svg/test_transform.py:445: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_units_px _________________________________ assert_pixels = . at 0x3fab13bc10> @assert_no_logs def test_units_px(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_units.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_units_em _________________________________ assert_pixels = . at 0x3fb02b2cf0> @assert_no_logs def test_units_em(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_units.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_units_ex _________________________________ assert_pixels = . at 0x3fab975590> @assert_no_logs def test_units_ex(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ ''', ''' ''') tests/draw/svg/test_units.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_units_unknown ______________________________ assert_pixels = . at 0x3fab976560> @assert_no_logs def test_units_unknown(assert_pixels): > assert_pixels(''' _RRRRRRR_ _RR___RR_ _RR___RR_ _RR___RR_ _RRRRRRR_ _RRRRRRR_ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_units.py:82: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_units_percentage _____________________________ assert_pixels = . at 0x3fab977110> @assert_no_logs def test_units_percentage(assert_pixels): > assert_pixels(''' ________ ________ ________ ________ ____BB__ ____BB__ ________ ________ ''', ''' ''') tests/draw/svg/test_units.py:106: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_units_percentage_after_nested_svg ____________________ assert_pixels = . at 0x3fab977c10> @assert_no_logs def test_units_percentage_after_nested_svg(assert_pixels): # Percentages must be resolved against the current viewport, not against # the viewport of a nested "svg" tag that has already been drawn. > assert_pixels(''' RR______ RR______ ________ ________ ____BB__ ____BB__ ________ ________ ''', ''' ''') tests/draw/svg/test_units.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_units_percentage_sibling_nested_svg ___________________ assert_pixels = . at 0x3fab960930> @assert_no_logs def test_units_percentage_sibling_nested_svg(assert_pixels): # Each nested "svg" tag must resolve its own percentages against the # parent viewport, including when a sibling has been drawn before. > assert_pixels(''' ________ ________ __RR____ __RR____ ____BB__ ____BB__ ________ ________ ''', ''' ''') tests/draw/svg/test_units.py:157: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_visibility_visible ____________________________ assert_pixels = . at 0x3fab977480> @assert_no_logs def test_visibility_visible(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_visibility_hidden ____________________________ assert_pixels = . at 0x3fab976560> @assert_no_logs def test_visibility_hidden(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:32: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_visibility_inherit_hidden ________________________ assert_pixels = . at 0x3fab976350> @assert_no_logs def test_visibility_inherit_hidden(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_visibility_inherit_visible ________________________ assert_pixels = . at 0x3fab383690> @assert_no_logs def test_visibility_inherit_visible(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:81: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_display_inline ______________________________ assert_pixels = . at 0x3fab2e6610> @assert_no_logs def test_display_inline(assert_pixels): > assert_pixels(''' _________ _________ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ __RRRRR__ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_display_none _______________________________ assert_pixels = . at 0x3fab30ada0> @assert_no_logs def test_display_none(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_display_inherit_none ___________________________ assert_pixels = . at 0x3fab3292d0> @assert_no_logs def test_display_inherit_none(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_display_inherit_inline __________________________ assert_pixels = . at 0x3fab329e80> @assert_no_logs def test_display_inherit_inline(assert_pixels): > assert_pixels(''' _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', ''' ''') tests/draw/svg/test_visibility.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_1 _____________________________ assert_pixels = . at 0x3fab961640> @assert_no_logs def test_absolute_split_1(assert_pixels): > assert_pixels(''' BBBBRRRRRRRR____ BBBBRRRRRRRR____ BBBBRR__________ BBBBRR__________ ''', '''
aa aa
bbbbbb bbb
''') tests/draw/test_absolute.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_2 _____________________________ assert_pixels = . at 0x3fab961c70> @assert_no_logs def test_absolute_split_2(assert_pixels): > assert_pixels(''' RRRRRRRRRRRRBBBB RRRRRRRRRRRRBBBB RRRR________BBBB RRRR________BBBB ''', '''
aa aa
bbbbbb bb
''') tests/draw/test_absolute.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_3 _____________________________ assert_pixels = . at 0x3fab962980> @assert_no_logs def test_absolute_split_3(assert_pixels): > assert_pixels(''' BBBBRRRRRRRR____ BBBBRRRRRRRR____ RRRRRRRRRR______ RRRRRRRRRR______ ''', '''
aa
bbbbbb bbbbb
''') tests/draw/test_absolute.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_4 _____________________________ assert_pixels = . at 0x3fab9626c0> @assert_no_logs def test_absolute_split_4(assert_pixels): > assert_pixels(''' RRRRRRRRRRRRBBBB RRRRRRRRRRRRBBBB RRRRRRRRRR______ RRRRRRRRRR______ ''', '''
aa
bbbbbb bbbbb
''') tests/draw/test_absolute.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_5 _____________________________ assert_pixels = . at 0x3fab962e50> @assert_no_logs def test_absolute_split_5(assert_pixels): > assert_pixels(''' BBBBRRRR____gggg BBBBRRRR____gggg BBBBRRRRRR__gggg BBBBRRRRRR__gggg ''', '''
aa aa
cc cc
bbbb bbbbb
''') tests/draw/test_absolute.py:134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_6 _____________________________ assert_pixels = . at 0x3fab963d70> @assert_no_logs def test_absolute_split_6(assert_pixels): > assert_pixels(''' BBBBRRRR____gggg BBBBRRRR____gggg BBBBRRRRRR______ BBBBRRRRRR______ ''', '''
aa aa
cc
bbbb bbbbb
''') tests/draw/test_absolute.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_7 _____________________________ assert_pixels = . at 0x3fab961dd0> @assert_no_logs def test_absolute_split_7(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRgggg BBBBRRRRRRRRgggg ____RRRR____gggg ____RRRR____gggg ''', '''
aa
cc cc
bbbb bb
''') tests/draw/test_absolute.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_8 _____________________________ assert_pixels = . at 0x3fab329e80> @assert_no_logs def test_absolute_split_8(assert_pixels): > assert_pixels(''' ______ ______ ______ ______ __RR__ __RR__ ______ ______ ''', '''
a a a a
''') tests/draw/test_absolute.py:248: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_9 _____________________________ assert_pixels = . at 0x3fab30a8d0> @assert_no_logs def test_absolute_split_9(assert_pixels): > assert_pixels(''' ______ ______ BBRRBB BBRRBB BBRR__ BBRR__ ______ ______ ''', ''' aaa a
a a a a
''') tests/draw/test_absolute.py:282: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_10 ____________________________ assert_pixels = . at 0x3fab309a60> @assert_no_logs def test_absolute_split_10(assert_pixels): > assert_pixels(''' BB____ BB____ __RR__ __RR__ __RR__ __RR__ BBRR__ BBRR__ __RR__ __RR__ ______ ______ ''', '''
a
a a a a
a
''') tests/draw/test_absolute.py:317: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_11 ____________________________ assert_pixels = . at 0x3fab962770> @assert_no_logs def test_absolute_split_11(assert_pixels): > assert_pixels(''' BBBBBB BBBBBB BBRRBB BBRRBB __RR__ __RR__ ''', ''' aaa aaa
a a
''') tests/draw/test_absolute.py:361: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_absolute_split_12 ____________________________ assert_pixels = . at 0x3fab9754e0> @assert_no_logs def test_absolute_split_12(assert_pixels): > assert_pixels(''' BBBBBB__ BBBBBB__ ________ ________ ________ ________ ________ ________ BB______ BB______ BBRR____ BBRR____ BBRRRR__ BBRRRR__ BBRRRRRR BBRRRRRR ''', ''' aaa
a
x
xx
xxx

a
a
a
''') tests/draw/test_absolute.py:393: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_absolute_rtl_1 ______________________________ assert_pixels = . at 0x3fab5f45c0> @assert_no_logs def test_absolute_rtl_1(assert_pixels): > assert_pixels(''' __________RRRRRR __________RRRRRR ________________ ''', '''
bbb
''') tests/draw/test_absolute.py:483: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_absolute_rtl_2 ______________________________ assert_pixels = . at 0x3fab5f5010> @assert_no_logs def test_absolute_rtl_2(assert_pixels): > assert_pixels(''' ________________ _________RRRRRR_ _________RRRRRR_ ''', '''
bbb
''') tests/draw/test_absolute.py:509: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_absolute_rtl_3 ______________________________ assert_pixels = . at 0x3fab5f4a90> @assert_no_logs def test_absolute_rtl_3(assert_pixels): > assert_pixels(''' ________________ RRRRRR__________ RRRRRR__________ ''', '''
bbb
''') tests/draw/test_absolute.py:536: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_absolute_rtl_4 ______________________________ assert_pixels = . at 0x3fab977530> @assert_no_logs def test_absolute_rtl_4(assert_pixels): > assert_pixels(''' ________________ _________RRRRRR_ _________RRRRRR_ ''', '''
bbb
''') tests/draw/test_absolute.py:564: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_absolute_rtl_5 ______________________________ assert_pixels = . at 0x3fab977cc0> @assert_no_logs def test_absolute_rtl_5(assert_pixels): > assert_pixels(''' RRRRRR__________ RRRRRR__________ ________________ ''', '''
bbb
''') tests/draw/test_absolute.py:592: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_absolute_pages_counter __________________________ assert_pixels = . at 0x3fb05a00f0> @assert_no_logs def test_absolute_pages_counter(assert_pixels): > assert_pixels(''' ______ _RR___ _RR___ _RR___ _RR___ _____B ______ _RR___ _RR___ _BB___ _BB___ _____B ''', ''' a a a
a a
''') tests/draw/test_absolute.py:616: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_absolute_pages_counter_orphans ______________________ assert_pixels = . at 0x3fab30aa30> @assert_no_logs def test_absolute_pages_counter_orphans(assert_pixels): > assert_pixels(''' ______ _RR___ _RR___ _RR___ _RR___ ______ ______ ______ _____B ______ _RR___ _RR___ _BB___ _BB___ _GG___ _GG___ ______ _____B ''', ''' a a a
a a a
a
a a a
''') tests/draw/test_absolute.py:658: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_absolute_in_inline ____________________________ assert_pixels = . at 0x3fab9607d0> @assert_no_logs def test_absolute_in_inline(assert_pixels): > assert_pixels(''' ______ _GG___ _GG___ _GG___ _GG___ ______ ______ ______ ______ ______ _RR___ _RR___ _RR___ _RR___ _BB___ _BB___ ______ ______ ''', '''

a a

a a
a
''') tests/draw/test_absolute.py:711: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_fixed_in_inline _____________________________ assert_pixels = . at 0x3fab960eb0> @assert_no_logs def test_fixed_in_inline(assert_pixels): > assert_pixels(''' ______ _GG___ _GG___ _GG___ _GG___ _BB___ _BB___ ______ ______ ______ _RR___ _RR___ _RR___ _RR___ _BB___ _BB___ ______ ______ ''', '''

a a

a a
a
''') tests/draw/test_absolute.py:759: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_absolute_image_background ________________________ assert_pixels = . at 0x3fab5f6090> @assert_no_logs def test_absolute_image_background(assert_pixels): > assert_pixels(''' ____ _RBB _BBB _BBB ''', ''' ''') tests/draw/test_absolute.py:807: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_absolute_in_absolute_break ________________________ assert_pixels = . at 0x3fab5f4720> @assert_no_logs def test_absolute_in_absolute_break(assert_pixels): # Regression test for #2134. > assert_pixels(''' BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB RRRR RRRR RRRR RRRR RRRR ____ ____ ____ ''', '''














''') tests/draw/test_absolute.py:831: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_absolute_alternative_layout[absolute-grid] ________________ assert_pixels = . at 0x3fab5f4b40> position = 'absolute', display = 'grid' @assert_no_logs @pytest.mark.parametrize(('position', 'display'), [ ('absolute', 'grid'), ('absolute', 'flex'), ('relative', 'grid'), ('relative', 'flex'), ]) def test_absolute_alternative_layout(assert_pixels, position, display): # Regression test for #2450. > assert_pixels(''' ______ _RRRR_ _RBBR_ _RBBR_ _RRRR_ ______ ''', '''
a
''' % (position, display)) tests/draw/test_absolute.py:888: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_absolute_alternative_layout[absolute-flex] ________________ assert_pixels = . at 0x3fab5f6cf0> position = 'absolute', display = 'flex' @assert_no_logs @pytest.mark.parametrize(('position', 'display'), [ ('absolute', 'grid'), ('absolute', 'flex'), ('relative', 'grid'), ('relative', 'flex'), ]) def test_absolute_alternative_layout(assert_pixels, position, display): # Regression test for #2450. > assert_pixels(''' ______ _RRRR_ _RBBR_ _RBBR_ _RRRR_ ______ ''', '''
a
''' % (position, display)) tests/draw/test_absolute.py:888: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_absolute_alternative_layout[relative-grid] ________________ assert_pixels = . at 0x3fab5f75e0> position = 'relative', display = 'grid' @assert_no_logs @pytest.mark.parametrize(('position', 'display'), [ ('absolute', 'grid'), ('absolute', 'flex'), ('relative', 'grid'), ('relative', 'flex'), ]) def test_absolute_alternative_layout(assert_pixels, position, display): # Regression test for #2450. > assert_pixels(''' ______ _RRRR_ _RBBR_ _RBBR_ _RRRR_ ______ ''', '''
a
''' % (position, display)) tests/draw/test_absolute.py:888: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_absolute_alternative_layout[relative-flex] ________________ assert_pixels = . at 0x3fab9616f0> position = 'relative', display = 'flex' @assert_no_logs @pytest.mark.parametrize(('position', 'display'), [ ('absolute', 'grid'), ('absolute', 'flex'), ('relative', 'grid'), ('relative', 'flex'), ]) def test_absolute_alternative_layout(assert_pixels, position, display): # Regression test for #2450. > assert_pixels(''' ______ _RRRR_ _RBBR_ _RBBR_ _RRRR_ ______ ''', '''
a
''' % (position, display)) tests/draw/test_absolute.py:888: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_canvas_background[BBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\n-\n \n ] _ assert_pixels = . at 0x3fab32b270> expected_pixels = 'BBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\n' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize( ('expected_pixels', 'html'), [ ((10 * (10 * 'B' + '\n')), ''' '''), (''' rrrrrrrrrr rrrrrrrrrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrrrrrrrrr rrrrrrrrrr rrrrrrrrrr ''', ''' '''), ]) def test_canvas_background(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_canvas_background[\n rrrrrrrrrr\n rrrrrrrrrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrrrrrrrrr\n rrrrrrrrrr\n rrrrrrrrrr\n -\n \n ] _ assert_pixels = . at 0x3fab329b10> expected_pixels = '\n rrrrrrrrrr\n rrrrrrrrrr\n rrBBBBBBrr\n rrBBBBBBrr\n rr...BBBBBrr\n rrBBBBBBrr\n rrrrrrrrrr\n rrrrrrrrrr\n rrrrrrrrrr\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize( ('expected_pixels', 'html'), [ ((10 * (10 * 'B' + '\n')), ''' '''), (''' rrrrrrrrrr rrrrrrrrrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrBBBBBBrr rrrrrrrrrr rrrrrrrrrr rrrrrrrrrr ''', ''' '''), ]) def test_canvas_background(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_canvas_background_size __________________________ assert_pixels = . at 0x3fab13aa30> def test_canvas_background_size(assert_pixels): > assert_pixels(''' __________ __________ __RRRRRR__ __RGGGGR__ __zzzzzz__ __zzzzzz__ __BBBBBB__ __BBBBBB__ __________ __________ ''', ''' ''') tests/draw/test_background.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _ test_background_image[url(pattern.png)-\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab13a820> css = 'url(pattern.png)' pixels = '\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBB... __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) repeat-x-\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab1ea4b0> css = 'url(pattern.png) repeat-x' pixels = '\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBB... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) repeat-y-\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n __rBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab1ea400> css = 'url(pattern.png) repeat-y' pixels = '\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB_____... __BBBB________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 0 0%-\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb05cfed0> css = 'url(pattern.png) no-repeat 0 0%' pixels = '\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB_____... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 50% 0px-\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab634460> css = 'url(pattern.png) no-repeat 50% 0px' pixels = '\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB__... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 6px top-\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab81c880> css = 'url(pattern.png) no-repeat 6px top' pixels = '\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBB... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat bottom 6PX right 0-\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb05ce610> css = 'url(pattern.png) no-repeat bottom 6PX right 0' pixels = '\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBB... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat left center-\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab961900> css = 'url(pattern.png) no-repeat left center' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat center left-\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab961590> css = 'url(pattern.png) no-repeat center left' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 3px 3px-\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab636fb0> css = 'url(pattern.png) no-repeat 3px 3px' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 100% 50%-\n ______________\n ______________\n ______________\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb05ce560> css = 'url(pattern.png) no-repeat 100% 50%' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 0% bottom-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab1eaa30> css = 'url(pattern.png) no-repeat 0% bottom' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... __BBBB________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat center 6px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab13a1f0> css = 'url(pattern.png) no-repeat center 6px' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat bottom center-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab329b10> css = 'url(pattern.png) no-repeat bottom center' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 6px 100%-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab13a820> css = 'url(pattern.png) no-repeat 6px 100%' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) repeat-x 1px 2px-\n ______________\n ______________\n ______________\n ______________\n __BrBBBrBBBr__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab961dd0> css = 'url(pattern.png) repeat-x 1px 2px' pixels = '\n ______________\n ______________\n ______________\n ______________\n __BrBBBrBBB... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) repeat-y local 2pX 1px-\n ______________\n ______________\n ____BBBB______\n ____rBBB______\n ____BBBB______\n ____BBBB______\n ____BBBB______\n ____rBBB______\n ____BBBB______\n ____BBBB______\n ____BBBB______\n ____rBBB______\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab9600f0> css = 'url(pattern.png) repeat-y local 2pX 1px' pixels = '\n ______________\n ______________\n ____BBBB______\n ____rBBB______\n ____BBBB___... ____rBBB______\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat fixed-\n # The image is actually here:\n #######\n ______________\n ______________\n __BB__________\n __BB__________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb05b22a0> css = 'url(pattern.png) no-repeat fixed' pixels = '\n # The image is actually here:\n #######\n ______________\n ______________\n __B... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat fixed right 3px-\n # x x x x\n ______________\n ______________\n ______________\n __________rB__ #\n __________BB__ #\n __________BB__ #\n __________BB__ #\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb05a2980> css = 'url(pattern.png) no-repeat fixed right 3px' pixels = '\n # x x x x\n ______________\n ______________\n ______________\n ... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png)no-repeat fixed 50%center-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab3096f0> css = 'url(pattern.png)no-repeat fixed 50%center' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px-\n ______________\n ______________\n __rBBB________\n __BBBBBB______\n __BBBBBB______\n __BBBBBB______\n ____BBBB______\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab3099b0> css = 'url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px' pixels = '\n ______________\n ______________\n __rBBB________\n __BBBBBB______\n __BBBBBB___... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_image[url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat-\n ______________\n ______________\n __rBBB________\n __BBrBBB______\n __BBBBBB______\n __BBBBBB______\n ____BBBB______\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab3090c0> css = 'url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat' pixels = '\n ______________\n ______________\n __rBBB________\n __BBrBBB______\n __BBBBBB___... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('url(pattern.png)', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __rBBBrBBBrB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x', ''' ______________ ______________ __rBBBrBBBrB__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ __rBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0 0%', ''' ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 50% 0px', ''' ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px top', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom 6PX right 0', ''' ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat left center', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center left', ''' ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 3px 3px', ''' ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 100% 50%', ''' ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 0% bottom', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ __rBBB________ __BBBB________ __BBBB________ __BBBB________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat center 6px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat bottom center', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 6px 100%', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ________rBBB__ ________BBBB__ ________BBBB__ ________BBBB__ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-x 1px 2px', ''' ______________ ______________ ______________ ______________ __BrBBBrBBBr__ __BBBBBBBBBB__ __BBBBBBBBBB__ __BBBBBBBBBB__ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) repeat-y local 2pX 1px', ''' ______________ ______________ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ____BBBB______ ____BBBB______ ____BBBB______ ____rBBB______ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed', ''' # The image is actually here: ####### ______________ ______________ __BB__________ __BB__________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat fixed right 3px', ''' # x x x x ______________ ______________ ______________ __________rB__ # __________BB__ # __________BB__ # __________BB__ # ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png)no-repeat fixed 50%center', ''' ______________ ______________ ______________ ______________ ______________ ______________ _____rBBB_____ _____BBBB_____ _____BBBB_____ _____BBBB_____ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px', ''' ______________ ______________ __rBBB________ __BBBBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ('url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat', ''' ______________ ______________ __rBBB________ __BBrBBB______ __BBBBBB______ __BBBBBB______ ____BBBB______ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_background_image(assert_pixels, css, pixels): > assert_pixels(pixels, '''

  ''' % css) tests/draw/test_background.py:473: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_background_image_zero_size_background __________________ assert_pixels = . at 0x3fb05a3530> @assert_no_logs def test_background_image_zero_size_background(assert_pixels): # Regression test for #217. > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', ''' ''') tests/draw/test_background.py:488: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_origin[border-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ] _ assert_pixels = . at 0x3fb05b2400> css = 'border-box' pixels = '\n ____________\n ____________\n ____________\n ____________\n ____________\n ...__\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('border-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ '''), ('padding-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ______rBBB__ ______BBBB__ ______BBBB__ ______BBBB__ ____________ ____________ '''), ('content-box', ''' ____________ ____________ ____________ ____________ ____________ _____rBBB___ _____BBBB___ _____BBBB___ _____BBBB___ ____________ ____________ ____________ '''), ('border-box; background-clip: content-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rB___ _______BB___ ____________ ____________ ____________ ''') ]) def test_background_origin(assert_pixels, css, pixels): """Test the background-origin property.""" > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:572: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_origin[padding-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ______rBBB__\n ______BBBB__\n ______BBBB__\n ______BBBB__\n ____________\n ____________\n ] _ assert_pixels = . at 0x3fab9621f0> css = 'padding-box' pixels = '\n ____________\n ____________\n ____________\n ____________\n ____________\n ...__\n ______BBBB__\n ______BBBB__\n ______BBBB__\n ____________\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('border-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ '''), ('padding-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ______rBBB__ ______BBBB__ ______BBBB__ ______BBBB__ ____________ ____________ '''), ('content-box', ''' ____________ ____________ ____________ ____________ ____________ _____rBBB___ _____BBBB___ _____BBBB___ _____BBBB___ ____________ ____________ ____________ '''), ('border-box; background-clip: content-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rB___ _______BB___ ____________ ____________ ____________ ''') ]) def test_background_origin(assert_pixels, css, pixels): """Test the background-origin property.""" > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:572: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_origin[content-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n _____rBBB___\n _____BBBB___\n _____BBBB___\n _____BBBB___\n ____________\n ____________\n ____________\n ] _ assert_pixels = . at 0x3fab309e80> css = 'content-box' pixels = '\n ____________\n ____________\n ____________\n ____________\n ____________\n ...__\n _____BBBB___\n _____BBBB___\n ____________\n ____________\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('border-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ '''), ('padding-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ______rBBB__ ______BBBB__ ______BBBB__ ______BBBB__ ____________ ____________ '''), ('content-box', ''' ____________ ____________ ____________ ____________ ____________ _____rBBB___ _____BBBB___ _____BBBB___ _____BBBB___ ____________ ____________ ____________ '''), ('border-box; background-clip: content-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rB___ _______BB___ ____________ ____________ ____________ ''') ]) def test_background_origin(assert_pixels, css, pixels): """Test the background-origin property.""" > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:572: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_origin[border-box; background-clip: content-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rB___\n _______BB___\n ____________\n ____________\n ____________\n ] _ assert_pixels = . at 0x3fab328b40> css = 'border-box; background-clip: content-box' pixels = '\n ____________\n ____________\n ____________\n ____________\n ____________\n ...__\n _______rB___\n _______BB___\n ____________\n ____________\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('border-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ '''), ('padding-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ______rBBB__ ______BBBB__ ______BBBB__ ______BBBB__ ____________ ____________ '''), ('content-box', ''' ____________ ____________ ____________ ____________ ____________ _____rBBB___ _____BBBB___ _____BBBB___ _____BBBB___ ____________ ____________ ____________ '''), ('border-box; background-clip: content-box', ''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rB___ _______BB___ ____________ ____________ ____________ ''') ]) def test_background_origin(assert_pixels, css, pixels): """Test the background-origin property.""" > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:572: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_background_transform ___________________________ assert_pixels = . at 0x3fab13a1f0> @assert_no_logs def test_background_transform(assert_pixels): # Regression test for #1809. > assert_pixels(''' _______ _RRRRR_ _RRRRR_ _RRRRR_ _RRRRR_ _RRRRR_ _______ ''', ''' ''') tests/draw/test_background.py:587: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_space_1 ________________________ assert_pixels = . at 0x3fab1ea560> @assert_no_logs def test_background_repeat_space_1(assert_pixels): > assert_pixels(''' ____________ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ ____________ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ ____________ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ ____________ ''', ''' ''') tests/draw/test_background.py:610: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_space_2 ________________________ assert_pixels = . at 0x3fb05cf7f0> @assert_no_logs def test_background_repeat_space_2(assert_pixels): > assert_pixels(''' ____________ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _rBBB__rBBB_ _BBBB__BBBB_ _BBBB__BBBB_ _BBBB__BBBB_ ____________ ''', ''' ''') tests/draw/test_background.py:639: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_space_3 ________________________ assert_pixels = . at 0x3fab382cf0> @assert_no_logs def test_background_repeat_space_3(assert_pixels): > assert_pixels(''' ____________ _rBBBrBBBrB_ _BBBBBBBBBB_ _BBBBBBBBBB_ _BBBBBBBBBB_ ____________ ____________ ____________ _rBBBrBBBrB_ _BBBBBBBBBB_ _BBBBBBBBBB_ _BBBBBBBBBB_ ____________ ''', ''' ''') tests/draw/test_background.py:666: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_space_4 ________________________ assert_pixels = . at 0x3fab382f00> @assert_no_logs def test_background_repeat_space_4(assert_pixels): > assert_pixels(''' ________ _rBBBGG_ _BBBBGG_ _BBBBGG_ _BBBBGG_ _GGGGGG_ _GGGGGG_ ________ ''', ''' ''') tests/draw/test_background.py:692: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_round_1 ________________________ assert_pixels = . at 0x3fab975a60> @assert_no_logs def test_background_repeat_round_1(assert_pixels): > assert_pixels(''' __________ _rrBBBBBB_ _rrBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _rrBBBBBB_ _rrBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', ''' ''') tests/draw/test_background.py:713: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_round_2 ________________________ assert_pixels = . at 0x3fab3801a0> @assert_no_logs def test_background_repeat_round_2(assert_pixels): > assert_pixels(''' __________ _rrBBBBBB_ _rrBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _rrBBBBBB_ _rrBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', ''' ''') tests/draw/test_background.py:741: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_round_3 ________________________ assert_pixels = . at 0x3fab6371c0> @assert_no_logs def test_background_repeat_round_3(assert_pixels): > assert_pixels(''' __________ _rrBBBBBB_ _rrBBBBBB_ _rrBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', ''' ''') tests/draw/test_background.py:773: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_background_repeat_round_4 ________________________ assert_pixels = . at 0x3fb05cf7f0> @assert_no_logs def test_background_repeat_round_4(assert_pixels): > assert_pixels(''' __________ _rBBBrBBB_ _rBBBrBBB_ _rBBBrBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', ''' ''') tests/draw/test_background.py:801: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_clip[#00f border-box-\n ________\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n ________\n ] _ assert_pixels = . at 0x3fab328b40> css = '#00f border-box' pixels = '\n ________\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n ________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('#00f border-box', ''' ________ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ ________ '''), ('#00f padding-box', ''' ________ ________ __BBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ '''), ('#00f content-box', ''' ________ ________ ________ ___BB___ ___BB___ ________ ________ ________ '''), ('url(pattern.png) padding-box, #0f0', ''' ________ _GGGGGG_ _GrBBBG_ _GBBBBG_ _GBBBBG_ _GBBBBG_ _GGGGGG_ ________ '''), ]) def test_background_clip(assert_pixels, css, pixels): > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:871: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_clip[#00f padding-box-\n ________\n ________\n __BBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n ] _ assert_pixels = . at 0x3fab9621f0> css = '#00f padding-box' pixels = '\n ________\n ________\n __BBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('#00f border-box', ''' ________ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ ________ '''), ('#00f padding-box', ''' ________ ________ __BBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ '''), ('#00f content-box', ''' ________ ________ ________ ___BB___ ___BB___ ________ ________ ________ '''), ('url(pattern.png) padding-box, #0f0', ''' ________ _GGGGGG_ _GrBBBG_ _GBBBBG_ _GBBBBG_ _GBBBBG_ _GGGGGG_ ________ '''), ]) def test_background_clip(assert_pixels, css, pixels): > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:871: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_clip[#00f content-box-\n ________\n ________\n ________\n ___BB___\n ___BB___\n ________\n ________\n ________\n ] _ assert_pixels = . at 0x3fb05ce350> css = '#00f content-box' pixels = '\n ________\n ________\n ________\n ___BB___\n ___BB___\n ________\n ________\n ________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('#00f border-box', ''' ________ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ ________ '''), ('#00f padding-box', ''' ________ ________ __BBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ '''), ('#00f content-box', ''' ________ ________ ________ ___BB___ ___BB___ ________ ________ ________ '''), ('url(pattern.png) padding-box, #0f0', ''' ________ _GGGGGG_ _GrBBBG_ _GBBBBG_ _GBBBBG_ _GBBBBG_ _GGGGGG_ ________ '''), ]) def test_background_clip(assert_pixels, css, pixels): > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:871: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_clip[url(pattern.png) padding-box, #0f0-\n ________\n _GGGGGG_\n _GrBBBG_\n _GBBBBG_\n _GBBBBG_\n _GBBBBG_\n _GGGGGG_\n ________\n ] _ assert_pixels = . at 0x3fb05a3530> css = 'url(pattern.png) padding-box, #0f0' pixels = '\n ________\n _GGGGGG_\n _GrBBBG_\n _GBBBBG_\n _GBBBBG_\n _GBBBBG_\n _GGGGGG_\n ________\n ' @assert_no_logs @pytest.mark.parametrize(('css', 'pixels'), [ ('#00f border-box', ''' ________ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ _BBBBBB_ ________ '''), ('#00f padding-box', ''' ________ ________ __BBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ '''), ('#00f content-box', ''' ________ ________ ________ ___BB___ ___BB___ ________ ________ ________ '''), ('url(pattern.png) padding-box, #0f0', ''' ________ _GGGGGG_ _GrBBBG_ _GBBBBG_ _GBBBBG_ _GBBBBG_ _GGGGGG_ ________ '''), ]) def test_background_clip(assert_pixels, css, pixels): > assert_pixels(pixels, ''' ''' % css) tests/draw/test_background.py:871: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ____________\n ____________\n ____________\n ___rrBBBBBB_\n ___rrBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ____________\n -\n \n ] _ assert_pixels = . at 0x3fab977e20> expected_pixels = '\n ____________\n ____________\n ____________\n ___rrBBBBBB_\n ___rrBBBBBB_\n... ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ____________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n -\n \n ] _ assert_pixels = . at 0x3fab5f7b60> expected_pixels = '\n ____________\n ____________\n ____________\n ____________\n ____________\n... _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n -\n \n ] _ assert_pixels = . at 0x3fab5f5bc0> expected_pixels = '\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBB...BBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n -\n \n ] _ assert_pixels = . at 0x3fab5f71c0> expected_pixels = '\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBB...BBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ______________\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n -\n \n ] _ assert_pixels = . at 0x3fab5f7060> expected_pixels = '\n ______________\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBB...___________\n ______________\n ______________\n ______________\n ______________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_background_size[\n ______________\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n ______________\n -\n \n ] _ assert_pixels = . at 0x3fab9771c0> expected_pixels = '\n ______________\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _BBBBB...BBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n ______________\n ' html = '\n \n ' @assert_no_logs @pytest.mark.parametrize(('expected_pixels', 'html'), [ (''' ____________ ____________ ____________ ___rrBBBBBB_ ___rrBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ___BBBBBBBB_ ____________ ''', ''' '''), (''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ''', ''' '''), (''' ______________ _rrBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ _BBBBBBBB_____ ______________ ______________ ______________ ______________ ______________ ''', ''' '''), (''' ______________ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _rrrBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ _BBBBBBBBBBBB_ ______________ ''', ''' '''), ] ) def test_background_size(assert_pixels, expected_pixels, html): > assert_pixels(expected_pixels, html) tests/draw/test_background.py:1022: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_bleed_background_size __________________________ assert_pixels = . at 0x3fab975850> @assert_no_logs def test_bleed_background_size(assert_pixels): > assert_pixels(''' RRRR RRRR RRRR RRRR ''', ''' ''') tests/draw/test_background.py:1027: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_background_size_clip ___________________________ assert_pixels = . at 0x3fab9621f0> @assert_no_logs def test_background_size_clip(assert_pixels): > assert_pixels(''' BBBB BRBB BBBB BBBB ''', ''' ''') tests/draw/test_background.py:1041: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_page_background_fixed __________________________ assert_pixels = . at 0x3fab636fb0> @assert_no_logs def test_page_background_fixed(assert_pixels): # Regression test for #1993. > assert_pixels(''' RBBB BBBB BBBB BBBB ''', ''' ''') tests/draw/test_background.py:1058: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_page_background_fixed_bleed _______________________ assert_pixels = . at 0x3fab382c40> @assert_no_logs def test_page_background_fixed_bleed(assert_pixels): # Regression test for #1993. > assert_pixels(''' RRRRRR RRBBBR RBBBBR RBBBBR RBBBBR RRRRRR ''', ''' ''') tests/draw/test_background.py:1075: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_bleed_background_size_clip ________________________ assert_pixels = . at 0x3fab5f4d50> @assert_no_logs def test_bleed_background_size_clip(assert_pixels): # Regression test for #1943. > assert_pixels(''' BBBBBB BBBBBB BBRBBB BBBBBB BBBBBB BBBBBB ''', ''' ''') tests/draw/test_background.py:1094: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_marks_crop ________________________________ assert_pixels = . at 0x3fab5f6f00> @assert_no_logs def test_marks_crop(assert_pixels): > assert_pixels(''' KK__KK K____K ______ ______ K____K KK__KK ''', ''' ''') tests/draw/test_background.py:1112: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_marks_cross _______________________________ assert_pixels = . at 0x3fab5f61f0> @assert_no_logs def test_marks_cross(assert_pixels): > assert_pixels(''' __KK__ ______ K____K K____K ______ __KK__ ''', ''' ''') tests/draw/test_background.py:1128: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_marks_crop_cross _____________________________ assert_pixels = . at 0x3fab43c510> @assert_no_logs def test_marks_crop_cross(assert_pixels): > assert_pixels(''' KKKKKK K____K K____K K____K K____K KKKKKK ''', ''' ''') tests/draw/test_background.py:1144: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_before_after_1 ______________________________ assert_same_renderings = . at 0x3fab43d850> @assert_no_logs def test_before_after_1(assert_same_renderings): > assert_same_renderings( '''

some content

''', '''

[some url] some content

''', tolerance=10) tests/draw/test_before_after.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_before_after_2 ______________________________ assert_same_renderings = . at 0x3fab43c720> @assert_no_logs def test_before_after_2(assert_same_renderings): > assert_same_renderings( '''

Lorem ipsum dolor sit amet

''', '''

« Lorem ipsum “ dolor ” sit amet »

''', tolerance=10) tests/draw/test_before_after.py:28: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_before_after_3 ______________________________ assert_same_renderings = . at 0x3fab43e770> @assert_no_logs def test_before_after_3(assert_same_renderings): > assert_same_renderings( '''

c

''', '''

aMissing imagebc

''', tolerance=10) tests/draw/test_before_after.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_outlines_and_borders[10px-border] ____________________ assert_pixels = . at 0x3fab5f61f0> assert_different_renderings = . at 0x3fab5f54e0> margin = '10px', prop = 'border' @assert_no_logs @pytest.mark.parametrize(('margin', 'prop'), [ ('10px', 'border'), ('20px', 'outline'), ]) def test_outlines_and_borders(assert_pixels, assert_different_renderings, margin, prop): """Test the rendering of outlines and borders.""" source = ''' ''' # Do not test the exact rendering of earch border style but at least # check that they do not do the same. documents = ( source % (margin, prop, border_style) for border_style in ( 'none', 'solid', 'dashed', 'dotted', 'double', 'inset', 'outset', 'groove', 'ridge')) > assert_different_renderings(*documents) tests/draw/test_box.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:108: in return lambda *args, **kwargs: draw.assert_different_renderings( tests/draw/__init__.py:83: in assert_different_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_outlines_and_borders[20px-outline] ____________________ assert_pixels = . at 0x3fab5f5d20> assert_different_renderings = . at 0x3fab5f75e0> margin = '20px', prop = 'outline' @assert_no_logs @pytest.mark.parametrize(('margin', 'prop'), [ ('10px', 'border'), ('20px', 'outline'), ]) def test_outlines_and_borders(assert_pixels, assert_different_renderings, margin, prop): """Test the rendering of outlines and borders.""" source = ''' ''' # Do not test the exact rendering of earch border style but at least # check that they do not do the same. documents = ( source % (margin, prop, border_style) for border_style in ( 'none', 'solid', 'dashed', 'dotted', 'double', 'inset', 'outset', 'groove', 'ridge')) > assert_different_renderings(*documents) tests/draw/test_box.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:108: in return lambda *args, **kwargs: draw.assert_different_renderings( tests/draw/__init__.py:83: in assert_different_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_borders_table_collapse __________________________ assert_different_renderings = . at 0x3fab5f6c40> @assert_no_logs def test_borders_table_collapse(assert_different_renderings): """Test the rendering of collapsing borders.""" source = ''' ''' # Do not test the exact rendering of earch border style but at least # check that they do not do the same. documents = ( source % border_style for border_style in ( 'none', 'solid', 'dashed', 'dotted', 'double', 'inset', 'groove')) > assert_different_renderings(*documents) tests/draw/test_box.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:108: in return lambda *args, **kwargs: draw.assert_different_renderings( tests/draw/__init__.py:83: in assert_different_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_borders_table_collapse_equivalent[styles0] ________________ assert_same_renderings = . at 0x3fab3803b0> styles = ('groove', 'outset') @assert_no_logs @pytest.mark.parametrize('styles', [ ('groove', 'outset'), ('ridge', 'inset'), ]) def test_borders_table_collapse_equivalent(assert_same_renderings, styles): """Test the rendering of equivalent collapsing borders.""" source = '''
abc
''' documents = (source % border_style for border_style in styles) > assert_same_renderings(*documents) tests/draw/test_box.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_borders_table_collapse_equivalent[styles1] ________________ assert_same_renderings = . at 0x3fab963480> styles = ('ridge', 'inset') @assert_no_logs @pytest.mark.parametrize('styles', [ ('groove', 'outset'), ('ridge', 'inset'), ]) def test_borders_table_collapse_equivalent(assert_same_renderings, styles): """Test the rendering of equivalent collapsing borders.""" source = '''
abc
''' documents = (source % border_style for border_style in styles) > assert_same_renderings(*documents) tests/draw/test_box.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_borders_box_sizing ____________________________ assert_pixels = . at 0x3fab5f6820> @assert_no_logs def test_borders_box_sizing(assert_pixels): > assert_pixels(''' ________ _RRRRRR_ _R____R_ _RRRRRR_ ________ ''', '''
''') tests/draw/test_box.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_margin_boxes _______________________________ assert_pixels = . at 0x3fab5f4460> @assert_no_logs def test_margin_boxes(assert_pixels): > assert_pixels(''' _______________ _GGG______BBBB_ _GGG______BBBB_ _______________ _____RRRR______ _____RRRR______ _____RRRR______ _____RRRR______ _______________ _bbb______gggg_ _bbb______gggg_ _bbb______gggg_ _bbb______gggg_ _bbb______gggg_ _______________ ''', ''' ''') tests/draw/test_box.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_draw_border_radius ____________________________ assert_pixels = . at 0x3fab43d640> @assert_no_logs def test_draw_border_radius(assert_pixels): > assert_pixels(''' ___zzzzz __zzzzzz _zzzzzzz zzzzzzzz zzzzzzzz zzzzzzzR zzzzzzRR zzzzzRRR ''', '''
''') tests/draw/test_box.py:217: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_draw_split_border_radius _________________________ assert_pixels = . at 0x3fab43c720> @assert_no_logs def test_draw_split_border_radius(assert_pixels): > assert_pixels(''' ___zzzzz __zzzzzz _zzzzzzz zzzzzzzz zzzzzzzz zzzzzzzz zzzzzzRR zzzzzRRR RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR RRRRRRRR zzzzzzRR zzzzzzzR zzzzzzzz zzzzzzzz zzzzzzzz zzzzzzzz _zzzzzzz __zzzzzz ''', '''
a b c
''') tests/draw/test_box.py:244: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_border_image_stretch ___________________________ assert_pixels = . at 0x3fab43ce00> @assert_no_logs def test_border_image_stretch(assert_pixels): > assert_pixels(''' __________ _RYYYMMMG_ _M______C_ _M______C_ _Y______Y_ _Y______Y_ _BYYYCCCK_ __________ ''', '''
''') tests/draw/test_box.py:290: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_border_image_fill ____________________________ assert_pixels = . at 0x3fab488040> @assert_no_logs def test_border_image_fill(assert_pixels): > assert_pixels(''' __________ _RYYYMMMG_ _MbbbgggC_ _MbbbgggC_ _YgggbbbY_ _YgggbbbY_ _BYYYCCCK_ __________ ''', '''
''') tests/draw/test_box.py:319: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_border_image_default_slice ________________________ assert_pixels = . at 0x3fab5f6140> @assert_no_logs def test_border_image_default_slice(assert_pixels): > assert_pixels(''' _____________ _RYMG___RYMG_ _MbgC___MbgC_ _YgbY___YgbY_ _BYCK___BYCK_ _____________ _____________ _RYMG___RYMG_ _MbgC___MbgC_ _YgbY___YgbY_ _BYCK___BYCK_ _____________ ''', '''
''') tests/draw/test_box.py:348: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_border_image_uneven_width ________________________ assert_pixels = . at 0x3fab43cd50> @assert_no_logs def test_border_image_uneven_width(assert_pixels): > assert_pixels(''' ____________ _RRRYYYMMMG_ _MMM______C_ _MMM______C_ _YYY______Y_ _YYY______Y_ _BBBYYYCCCK_ ____________ ''', '''
''') tests/draw/test_box.py:380: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_border_image_not_percent _________________________ assert_pixels = . at 0x3fab489850> @assert_no_logs def test_border_image_not_percent(assert_pixels): > assert_pixels(''' __________ _RYYYMMMG_ _M______C_ _M______C_ _Y______Y_ _Y______Y_ _BYYYCCCK_ __________ ''', '''
''') tests/draw/test_box.py:410: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_border_image_repeat ___________________________ assert_pixels = . at 0x3fab48ada0> @assert_no_logs def test_border_image_repeat(assert_pixels): > assert_pixels(''' ___________ _RYMYMYMYG_ _M_______C_ _Y_______Y_ _M_______C_ _Y_______Y_ _BYCYCYCYK_ ___________ ''', '''
''') tests/draw/test_box.py:439: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_border_image_space ____________________________ assert_pixels = . at 0x3fab4c43b0> @assert_no_logs def test_border_image_space(assert_pixels): > assert_pixels(''' _________ _R_YMC_G_ _________ _M_____C_ _Y_____Y_ _C_____M_ _________ _B_YCM_K_ _________ ''', '''
''') tests/draw/test_box.py:469: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_border_image_outset ___________________________ assert_pixels = . at 0x3fab4c5fe0> @assert_no_logs def test_border_image_outset(assert_pixels): > assert_pixels(''' ____________ _RYYYYMMMMG_ _M________C_ _M_bbbbbb_C_ _M_bbbbbb_C_ _Y_bbbbbb_Y_ _Y_bbbbbb_Y_ _Y________Y_ _BYYYYCCCCK_ ____________ ''', '''
''') tests/draw/test_box.py:500: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_border_image_width ____________________________ assert_pixels = . at 0x3fab43d9b0> @assert_no_logs def test_border_image_width(assert_pixels): > assert_pixels(''' __________ _RRYYMMGG_ _RRYYMMGG_ _MM____CC_ _YY____YY_ _BBYYCCKK_ _BBYYCCKK_ __________ ''', '''
''') tests/draw/test_box.py:533: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_border_image_gradient __________________________ assert_pixels = . at 0x3fab43fd70> @assert_no_logs def test_border_image_gradient(assert_pixels): > assert_pixels(''' __________ _RRRRRRRR_ _RRRRRRRR_ _RR____RR_ _BB____BB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:563: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_border_image_gradient_units _______________________ assert_pixels = . at 0x3fab48b530> @assert_no_logs def test_border_image_gradient_units(assert_pixels): # Regression test for #2690. > assert_pixels(''' __________ _RRRRRRRR_ _RRRRRRRR_ _RR____RR_ _BB____BB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:594: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_mask_border _______________________________ assert_pixels = . at 0x3fab48be20> @assert_no_logs def test_mask_border(assert_pixels): > assert_pixels(''' __________ __RR__RRR_ _R______R_ _R______R_ _s______R_ _s______R_ _R______R_ _R______R_ __RRRRRRR_ __________ ''', '''
''') tests/draw/test_box.py:626: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_mask_border_fill _____________________________ assert_pixels = . at 0x3fab48a400> @assert_no_logs def test_mask_border_fill(assert_pixels): > assert_pixels(''' __________ __RR__RRR_ _RRRRRRRR_ _RRRRRRRR_ _sRR__RRR_ _sRR__RRR_ _RRRRRRRR_ _RRRRRRRR_ __RRRRRRR_ __________ ''', '''
''') tests/draw/test_box.py:657: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_outline_and_border ____________________________ assert_pixels = . at 0x3fab489d20> @assert_no_logs def test_outline_and_border(assert_pixels): > assert_pixels(''' __________ _BBBBBBBB_ _BRRRRRRB_ _BR____RB_ _BRRRRRRB_ _BBBBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:688: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_outline_offset ______________________________ assert_pixels = . at 0x3fab43f8a0> @assert_no_logs def test_outline_offset(assert_pixels): > assert_pixels(''' ____________ _BBBBBBBBBB_ _B________B_ _B_RRRRRR_B_ _B_R____R_B_ _B_RRRRRR_B_ _B________B_ _BBBBBBBBBB_ ____________ ''', '''
''') tests/draw/test_box.py:717: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_infinite_border_radius __________________________ assert_pixels = . at 0x3fab43f950> @assert_no_logs def test_infinite_border_radius(assert_pixels): # Regression test for #2706. > assert_pixels(''' __________ __zzzzzz__ _zzzzzzzz_ _zzzRRzzz_ _zzRRRRzz_ _zzRRRRzz_ _zzzRRzzz_ _zzzzzzzz_ __zzzzzz__ __________ ''', '''
''') tests/draw/test_box.py:750: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_box_shadow_outset ____________________________ assert_pixels = . at 0x3fab43e1f0> @assert_no_logs def test_box_shadow_outset(assert_pixels): > assert_pixels(''' __________ _BBBBB____ _BBBBB____ _BBBBB____ _BBBBBrrr_ _BBBBBrrr_ ____rrrrr_ ____rrrrr_ ____rrrrr_ __________ ''', '''
''') tests/draw/test_box.py:780: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_box_shadow_outset_spread _________________________ assert_pixels = . at 0x3fab48a610> @assert_no_logs def test_box_shadow_outset_spread(assert_pixels): > assert_pixels(''' __________ _BBB______ _BBBrrrrr_ _BBBrrrrr_ __rrrrrrr_ __rrrrrrr_ __rrrrrrr_ __rrrrrrr_ __rrrrrrr_ __________ ''', '''
''') tests/draw/test_box.py:803: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_box_shadow_outset_negative_spread ____________________ assert_pixels = . at 0x3fab48ada0> @assert_no_logs def test_box_shadow_outset_negative_spread(assert_pixels): > assert_pixels(''' __________ _BBB______ _BBB______ _BBB______ __________ _____r____ __________ __________ __________ __________ ''', '''
''') tests/draw/test_box.py:826: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_box_shadow_outset_big_negative_spread __________________ assert_pixels = . at 0x3fab48b950> @assert_no_logs def test_box_shadow_outset_big_negative_spread(assert_pixels): > assert_pixels(''' __________ _BBB______ _BBB______ _BBB______ __________ __________ __________ __________ __________ __________ ''', '''
''') tests/draw/test_box.py:849: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_box_shadow_inset _____________________________ assert_pixels = . at 0x3fab43e4b0> @assert_no_logs def test_box_shadow_inset(assert_pixels): > assert_pixels(''' __________ _rrrrrrrr_ _rrrrrrrr_ _rrrrrrrr_ _rrrBBBBB_ _rrrBBBBB_ _rrrBBBBB_ _rrrBBBBB_ _rrrBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:872: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_box_shadow_inset_spread _________________________ assert_pixels = . at 0x3fab48b060> @assert_no_logs def test_box_shadow_inset_spread(assert_pixels): > assert_pixels(''' __________ _rrrrrrrr_ _rrrrrrrr_ _rrrrrrrr_ _rrrrrrrr_ _rrrrBBBB_ _rrrrBBBB_ _rrrrBBBB_ _rrrrBBBB_ __________ ''', '''
''') tests/draw/test_box.py:895: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_box_shadow_inset_negative_spread _____________________ assert_pixels = . at 0x3fab48b3d0> @assert_no_logs def test_box_shadow_inset_negative_spread(assert_pixels): > assert_pixels(''' __________ _rrrrrrrr_ _rrrrrrrr_ _rrrrrrrr_ _BBBBBBBr_ _BBBBBBBr_ _BBBBBBBr_ _BBBBBBBr_ _BBBBBBBr_ __________ ''', '''
''') tests/draw/test_box.py:918: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________ test_box_shadow_inset_big_negative_spread ___________________ assert_pixels = . at 0x3fab4c4510> @assert_no_logs def test_box_shadow_inset_big_negative_spread(assert_pixels): > assert_pixels(''' __________ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ _BBBBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:941: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_box_shadow_transparent_background ____________________ assert_pixels = . at 0x3fab4c5380> @assert_no_logs def test_box_shadow_transparent_background(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ ______rrr_ ______rrr_ ____rrrrr_ ____rrrrr_ ____rrrrr_ __________ ''', '''
''') tests/draw/test_box.py:964: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_box_shadow_inset_outset _________________________ assert_pixels = . at 0x3fab4c5c70> @assert_no_logs def test_box_shadow_inset_outset(assert_pixels): > assert_pixels(''' rrrrrrrr__ rgggggggg_ rgBBBBBBB_ rgBBBBBBB_ rgBBBBBBB_ rgBBBBBBB_ rgBBBBBBB_ rgBBBBBBB_ _gBBBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:986: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_box_shadow_multiple_outset ________________________ assert_pixels = . at 0x3fab489640> @assert_no_logs def test_box_shadow_multiple_outset(assert_pixels): > assert_pixels(''' __________ _BBBBB____ _BBBBBr___ _BBBBBrg__ _BBBBBrg__ _BBBBBrg__ __rrrrrg__ ___ggggg__ __________ __________ ''', '''
''') tests/draw/test_box.py:1009: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_box_shadow_multiple_inset ________________________ assert_pixels = . at 0x3fab4c5f30> @assert_no_logs def test_box_shadow_multiple_inset(assert_pixels): > assert_pixels(''' __________ _rrrrrrrr_ _rrrrrrrr_ _rrrrrrrr_ _rrrBBBBg_ _rrrBBBBg_ _rrrBBBBg_ _rrrBBBBg_ _rrrggggg_ __________ ''', '''
''') tests/draw/test_box.py:1032: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_box_shadow_outset_radius _________________________ assert_pixels = . at 0x3fab4c4720> @assert_no_logs def test_box_shadow_outset_radius(assert_pixels): > assert_pixels(''' __________ __zzBB____ _zzzBB____ _zzBzz____ _BBzzzzrr_ _BBzzzzrr_ ____zzrzz_ ____rrzzz_ ____rrzz__ __________ ''', '''
''') tests/draw/test_box.py:1055: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_box_shadow_inset_radius _________________________ assert_pixels = . at 0x3fab4c40f0> @assert_no_logs def test_box_shadow_inset_radius(assert_pixels): > assert_pixels(''' __________ __zzzrrrr_ _zzzzrrrr_ _zzzzrrrr_ _zzzrzzzB_ _rrrzzzzB_ _rrrzzzzB_ _rrrzzzBB_ _rrrBBBBB_ __________ ''', '''
''') tests/draw/test_box.py:1078: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_device_cmyk_with_icc ___________________________ assert_pixels = . at 0x3fab4c7690> @assert_no_logs def test_device_cmyk_with_icc(assert_pixels): > assert_pixels('PP\nPP', ''' ''') tests/draw/test_cmyk_color_profiles.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_device_cmyk_without_icc _________________________ assert_pixels = . at 0x3fab440040> @assert_no_logs def test_device_cmyk_without_icc(assert_pixels): > assert_pixels('QQ\nQQ', ''' ''') tests/draw/test_cmyk_color_profiles.py:23: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_custom_cmyk_with_icc ___________________________ assert_pixels = . at 0x3fab440510> @assert_no_logs def test_custom_cmyk_with_icc(assert_pixels): > assert_pixels('PP\nPP', ''' ''') tests/draw/test_cmyk_color_profiles.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_image_cmyk_without_icc __________________________ assert_pixels = . at 0x3fab440ca0> @assert_no_logs def test_image_cmyk_without_icc(assert_pixels): > assert_pixels('QQ\nQQ', ''' ''') tests/draw/test_cmyk_color_profiles.py:49: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_image_cmyk_with_external_icc _______________________ assert_pixels = . at 0x3fab4c7d70> @assert_no_logs def test_image_cmyk_with_external_icc(assert_pixels): > assert_pixels('PP\nPP', ''' ''') tests/draw/test_cmyk_color_profiles.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_image_cmyk_with_icc ___________________________ assert_pixels = . at 0x3fab4c5010> @assert_no_logs def test_image_cmyk_with_icc(assert_pixels): > assert_pixels('QQ\nQQ', ''' ''') tests/draw/test_cmyk_color_profiles.py:73: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_column_rule_1 ______________________________ assert_pixels = . at 0x3fab48b3d0> @assert_no_logs def test_column_rule_1(assert_pixels): > assert_pixels(''' a_r_a a_r_a _____ ''', '''
''') tests/draw/test_column.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_column_rule_2 ______________________________ assert_pixels = . at 0x3fab441430> @assert_no_logs def test_column_rule_2(assert_pixels): > assert_pixels(''' a_r_a a___a a_r_a ''', '''
''') tests/draw/test_column.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_column_rule_span _____________________________ assert_pixels = . at 0x3fab4405c0> @assert_no_logs def test_column_rule_span(assert_pixels): > assert_pixels(''' ___________ ___________ ___________ ___a_______ ___a_r_a___ ___a_r_a___ ___________ ___________ ___________ ''', '''
''') tests/draw/test_column.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_current_color_1 _____________________________ assert_pixels = . at 0x3fab442140> @assert_no_logs def test_current_color_1(assert_pixels): > assert_pixels('GG\nGG', ''' ''') tests/draw/test_current_color.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_current_color_2 _____________________________ assert_pixels = . at 0x3fab4422a0> @assert_no_logs def test_current_color_2(assert_pixels): > assert_pixels('GG\nGG', ''' ''') tests/draw/test_current_color.py:22: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_current_color_3 _____________________________ assert_pixels = . at 0x3fab442f00> @assert_no_logs def test_current_color_3(assert_pixels): > assert_pixels('GG\nGG', ''' ''') tests/draw/test_current_color.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_current_color_4 _____________________________ assert_pixels = . at 0x3fab443690> @assert_no_logs def test_current_color_4(assert_pixels): > assert_pixels('GG\nGG', '''
abc
''') tests/draw/test_current_color.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_current_color_svg_1 ___________________________ assert_pixels = . at 0x3fb18a4040> @assert_no_logs def test_current_color_svg_1(assert_pixels): > assert_pixels('KK\nKK', ''' ''') tests/draw/test_current_color.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_current_color_variable __________________________ assert_pixels = . at 0x3fb18a56f0> @assert_no_logs def test_current_color_variable(assert_pixels): # Regression test for #2010. > assert_pixels('GG\nGG', '''
aa''') tests/draw/test_current_color.py:88: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_current_color_variable_border ______________________ assert_pixels = . at 0x3fab443740> @assert_no_logs def test_current_color_variable_border(assert_pixels): # Regression test for #2010. > assert_pixels('GG\nGG', '''
''') tests/draw/test_current_color.py:100: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________________ test_float __________________________________ assert_pixels = . at 0x3fab443530> @assert_no_logs def test_float(assert_pixels): > assert_pixels(''' rBBB__aaaa BBBB__aaaa BBBB__aaaa BBBB__aaaa __________ ''', '''
''') tests/draw/test_float.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_float_rtl ________________________________ assert_pixels = . at 0x3fab4403b0> @assert_no_logs def test_float_rtl(assert_pixels): > assert_pixels(''' rBBB__aaaa BBBB__aaaa BBBB__aaaa BBBB__aaaa __________ ''', '''
''') tests/draw/test_float.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_inline _______________________________ assert_pixels = . at 0x3fab440a90> @assert_no_logs def test_float_inline(assert_pixels): > assert_pixels(''' rBBBGG_____aaaa BBBBGG_____aaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:48: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_float_inline_rtl _____________________________ assert_pixels = . at 0x3fab4c7c10> @assert_no_logs def test_float_inline_rtl(assert_pixels): > assert_pixels(''' rBBB_____GGaaaa BBBB_____GGaaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_float_inline_block ____________________________ assert_pixels = . at 0x3fb18a52d0> @assert_no_logs def test_float_inline_block(assert_pixels): > assert_pixels(''' rBBBGG_____aaaa BBBBGG_____aaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:92: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_float_inline_block_rtl __________________________ assert_pixels = . at 0x3fb18a4040> @assert_no_logs def test_float_inline_block_rtl(assert_pixels): > assert_pixels(''' rBBB_____GGaaaa BBBB_____GGaaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:114: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_float_table _______________________________ assert_pixels = . at 0x3fb18a6610> @assert_no_logs def test_float_table(assert_pixels): > assert_pixels(''' rBBBGG_____aaaa BBBBGG_____aaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:136: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_table_rtl _____________________________ assert_pixels = . at 0x3fb18a7110> @assert_no_logs def test_float_table_rtl(assert_pixels): > assert_pixels(''' rBBB_____GGaaaa BBBB_____GGaaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:158: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_float_inline_table ____________________________ assert_pixels = . at 0x3fb18a7ab0> @assert_no_logs def test_float_inline_table(assert_pixels): > assert_pixels(''' rBBBGG_____aaaa BBBBGG_____aaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_float_inline_table_rtl __________________________ assert_pixels = . at 0x3fb18fc0f0> @assert_no_logs def test_float_inline_table_rtl(assert_pixels): > assert_pixels(''' rBBB_____GGaaaa BBBB_____GGaaaa BBBB_______aaaa BBBB_______aaaa _______________ ''', '''
a
''') tests/draw/test_float.py:203: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_float_replaced_block ___________________________ assert_pixels = . at 0x3fb18fc670> @assert_no_logs def test_float_replaced_block(assert_pixels): > assert_pixels(''' rBBBaaaa___rBBB BBBBaaaa___BBBB BBBBaaaa___BBBB BBBBaaaa___BBBB _______________ ''', '''
''') tests/draw/test_float.py:226: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_float_replaced_block_rtl _________________________ assert_pixels = . at 0x3fb18a7e20> @assert_no_logs def test_float_replaced_block_rtl(assert_pixels): > assert_pixels(''' rBBB___aaaarBBB BBBB___aaaaBBBB BBBB___aaaaBBBB BBBB___aaaaBBBB _______________ ''', '''
''') tests/draw/test_float.py:246: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_margin _______________________________ assert_pixels = . at 0x3fab43e400> @assert_no_logs def test_float_margin(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRRR__ BBBBRRRRRRRRRR__ __RRRRRRRRRR____ __RRRRRRRRRR____ ''', '''
aa
bbbbb bbbbb
''') tests/draw/test_float.py:310: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_1 ______________________________ assert_pixels = . at 0x3fab5f4b40> @assert_no_logs def test_float_split_1(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRRRRR BBBBRRRRRRRRRRRR BBBBRRRR________ BBBBRRRR________ ''', '''
aa aa
bbbbbb bb
''') tests/draw/test_float.py:341: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_2 ______________________________ assert_pixels = . at 0x3fab3099b0> @assert_no_logs def test_float_split_2(assert_pixels): > assert_pixels(''' RRRRRRRRRRRRBBBB RRRRRRRRRRRRBBBB RRRR________BBBB RRRR________BBBB ''', '''
aa aa
bbbbbb bb
''') tests/draw/test_float.py:369: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_3 ______________________________ assert_pixels = . at 0x3fab961640> @assert_no_logs def test_float_split_3(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRRRRR BBBBRRRRRRRRRRRR RRRRRRRRRR______ RRRRRRRRRR______ ''', '''
aa
bbbbbb bbbbb
''') tests/draw/test_float.py:397: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_4 ______________________________ assert_pixels = . at 0x3fab488040> @assert_no_logs def test_float_split_4(assert_pixels): > assert_pixels(''' RRRRRRRRRRRRBBBB RRRRRRRRRRRRBBBB RRRRRRRRRR______ RRRRRRRRRR______ ''', '''
aa
bbbbbb bbbbb
''') tests/draw/test_float.py:425: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_5 ______________________________ assert_pixels = . at 0x3fb18a5c70> @assert_no_logs def test_float_split_5(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRgggg BBBBRRRRRRRRgggg BBBBRRRR____gggg BBBBRRRR____gggg ''', '''
aa aa
cc cc
bbbb bb
''') tests/draw/test_float.py:453: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_6 ______________________________ assert_pixels = . at 0x3fb18a6770> @assert_no_logs def test_float_split_6(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRgggg BBBBRRRRRRRRgggg BBBBRRRR________ BBBBRRRR________ ''', '''
aa aa
cc
bbbb bb
''') tests/draw/test_float.py:486: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_7 ______________________________ assert_pixels = . at 0x3fb18a6f00> @assert_no_logs def test_float_split_7(assert_pixels): > assert_pixels(''' BBBBRRRRRRRRgggg BBBBRRRRRRRRgggg RRRR________gggg RRRR________gggg ''', '''
aa
cc cc
bbbb bb
''') tests/draw/test_float.py:519: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_8 ______________________________ assert_pixels = . at 0x3fab4c6350> @assert_no_logs def test_float_split_8(assert_pixels): > assert_pixels(''' BBBB__RRRRRRRRRR BBBB__RRRRRRRRRR BBBB__RRRR______ BBBB__RRRR______ ''', '''
aa aa
bbbbb bb
''') tests/draw/test_float.py:552: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_float_split_9 ______________________________ assert_pixels = . at 0x3fb18a4eb0> @assert_no_logs def test_float_split_9(assert_pixels): > assert_pixels(''' RRRRRRRRRRBBBB__ RRRRRRRRRRBBBB__ RRRR______BBBB__ RRRR______BBBB__ ''', '''
aa aa
bbbbb bb
''') tests/draw/test_float.py:581: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_split_10 ______________________________ assert_pixels = . at 0x3fb18a6400> @assert_no_logs def test_float_split_10(assert_pixels): > assert_pixels(''' RRRRRRRRRR______ RRRRRRRRRR______ RRRRRRRRRR______ RRRRRRRRRR______ ________________ RRRRRR____BBBB__ RRRRRR____BBBB__ RRRRRR____BBBB__ RRRRRR____BBBB__ ________________ ''', '''
bbbbb bbbbb
aa aa
bbb bbb
''') tests/draw/test_float.py:610: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_split_11 ______________________________ assert_pixels = . at 0x3fab961640> @assert_no_logs def test_float_split_11(assert_pixels): > assert_pixels(''' ________________ _BBBBBBBBBB_____ _BBBBBBBBBB_____ _BBBBBBBBBB_____ _BBBBBBBBBB_____ ________________ ________________ ________________ _BBBB___________ _BBBB___________ _rrrrrrrrrrrrrr_ _rrrrrrrrrrrrrr_ ________________ ________________ ''', '''
aaaaa aaaaa aa
bbbbbbb''') tests/draw/test_float.py:646: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_split_12 ______________________________ assert_pixels = . at 0x3fab5f4720> @assert_no_logs def test_float_split_12(assert_pixels): > assert_pixels(''' BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBGG______BBBB BBBBGG______BBBB BBBB________BBBB BBBB________BBBB ________________ ''', '''
a

aa

aa

bb

bb

''') tests/draw/test_float.py:684: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_split_14 ______________________________ assert_pixels = . at 0x3fab488e00> @assert_no_logs def test_float_split_14(assert_pixels): > assert_pixels(''' BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB BBBBGG______BBBB BBBBGG______BBBB BBBB________BBBB BBBB________BBBB ________________ ''', '''
a

aa

aa

bb

bb

''') tests/draw/test_float.py:765: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_float_split_clear ____________________________ assert_pixels = . at 0x3fab4c5fe0> @assert_no_logs def test_float_split_clear(assert_pixels): > assert_pixels(''' BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB rrrr rrrr ''', '''
bb bb bb bb bb
aa
''') tests/draw/test_float.py:840: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_float_split_clear_float _________________________ assert_pixels = . at 0x3fab4c61f0> @assert_no_logs def test_float_split_clear_float(assert_pixels): > assert_pixels(''' BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB rrrr rrrr ''', '''
bb bb bb bb bb
aa
''') tests/draw/test_float.py:876: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_float_split_clear_empty _________________________ assert_pixels = . at 0x3fab440930> @assert_no_logs def test_float_split_clear_empty(assert_pixels): > assert_pixels(''' BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB BBBB ____ ____ ''', '''
bb bb bb bb bb
''') tests/draw/test_float.py:914: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_float_split_large_parent _________________________ assert_pixels = . at 0x3fab440eb0> @assert_no_logs def test_float_split_large_parent(assert_pixels): > assert_pixels(''' BBBB BBBB BBBB BBBB GGGG BBBB BBBB BBBB BBBB GGGG BBBB BBBB GGGG GGGG GGGG rrrr rrrr GGGG GGGG GGGG ''', '''
bb bb bb bb bb
aa
''') tests/draw/test_float.py:950: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_float_split_in_stacking_context _____________________ assert_pixels = . at 0x3fab442f00> @assert_no_logs def test_float_split_in_stacking_context(assert_pixels): > assert_pixels(''' RRRR RRRR BBBB BBBB ____ BBBB BBBB RRRR RRRR ____ RRRR RRRR ____ ____ ____ ''', '''
aa
bb bb
cc cc''') tests/draw/test_float.py:1002: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_inline_footnote _____________________________ assert_pixels = . at 0x3fab442fb0> @assert_no_logs def test_inline_footnote(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ _________ _________ RRRRRRRR_ RRRRRRRR_ ''', '''
abcde
''') tests/draw/test_footnote.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_block_footnote ______________________________ assert_pixels = . at 0x3fab4c5010> @assert_no_logs def test_block_footnote(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ _________ _________ RRRRRRRR_ RRRRRRRR_ ''', '''
abc
de
''') tests/draw/test_footnote.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_long_footnote ______________________________ assert_pixels = . at 0x3fab4c4670> @assert_no_logs def test_long_footnote(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ RRRRRRRR_ RRRRRRRR_ RR_______ RR_______ ''', '''
abcde f
''') tests/draw/test_footnote.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_footnote_margin _____________________________ assert_pixels = . at 0x3fab488670> @assert_no_logs def test_footnote_margin(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ _________ _RRRRRR__ _RRRRRR__ _________ ''', '''
abcd
''') tests/draw/test_footnote.py:92: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_footnote_multiple_margin _________________________ assert_pixels = . at 0x3fab5f6610> @assert_no_logs def test_footnote_multiple_margin(assert_pixels): > assert_pixels(''' RRRR___ RRRR___ RRRR___ RRRR___ RRRR___ RRRR___ RRRRRR_ RRRRRR_ _______ _______ RRRR___ RRRR___ _______ _______ _______ _______ RRRRRR_ RRRRRR_ RRRRRR_ RRRRRR_ ''', '''
ab
ab
ab
ade
ab
''') tests/draw/test_footnote.py:124: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_footnote_with_absolute __________________________ assert_pixels = . at 0x3fb18a5c70> @assert_no_logs def test_footnote_with_absolute(assert_pixels): > assert_pixels(''' _RRRR____ _RRRR____ _________ _RRRR____ _RRRR____ BB_______ BB_______ ''', '''
ad
''') tests/draw/test_footnote.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_footnote_max_height_1 __________________________ assert_pixels = . at 0x3fb18a5850> @assert_no_logs def test_footnote_max_height_1(assert_pixels): > assert_pixels(''' RRRRKKKK_ RRRRKKKK_ RRRR_____ RRRR_____ _GGGGBB__ _GGGGBB__ _________ _________ _________ _________ _GGGGBB__ _GGGGBB__ ''', '''
ab
c
d
ef
''') tests/draw/test_footnote.py:209: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_footnote_max_height_2 __________________________ assert_pixels = . at 0x3fb18fc5c0> @assert_no_logs def test_footnote_max_height_2(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ _________ _BBBBBB__ _BBBBBB__ _________ _________ _________ _________ _BBBBBB__ _BBBBBB__ ''', '''
ab
c
d
''') tests/draw/test_footnote.py:251: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_footnote_max_height_3 __________________________ assert_pixels = . at 0x3fb18fd4e0> @assert_no_logs def test_footnote_max_height_3(assert_pixels): # This case is crazy and the rendering is not really defined, but this test # is useful to check that there’s no endless loop. > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ _________ _________ _________ _________ _________ _________ _________ _________ _________ _BBBBBB__ _________ _________ _________ _________ _________ _BBBBBB__ ''', '''
ab
c
d
''') tests/draw/test_footnote.py:293: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_footnote_max_height_4 __________________________ assert_pixels = . at 0x3fb18fe980> @assert_no_logs def test_footnote_max_height_4(assert_pixels): > assert_pixels(''' RRRRRRRR_ RRRRRRRR_ RRRR_____ RRRR_____ _BBBBBB__ _BBBBBB__ RRRR_____ RRRR_____ _________ _________ _BBBBBB__ _BBBBBB__ ''', '''
ab
c
d
ef
gh
''') tests/draw/test_footnote.py:339: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_footnote_max_height_5 __________________________ assert_pixels = . at 0x3fab961f30> @assert_no_logs def test_footnote_max_height_5(assert_pixels): > assert_pixels(''' RRRRRRRR__RR RRRRRRRR__RR _BBBBBB_____ _BBBBBB_____ _BBBBBB_____ _BBBBBB_____ RRRR________ RRRR________ ____________ ____________ _BBBBBB_____ _BBBBBB_____ ''', '''
ab
c
d
e
fg
''') tests/draw/test_footnote.py:381: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_footnote_column_margin_top ________________________ assert_pixels = . at 0x3fb18a4670> @assert_no_logs def test_footnote_column_margin_top(assert_pixels): > assert_pixels(''' RRRR_RRRR RRRR_RRRR _________ _________ _________ RRRRRRRR_ RRRRRRRR_ RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_____ RRRR_____ _________ ''', '''
ade ab ab ab ab ab ab
''') tests/draw/test_footnote_column.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_footnote_column_fill_auto ________________________ assert_pixels = . at 0x3fab489e80> @assert_no_logs def test_footnote_column_fill_auto(assert_pixels): > assert_pixels(''' RRRR_____ RRRR_____ RRRR_____ RRRR_____ RRRR_____ RRRR_____ _________ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ ''', '''
ade ade ade
''') tests/draw/test_footnote_column.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________ test_footnote_column_fill_auto_break_inside_avoid _______________ assert_pixels = . at 0x3fab4c6b90> @assert_no_logs def test_footnote_column_fill_auto_break_inside_avoid(assert_pixels): > assert_pixels(''' RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR _________ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ ''', '''
ade ade
ab
ade ab
ab
''') tests/draw/test_footnote_column.py:87: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_footnote_column_p_after _________________________ assert_pixels = . at 0x3fab443ed0> @assert_no_logs def test_footnote_column_p_after(assert_pixels): > assert_pixels(''' RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR KK__KK___ KK__KK___ _________ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ KK__KK___ KK__KK___ _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', '''
ade ade ab ab

a a a a

''') tests/draw/test_footnote_column.py:132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_footnote_column_p_before _________________________ assert_pixels = . at 0x3fb18fde80> @assert_no_logs def test_footnote_column_p_before(assert_pixels): > assert_pixels(''' KKKK_____ KKKK_____ RRRR_RRRR RRRR_RRRR RRRR_RR__ RRRR_RR__ _________ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRR_RR__ RRRR_RR__ _________ _________ _________ _________ _________ _________ _________ _________ _________ _________ _________ ''', '''

ab

ade ade ade a ab a
''') tests/draw/test_footnote_column.py:180: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_footnote_column_3 ____________________________ assert_pixels = . at 0x3fb18fd4e0> @assert_no_logs def test_footnote_column_3(assert_pixels): > assert_pixels(''' RRRR_RRRR_RRRR RRRR_RRRR_RRRR ______________ RRRRRRRR______ RRRRRRRR______ RRRR_RRRR_____ RRRR_RRRR_____ ______________ ______________ ______________ ''', '''
ab ab ade ab ab
''') tests/draw/test_footnote_column.py:234: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_footnote_column_3_p_before ________________________ assert_pixels = . at 0x3fb1934250> @assert_no_logs def test_footnote_column_3_p_before(assert_pixels): > assert_pixels(''' KKKK__________ KKKK__________ RRRR_RRRR_RRRR RRRR_RRRR_RRRR RRRR_RRRR_RRRR RRRR_RRRR_RRRR ______________ RRRRRRRR______ RRRRRRRR______ RRRR_RRRR_____ RRRR_RRRR_____ ______________ ______________ ______________ ______________ ______________ RRRRRRRR______ RRRRRRRR______ ''', '''

ab

ab ab ade ab ab ab ade ab
''') tests/draw/test_footnote_column.py:269: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________ test_footnote_column_clone_decoration _____________________ assert_pixels = . at 0x3fb1934f60> @assert_no_logs def test_footnote_column_clone_decoration(assert_pixels): > assert_pixels(''' _________ RRRR_RRRR RRRR_RRRR _________ _________ RRRRRRRR_ RRRRRRRR_ _________ RRRR_RRRR RRRR_RRRR _________ _________ _________ _________ ''', '''
ade ab ab ab
''') tests/draw/test_footnote_column.py:313: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_footnote_column_max_height ________________________ assert_pixels = . at 0x3fb1936980> @assert_no_logs def test_footnote_column_max_height(assert_pixels): > assert_pixels(''' RRRR_RRRR RRRR_RRRR RRRR_RRRR RRRR_RRRR _________ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRRRRRR_ RRRR_RRRR RRRR_RRRR _________ _________ _________ _________ _________ RRRRRRRR_ RRRRRRRR_ ''', '''
ade ade ade ab ab ab
''') tests/draw/test_footnote_column.py:352: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_linear_gradients_1 ____________________________ assert_pixels = . at 0x3fb17c0930> @assert_no_logs def test_linear_gradients_1(assert_pixels): > assert_pixels(''' _____ _____ _____ BBBBB BBBBB RRRRR RRRRR RRRRR RRRRR ''', '''
''' % filename) tests/draw/test_image.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_images[pattern.png-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] _ assert_pixels = . at 0x3fb18fde80> filename = 'pattern.png' image = '\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n' @assert_no_logs @pytest.mark.parametrize(('filename', 'image'), [ ('pattern.svg', centered_image), ('pattern.png', centered_image), ('pattern.palette.png', centered_image), ('pattern.gif', centered_image), ('blue.jpg', blue_image) ]) def test_images(assert_pixels, filename, image): > assert_pixels(image, '''
''' % filename) tests/draw/test_image.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_images[pattern.palette.png-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] _ assert_pixels = . at 0x3fb18fdfe0> filename = 'pattern.palette.png' image = '\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n' @assert_no_logs @pytest.mark.parametrize(('filename', 'image'), [ ('pattern.svg', centered_image), ('pattern.png', centered_image), ('pattern.palette.png', centered_image), ('pattern.gif', centered_image), ('blue.jpg', blue_image) ]) def test_images(assert_pixels, filename, image): > assert_pixels(image, '''
''' % filename) tests/draw/test_image.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_images[pattern.gif-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] _ assert_pixels = . at 0x3fb1937270> filename = 'pattern.gif' image = '\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n' @assert_no_logs @pytest.mark.parametrize(('filename', 'image'), [ ('pattern.svg', centered_image), ('pattern.png', centered_image), ('pattern.palette.png', centered_image), ('pattern.gif', centered_image), ('blue.jpg', blue_image) ]) def test_images(assert_pixels, filename, image): > assert_pixels(image, '''
''' % filename) tests/draw/test_image.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_images[blue.jpg-\n ________\n ________\n __aaaa__\n __aaaa__\n __aaaa__\n __aaaa__\n ________\n ________\n] _ assert_pixels = . at 0x3fb1935430> filename = 'blue.jpg' image = '\n ________\n ________\n __aaaa__\n __aaaa__\n __aaaa__\n __aaaa__\n ________\n ________\n' @assert_no_logs @pytest.mark.parametrize(('filename', 'image'), [ ('pattern.svg', centered_image), ('pattern.png', centered_image), ('pattern.palette.png', centered_image), ('pattern.gif', centered_image), ('blue.jpg', blue_image) ]) def test_images(assert_pixels, filename, image): > assert_pixels(image, '''
''' % filename) tests/draw/test_image.py:162: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_resized_images[pattern.svg] _______________________ assert_pixels = . at 0x3fb17c14e0> filename = 'pattern.svg' @assert_no_logs @pytest.mark.parametrize('filename', [ 'pattern.svg', 'pattern.png', 'pattern.palette.png', 'pattern.gif', ]) def test_resized_images(assert_pixels, filename): > assert_pixels(resized_image, '''
''' % filename) tests/draw/test_image.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_resized_images[pattern.png] _______________________ assert_pixels = . at 0x3fb19366c0> filename = 'pattern.png' @assert_no_logs @pytest.mark.parametrize('filename', [ 'pattern.svg', 'pattern.png', 'pattern.palette.png', 'pattern.gif', ]) def test_resized_images(assert_pixels, filename): > assert_pixels(resized_image, '''
''' % filename) tests/draw/test_image.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________ test_resized_images[pattern.palette.png] ___________________ assert_pixels = . at 0x3fab4c45c0> filename = 'pattern.palette.png' @assert_no_logs @pytest.mark.parametrize('filename', [ 'pattern.svg', 'pattern.png', 'pattern.palette.png', 'pattern.gif', ]) def test_resized_images(assert_pixels, filename): > assert_pixels(resized_image, '''
''' % filename) tests/draw/test_image.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_resized_images[pattern.gif] _______________________ assert_pixels = . at 0x3fb18ff1c0> filename = 'pattern.gif' @assert_no_logs @pytest.mark.parametrize('filename', [ 'pattern.svg', 'pattern.png', 'pattern.palette.png', 'pattern.gif', ]) def test_resized_images(assert_pixels, filename): > assert_pixels(resized_image, '''
''' % filename) tests/draw/test_image.py:179: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_image_overflow ______________________________ assert_pixels = . at 0x3fb18fc930> @assert_no_logs def test_image_overflow(assert_pixels): > assert_pixels(centered_image_overflow, '''
''') tests/draw/test_image.py:191: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_svg_sizing[None-None-None] ________________________ assert_pixels = . at 0x3fb17c0720> viewbox = None, width = None, height = None @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_svg_sizing[None-4-None] _________________________ assert_pixels = . at 0x3fb17c1c70> viewbox = None, width = 4, height = None @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_svg_sizing[None-None-4] _________________________ assert_pixels = . at 0x3fb18a6400> viewbox = None, width = None, height = 4 @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_svg_sizing[None-4-4] ___________________________ assert_pixels = . at 0x3fb19375e0> viewbox = None, width = 4, height = 4 @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_svg_sizing[0 0 4 4-4-None] ________________________ assert_pixels = . at 0x3fb17c2da0> viewbox = '0 0 4 4', width = 4, height = None @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_svg_sizing[0 0 4 4-None-4] ________________________ assert_pixels = . at 0x3fb17c1e80> viewbox = '0 0 4 4', width = None, height = 4 @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_svg_sizing[0 0 4 4-4-4] _________________________ assert_pixels = . at 0x3fb17c3740> viewbox = '0 0 4 4', width = 4, height = 4 @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height'), [ (None, None, None), (None, 4, None), (None, None, 4), (None, 4, 4), ('0 0 4 4', 4, None), ('0 0 4 4', None, 4), ('0 0 4 4', 4, 4), ]) def test_svg_sizing(assert_pixels, viewbox, width, height): > assert_pixels(centered_image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________ test_svg_sizing_percentage[style="width: 100%; height: 100%"] _________ assert_pixels = . at 0x3fb1820460> attributes = 'style="width: 100%; height: 100%"' @assert_no_logs @pytest.mark.parametrize('attributes', [ 'style="width: 100%; height: 100%"', 'width="100%" height="100%"', ]) def test_svg_sizing_percentage(assert_pixels, attributes): > assert_pixels(centered_image, '''
''' % attributes) tests/draw/test_image.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________ test_svg_sizing_percentage[width="100%" height="100%"] ____________ assert_pixels = . at 0x3fb17c3ed0> attributes = 'width="100%" height="100%"' @assert_no_logs @pytest.mark.parametrize('attributes', [ 'style="width: 100%; height: 100%"', 'width="100%" height="100%"', ]) def test_svg_sizing_percentage(assert_pixels, attributes): > assert_pixels(centered_image, '''
''' % attributes) tests/draw/test_image.py:231: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[None-None-None-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb17c0f60> viewbox = None, width = None, height = None image = '\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[None-8-None-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb17c3950> viewbox = None, width = 8, height = None image = '\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[None-None-8-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb17c2f00> viewbox = None, width = None, height = 8 image = '\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[None-8-8-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb1820040> viewbox = None, width = 8, height = 8 image = '\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[0 0 4 4-None-None-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb1821a60> viewbox = '0 0 4 4', width = None, height = None image = '\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[0 0 4 4-8-None-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb18fd850> viewbox = '0 0 4 4', width = 8, height = None image = '\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[0 0 4 4-None-8-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb17c05c0> viewbox = '0 0 4 4', width = None, height = 8 image = '\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_svg_resizing[0 0 4 4-8-8-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] _ assert_pixels = . at 0x3fb17c37f0> viewbox = '0 0 4 4', width = 8, height = 8 image = '\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n' @assert_no_logs @pytest.mark.parametrize(('viewbox', 'width', 'height', 'image'), [ (None, None, None, small_resized_image), (None, 8, None, small_resized_image), (None, None, 8, small_resized_image), (None, 8, 8, small_resized_image), ('0 0 4 4', None, None, resized_image), ('0 0 4 4', 8, None, resized_image), ('0 0 4 4', None, 8, resized_image), ('0 0 4 4', 8, 8, resized_image), ]) def test_svg_resizing(assert_pixels, viewbox, width, height, image): > assert_pixels(image, ''' ''' % ( f'width="{width}"' if width else '', f'height="{height}px"' if height else '', f'viewbox="{viewbox}"' if viewbox else '')) tests/draw/test_image.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_images_block _______________________________ assert_pixels = . at 0x3fb1823530> @assert_no_logs def test_images_block(assert_pixels): > assert_pixels(centered_image, '''
''') tests/draw/test_image.py:274: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_images_not_found _____________________________ assert_pixels = . at 0x3fb1820040> @assert_no_logs def test_images_not_found(assert_pixels): with capture_logs() as logs: > assert_pixels(no_image, '''
''') tests/draw/test_image.py:286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure ERROR weasyprint:images.py:336 Failed to load image at 'file:///build/python-weasyprint/src/python-weasyprint/tests/resources/inexistent1.png': URLError: DEBUG weasyprint:images.py:337 Error while loading image: Traceback (most recent call last): File "/usr/lib/python3.14/urllib/request.py", line 1470, in open_local_file stats = os.stat(localfile) FileNotFoundError: [Errno 2] No such file or directory: '/build/python-weasyprint/src/python-weasyprint/tests/resources/inexistent1.png' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 426, in fetch resource = url_fetcher(url) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 333, in __call__ return self.fetch(url) ~~~~~~~~~~^^^^^ File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 307, in fetch response = super().open(http_request, timeout=self._timeout) File "/usr/lib/python3.14/urllib/request.py", line 487, in open response = self._open(req, data) File "/usr/lib/python3.14/urllib/request.py", line 504, in _open result = self._call_chain(self.handle_open, protocol, protocol + '_open', req) File "/usr/lib/python3.14/urllib/request.py", line 464, in _call_chain result = func(*args) File "/usr/lib/python3.14/urllib/request.py", line 1480, in open_local_file raise URLError(exp, exp.filename) urllib.error.URLError: During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 297, in get_image_from_uri with fetch(url_fetcher, url) as response: ~~~~~^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/contextlib.py", line 141, in __enter__ return next(self.gen) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 430, in fetch raise URLFetchingError(f'{type(exception).__name__}: {exception}') weasyprint.urls.URLFetchingError: URLError: INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_images_refused ______________________________ assert_pixels = . at 0x3fb18237f0> @assert_no_logs def test_images_refused(assert_pixels): with capture_logs() as logs: > assert_pixels(no_image, '''
''') tests/draw/test_image.py:301: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure ERROR weasyprint:images.py:336 Failed to load image at 'file:///build/python-weasyprint/src/python-weasyprint/tests/resources/dangerous.eps': DEBUG weasyprint:images.py:337 Error while loading image: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 329, in get_image_from_uri image = RasterImage( pillow_image, image_id, bytestring, response.path, cache, orientation, options) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 85, in __init__ pillow_image.save(image_file, format='PNG', optimize=optimize) ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/site-packages/PIL/Image.py", line 2677, in save self._ensure_mutable() ~~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.14/site-packages/PIL/Image.py", line 727, in _ensure_mutable self._copy() ~~~~~~~~~~^^ File "/usr/lib/python3.14/site-packages/PIL/Image.py", line 721, in _copy self.load() ~~~~~~~~~^^ File "/usr/lib/python3.14/site-packages/PIL/EpsImagePlugin.py", line 411, in load self.im = Ghostscript(self.tile, self.size, self.fp, scale, transparency) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/site-packages/PIL/EpsImagePlugin.py", line 79, in Ghostscript raise OSError(msg) OSError: Unable to locate Ghostscript on paths The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 333, in get_image_from_uri raise ImageLoadingError from raster_exception weasyprint.images.ImageLoadingError INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_images_no_src ______________________________ assert_pixels = . at 0x3fb17c35e0> @assert_no_logs def test_images_no_src(assert_pixels): > assert_pixels(no_image, '''
''') tests/draw/test_image.py:315: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_images_alt ________________________________ assert_same_renderings = . at 0x3fb17c19b0> @assert_no_logs def test_images_alt(assert_same_renderings): with capture_logs() as logs: documents = ( '''
%s
''' % html for html in ( 'Hello', 'Hello', 'Hello', 'Hello', )) > assert_same_renderings(*documents) tests/draw/test_image.py:340: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_images_repeat_transparent ________________________ assert_pixels = . at 0x3fb1823740> @assert_no_logs def test_images_repeat_transparent(assert_pixels): # Regression test for #1440. > assert_pixels('_\n_\n_', '''
''') tests/draw/test_image.py:349: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_images_no_width _____________________________ assert_pixels = . at 0x3fb1821900> @assert_no_logs def test_images_no_width(assert_pixels): > assert_pixels(no_image, '''
not shown
''') tests/draw/test_image.py:359: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_images_no_height _____________________________ assert_pixels = . at 0x3fb18235e0> @assert_no_logs def test_images_no_height(assert_pixels): > assert_pixels(no_image, '''
not shown
''') tests/draw/test_image.py:370: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_images_no_width_height __________________________ assert_pixels = . at 0x3fb18221f0> @assert_no_logs def test_images_no_width_height(assert_pixels): > assert_pixels(no_image, '''
not shown
''') tests/draw/test_image.py:381: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_images_page_break ____________________________ assert_pixels = . at 0x3fb18224b0> @assert_no_logs def test_images_page_break(assert_pixels): > assert_pixels(page_break, '''
''') tests/draw/test_image.py:392: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_image_repeat_inline ___________________________ assert_pixels = . at 0x3fb1822350> @assert_no_logs def test_image_repeat_inline(assert_pixels): # Regression test for #808. > assert_pixels(table, '''
''') tests/draw/test_image.py:404: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_image_repeat_block ____________________________ assert_pixels = . at 0x3fb17c2da0> @assert_no_logs def test_image_repeat_block(assert_pixels): # Regression test for #808. > assert_pixels(table, '''
''') tests/draw/test_image.py:427: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_images_padding ______________________________ assert_pixels = . at 0x3fb18449e0> @assert_no_logs def test_images_padding(assert_pixels): # Regression test. > assert_pixels(centered_image, '''
''') tests/draw/test_image.py:450: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_images_in_inline_block __________________________ assert_pixels = . at 0x3fb1844e00> @assert_no_logs def test_images_in_inline_block(assert_pixels): # Regression test. > assert_pixels(centered_image, '''

''') tests/draw/test_image.py:463: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_images_transparent_text _________________________ assert_pixels = . at 0x3fb1844b40> @assert_no_logs def test_images_transparent_text(assert_pixels): # Regression test for #2131. > assert_pixels(centered_image, '''
123
''') tests/draw/test_image.py:476: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_images_shared_pattern __________________________ assert_pixels = . at 0x3fb1823480> @assert_no_logs def test_images_shared_pattern(assert_pixels): # The same image is used in a repeating background, # then in a non-repating . # If Pattern objects are shared carelessly, the image will be repeated. > assert_pixels(''' ____________ ____________ __aaaaaaaa__ __aaaaaaaa__ ____________ __aaaa______ __aaaa______ __aaaa______ __aaaa______ ____________ ____________ ____________ ''', '''
''') tests/draw/test_image.py:490: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_image_resolution _____________________________ assert_same_renderings = . at 0x3fb1821900> @assert_no_logs def test_image_resolution(assert_same_renderings): > assert_same_renderings( '''
''', '''
''', '''
''', '''
''', ) tests/draw/test_image.py:516: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_image_cover _______________________________ assert_pixels = . at 0x3fb18457a0> @assert_no_logs def test_image_cover(assert_pixels): > assert_pixels(cover_image, ''' ''') tests/draw/test_image.py:544: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_image_contain ______________________________ assert_pixels = . at 0x3fb1845590> @assert_no_logs def test_image_contain(assert_pixels): > assert_pixels(centered_image, ''' ''') tests/draw/test_image.py:555: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_image_none ________________________________ assert_pixels = . at 0x3fb1844eb0> @assert_no_logs def test_image_none(assert_pixels): > assert_pixels(centered_image, ''' ''') tests/draw/test_image.py:566: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_image_scale_down _____________________________ assert_pixels = . at 0x3fb1846400> @assert_no_logs def test_image_scale_down(assert_pixels): > assert_pixels(centered_image, ''' ''') tests/draw/test_image.py:577: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_image_position ______________________________ assert_pixels = . at 0x3fb1823530> @assert_no_logs def test_image_position(assert_pixels): > assert_pixels(centered_image, ''' ''') tests/draw/test_image.py:588: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_images_border ______________________________ assert_pixels = . at 0x3fb18450c0> @assert_no_logs def test_images_border(assert_pixels): > assert_pixels(border_image, '''
''') tests/draw/test_image.py:600: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_images_border_absolute __________________________ assert_pixels = . at 0x3fb1847a00> @assert_no_logs def test_images_border_absolute(assert_pixels): > assert_pixels(border_image, '''
''') tests/draw/test_image.py:611: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_image_exif ________________________________ assert_same_renderings = . at 0x3fb1845590> @assert_no_logs def test_image_exif(assert_same_renderings): > assert_same_renderings( ''' ''', ''' ''', tolerance=25, ) tests/draw/test_image.py:622: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________ test_image_exif_image_orientation _______________________ assert_same_renderings = . at 0x3fb1694040> @assert_no_logs def test_image_exif_image_orientation(assert_same_renderings): > assert_same_renderings( ''' ''', ''' ''', tolerance=25, ) tests/draw/test_image.py:637: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________ test_image_after_alpha[1px solid #1111-pattern.svg] ______________ assert_pixels = . at 0x3fb1729010> filename = 'pattern.svg', border = '1px solid #1111' @assert_no_logs @pytest.mark.parametrize('filename', ['pattern.svg', 'pattern.png']) @pytest.mark.parametrize('border', ['1px solid #1111', '1px dotted #1111']) def test_image_after_alpha(assert_pixels, filename, border): > assert_pixels(centered_image, '''
''' % (border, filename)) tests/draw/test_image.py:667: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________ test_image_after_alpha[1px solid #1111-pattern.png] ______________ assert_pixels = . at 0x3fb1823480> filename = 'pattern.png', border = '1px solid #1111' @assert_no_logs @pytest.mark.parametrize('filename', ['pattern.svg', 'pattern.png']) @pytest.mark.parametrize('border', ['1px solid #1111', '1px dotted #1111']) def test_image_after_alpha(assert_pixels, filename, border): > assert_pixels(centered_image, '''
''' % (border, filename)) tests/draw/test_image.py:667: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________ test_image_after_alpha[1px dotted #1111-pattern.svg] _____________ assert_pixels = . at 0x3fb1847c10> filename = 'pattern.svg', border = '1px dotted #1111' @assert_no_logs @pytest.mark.parametrize('filename', ['pattern.svg', 'pattern.png']) @pytest.mark.parametrize('border', ['1px solid #1111', '1px dotted #1111']) def test_image_after_alpha(assert_pixels, filename, border): > assert_pixels(centered_image, '''
''' % (border, filename)) tests/draw/test_image.py:667: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________ test_image_after_alpha[1px dotted #1111-pattern.png] _____________ assert_pixels = . at 0x3fb1847480> filename = 'pattern.png', border = '1px dotted #1111' @assert_no_logs @pytest.mark.parametrize('filename', ['pattern.svg', 'pattern.png']) @pytest.mark.parametrize('border', ['1px solid #1111', '1px dotted #1111']) def test_image_after_alpha(assert_pixels, filename, border): > assert_pixels(centered_image, '''
''' % (border, filename)) tests/draw/test_image.py:667: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_leader_simple ______________________________ assert_pixels = . at 0x3fb1729170> @assert_no_logs def test_leader_simple(assert_pixels): > assert_pixels(''' RR__BBBBBBBB__BB RR__BBBBBBBB__BB RRRR__BBBB__BBBB RRRR__BBBB__BBBB RR__BBBB__BBBBBB RR__BBBB__BBBBBB ''', '''
a
bb
c
''') tests/draw/test_leader.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_leader_too_long _____________________________ assert_pixels = . at 0x3fb17294e0> @assert_no_logs def test_leader_too_long(assert_pixels): > assert_pixels(''' RRRRRRRRRR______ RRRRRRRRRR______ BBBBBBBBBBBB__BB BBBBBBBBBBBB__BB RR__RR__RR__RR__ RR__RR__RR__RR__ RR__RR__RR______ RR__RR__RR______ BBBBBBBBBB__BBBB BBBBBBBBBB__BBBB RR__RR__RR__RR__ RR__RR__RR__RR__ RR__BBBB__BBBBBB RR__BBBB__BBBBBB ''', '''
aaaaa
a a a a a a a
a a a a a
''') tests/draw/test_leader.py:43: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_leader_alone _______________________________ assert_pixels = . at 0x3fb15a4040> @assert_no_logs def test_leader_alone(assert_pixels): > assert_pixels(''' RRBBBBBBBBBBBBBB RRBBBBBBBBBBBBBB ''', '''
a
''') tests/draw/test_leader.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_leader_content ______________________________ assert_pixels = . at 0x3fb15a4670> @assert_no_logs def test_leader_content(assert_pixels): > assert_pixels(''' RR____BB______BB RR____BB______BB ''', '''
a
''') tests/draw/test_leader.py:109: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_leader_in_inline _____________________________ assert_pixels = . at 0x3fb172b110> @assert_no_logs def test_leader_in_inline(assert_pixels): > assert_pixels(''' RR__GGBBBBBB__RR RR__GGBBBBBB__RR ''', '''
a a a
''') tests/draw/test_leader.py:204: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_leader_simple_rtl ____________________________ assert_pixels = . at 0x3fb1847480> @assert_no_logs def test_leader_simple_rtl(assert_pixels): > assert_pixels(''' BB__BBBBBBBB__RR BB__BBBBBBBB__RR BBBB__BBBB__RRRR BBBB__BBBB__RRRR BBBBBB__BBBB__RR BBBBBB__BBBB__RR ''', '''
a
bb
c
''') tests/draw/test_leader.py:260: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_leader_too_long_rtl ___________________________ assert_pixels = . at 0x3fb15a4d50> @assert_no_logs def test_leader_too_long_rtl(assert_pixels): > assert_pixels(''' ______RRRRRRRRRR ______RRRRRRRRRR BB__BBBBBBBBBBBB BB__BBBBBBBBBBBB __RR__RR__RR__RR __RR__RR__RR__RR ______RR__RR__RR ______RR__RR__RR BBBB__BBBBBBBBBB BBBB__BBBBBBBBBB __RR__RR__RR__RR __RR__RR__RR__RR BBBBBB__BBBB__RR BBBBBB__BBBB__RR ''', '''
aaaaa
a a a a a a a
a a a a a
''') tests/draw/test_leader.py:295: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_leader_float_leader ___________________________ assert_pixels = . at 0x3fb15a4e00> @assert_no_logs def test_leader_float_leader(assert_pixels): # Regression test for #1409. # Leaders in floats are not displayed at all in many cases with the current # implementation, and this case is not really specified. So… > assert_pixels(''' RR____________BB RR____________BB RRRR__________BB RRRR__________BB RR____________BB RR____________BB ''', '''
a
bb
c
''') tests/draw/test_leader.py:341: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_leader_empty_string ___________________________ assert_pixels = . at 0x3fb15a4a90> @assert_no_logs def test_leader_empty_string(assert_pixels): > assert_pixels(''' RRRR____ ________ ''', '''
aaaa
''') tests/draw/test_leader.py:373: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_leader_zero_width_string _________________________ assert_pixels = . at 0x3fb15a6610> @assert_no_logs def test_leader_zero_width_string(assert_pixels): > assert_pixels(''' RRRR____ ________ ''', '''
aaaa
''') tests/draw/test_leader.py:398: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_leader_absolute _____________________________ assert_pixels = . at 0x3fb15d4040> @assert_no_logs def test_leader_absolute(assert_pixels): > assert_pixels(''' BBBBRRRR ______GG ''', '''
aa
bb
aa
''') tests/draw/test_leader.py:423: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_leader_padding ______________________________ assert_pixels = . at 0x3fb15d49e0> @assert_no_logs def test_leader_padding(assert_pixels): > assert_pixels(''' RR__BBBBBBBB__BB RR__BBBBBBBB__BB __RR__BBBB__BBBB __RR__BBBB__BBBB ''', '''
a
b
''') tests/draw/test_leader.py:454: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_leader_inline_padding __________________________ assert_pixels = . at 0x3fb15d52d0> @assert_no_logs def test_leader_inline_padding(assert_pixels): > assert_pixels(''' RR__BBBBBBBB__BB RR__BBBBBBBB__BB __RR__BBBB__BBBB __RR__BBBB__BBBB ''', '''
a
b
''') tests/draw/test_leader.py:487: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_leader_margin ______________________________ assert_pixels = . at 0x3fb15d5170> @assert_no_logs def test_leader_margin(assert_pixels): > assert_pixels(''' RR__BBBBBBBB__BB RR__BBBBBBBB__BB __RR__BBBB__BBBB __RR__BBBB__BBBB ''', '''
a
b
''') tests/draw/test_leader.py:520: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_leader_inline_margin ___________________________ assert_pixels = . at 0x3fb15a7e20> @assert_no_logs def test_leader_inline_margin(assert_pixels): > assert_pixels(''' RR__BBBBBBBB__BB RR__BBBBBBBB__BB __RR__BBBB__BBBB __RR__BBBB__BBBB ''', '''
a
b
''') tests/draw/test_leader.py:553: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_list_style_image[outside-\n ____________\n ____________\n ___rBBB_____\n ___BBBB_____\n ___BBBB_____\n ___BBBB_____\n ____________\n ____________\n ____________\n ____________\n ] _ assert_pixels = . at 0x3fb15a7950> position = 'outside' pixels = '\n ____________\n ____________\n ___rBBB_____\n ___BBBB_____\n ___BBBB_____\n ___BBBB_____\n ____________\n ____________\n ____________\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('position', 'pixels'), [ ('outside', # ++++++++++++++ ++++
  • horizontal margins: 7px 2px # ######
  • width: 12 - 7 - 2 = 3px # -- list marker margin: 0.5em = 2px # ******** list marker image is 4px wide ''' ____________ ____________ ___rBBB_____ ___BBBB_____ ___BBBB_____ ___BBBB_____ ____________ ____________ ____________ ____________ '''), ('inside', # ++++++++++++++ ++++
  • horizontal margins: 7px 2px # ######
  • width: 12 - 7 - 2 = 3px # ******** list marker image is 4px wide: overflow ''' ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ____________ ____________ ____________ ''') ]) def test_list_style_image(assert_pixels, position, pixels): > assert_pixels(pixels, '''
    ''' % (SANS_FONTS, position)) tests/draw/test_list.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_list_style_image[inside-\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ____________\n ____________\n ____________\n ] _ assert_pixels = . at 0x3fb15a6350> position = 'inside' pixels = '\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ____________\n ____________\n ____________\n ' @assert_no_logs @pytest.mark.parametrize(('position', 'pixels'), [ ('outside', # ++++++++++++++ ++++
  • horizontal margins: 7px 2px # ######
  • width: 12 - 7 - 2 = 3px # -- list marker margin: 0.5em = 2px # ******** list marker image is 4px wide ''' ____________ ____________ ___rBBB_____ ___BBBB_____ ___BBBB_____ ___BBBB_____ ____________ ____________ ____________ ____________ '''), ('inside', # ++++++++++++++ ++++
  • horizontal margins: 7px 2px # ######
  • width: 12 - 7 - 2 = 3px # ******** list marker image is 4px wide: overflow ''' ____________ ____________ _______rBBB_ _______BBBB_ _______BBBB_ _______BBBB_ ____________ ____________ ____________ ____________ ''') ]) def test_list_style_image(assert_pixels, position, pixels): > assert_pixels(pixels, '''
    ''' % (SANS_FONTS, position)) tests/draw/test_list.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_list_style_image_none __________________________ assert_pixels = . at 0x3fb15a4930> @assert_no_logs def test_list_style_image_none(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ __________ __________ __________ __________ __________ __________ ''', '''
    • ''' % (SANS_FONTS,)) tests/draw/test_list.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_one_note _________________________________ assert_pixels = . at 0x3fb1847ed0> @assert_no_logs def test_one_note(assert_pixels): > assert_pixels(''' BBBBBBBBBB BBBBBBBBBB RRRRRRRR__ RRRRRRRR__ ''', '''
      abcde
      ''') tests/draw/test_note.py:10: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_several_note _______________________________ assert_pixels = . at 0x3fb15a5f30> @assert_no_logs def test_several_note(assert_pixels): > assert_pixels(''' BBBBBBBBBB______ BBBBBBBBBB______ BBBBBBBBBB______ BBBBBBBBBB______ RRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRR ''', '''
      abcdefghij
      ''') tests/draw/test_note.py:40: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_inline_note _______________________________ assert_pixels = . at 0x3fb172a820> @assert_no_logs def test_inline_note(assert_pixels): > assert_pixels(''' BBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBB RRRRRRRRRRRRRRRR____ RRRRRRRRRRRRRRRR____ ''', '''
      abcdefghij
      ''') tests/draw/test_note.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_absolute_note ______________________________ assert_pixels = . at 0x3fb15d68d0> @assert_no_logs def test_absolute_note(assert_pixels): > assert_pixels(''' RRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRR ________________ ________________ ______RRRRRRRRRR ______RRRRRRRRRR ______RRRRRRRRRR ______RRRRRRRRRR ''', '''
      abcdefghij
      ''') tests/draw/test_note.py:103: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_float_left_note _____________________________ assert_pixels = . at 0x3fb15d4f60> @assert_no_logs def test_float_left_note(assert_pixels): > assert_pixels(''' BBBBBBBBRRRRRRBB BBBBBBBBRRRRRRBB BBBBBBBBRRRRRRBB BBBBBBBBRRRRRRBB ''', '''
      abcd fghi
      ''') tests/draw/test_note.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_float_right_note _____________________________ assert_pixels = . at 0x3fb15d4670> @assert_no_logs def test_float_right_note(assert_pixels): > assert_pixels(''' RRRRRRBBBBBBBBBB RRRRRRBBBBBBBBBB RRRRRRBBBBBBBBBB RRRRRRBBBBBBBBBB ''', '''
      abcd fghi
      ''') tests/draw/test_note.py:171: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_float_left_margin_note __________________________ assert_pixels = . at 0x3fb1634f60> @assert_no_logs def test_float_left_margin_note(assert_pixels): > assert_pixels(''' ________________________ ________________________ __BBBBBBBB______________ __BBBBBBBB______________ __BBBBBBBB__RRRRRRBB____ __BBBBBBBB__RRRRRRBB____ ____________RRRRRRBB____ ____________RRRRRRBB____ ____RRRRRRRRRR__________ ____RRRRRRRRRR__________ ________________________ ________________________ ________________________ ________________________ ''', '''
      abcd fghi jklmn
      ''') tests/draw/test_note.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_flex_note ________________________________ assert_pixels = . at 0x3fb16352d0> @assert_no_logs def test_flex_note(assert_pixels): > assert_pixels(''' BBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBB RRRRRRBBRRRRRRBB RRRRRRBBRRRRRRBB ''', '''
      abcdfghi
      ''') tests/draw/test_note.py:246: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_grid_note ________________________________ assert_pixels = . at 0x3fb15d7530> @assert_no_logs def test_grid_note(assert_pixels): > assert_pixels(''' BBBBBBBB__BBBBBBBB BBBBBBBB__BBBBBBBB RRRRRRBBRRRRRRBB__ RRRRRRBBRRRRRRBB__ ''', '''
      abcdfghi
      ''') tests/draw/test_note.py:276: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_next_page_note ______________________________ assert_pixels = . at 0x3fb15d4bf0> @assert_no_logs def test_next_page_note(assert_pixels): > assert_pixels(''' BBBBBBBB________ BBBBBBBB________ BBBBBBBB________ BBBBBBBB________ RRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRR RRRRRRBBRRRRRRBB RRRRRRBBRRRRRRBB ________________ ________________ ________________ ________________ ''', '''
      aaaaaaaa abcdfghi
      ''') tests/draw/test_note.py:307: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_next_page_split_note ___________________________ assert_pixels = . at 0x3fb15d78a0> @assert_no_logs def test_next_page_split_note(assert_pixels): > assert_pixels(''' BBBBBBBB________ BBBBBBBB________ RRRRRRBB________ RRRRRRBB________ RRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRR BBBBBBBB________ BBBBBBBB________ RRRRRRRRRRRRRRRR RRRRRRRRRRRRRRRR RRRRRRBB________ RRRRRRBB________ ''', '''
      abcd aaaaaaaa aaaaaaaa fghi
      ''') tests/draw/test_note.py:344: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:125 Step 5 - Creating layout - Repagination #1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_opacity_zero _______________________________ assert_same_renderings = . at 0x3fb16361f0> @assert_no_logs def test_opacity_zero(assert_same_renderings): > assert_same_renderings( opacity_source % '
      ', opacity_source % '
      ', opacity_source % '
      ', ) tests/draw/test_opacity.py:15: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_opacity_normal_range ___________________________ assert_same_renderings = . at 0x3fb1635010> @assert_no_logs def test_opacity_normal_range(assert_same_renderings): > assert_same_renderings( opacity_source % '
      ', opacity_source % '
      ', opacity_source % '
      ', opacity_source % '
      ', ) tests/draw/test_opacity.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_opacity_nested ______________________________ assert_same_renderings = . at 0x3fb1634250> @assert_no_logs def test_opacity_nested(assert_same_renderings): > assert_same_renderings( opacity_source % '
      ', opacity_source % '
      ', opacity_source % '''
      ''', # 0.9 * 0.666666 == 0.6 ) tests/draw/test_opacity.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_opacity_percent_clamp_down ________________________ assert_same_renderings = . at 0x3fb1636da0> @assert_no_logs def test_opacity_percent_clamp_down(assert_same_renderings): > assert_same_renderings( opacity_source % '
      ', opacity_source % '
      ', opacity_source % '
      ', ) tests/draw/test_opacity.py:47: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_opacity_percent_clamp_up _________________________ assert_same_renderings = . at 0x3fb16375e0> @assert_no_logs def test_opacity_percent_clamp_up(assert_same_renderings): > assert_same_renderings( opacity_source % '
      ', opacity_source % '
      ', opacity_source % '
      ', ) tests/draw/test_opacity.py:56: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_opacity_black ______________________________ assert_same_renderings = . at 0x3fb14345c0> @assert_no_logs def test_opacity_black(assert_same_renderings): # Regression test for #2302. > assert_same_renderings( opacity_source % 'ab', opacity_source % 'ab', ) tests/draw/test_opacity.py:66: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_overflow_1 ________________________________ assert_pixels = . at 0x3fb16371c0> @assert_no_logs def test_overflow_1(assert_pixels): # See test_images > assert_pixels(''' ________ ________ __rBBB__ __BBBB__ ________ ________ ________ ________ ''', '''
      ''') tests/draw/test_overflow.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_overflow_2 ________________________________ assert_pixels = . at 0x3fb1823b60> @assert_no_logs def test_overflow_2(assert_pixels): # is only 1px high, but its overflow is propageted to the viewport # ie. the padding edge of the page box. > assert_pixels(''' ________ ________ __rBBB__ __BBBB__ __BBBB__ ________ ________ ________ ''', '''
      ''') tests/draw/test_overflow.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_overflow_3 ________________________________ assert_pixels = . at 0x3fb1823110> @assert_no_logs def test_overflow_3(assert_pixels): # Assert that the border is not clipped by overflow: hidden > assert_pixels(''' ________ ________ __BBBB__ __B__B__ __B__B__ __BBBB__ ________ ________ ''', '''
      ''') tests/draw/test_overflow.py:53: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_overflow_4 ________________________________ assert_pixels = . at 0x3fb1821220> @assert_no_logs def test_overflow_4(assert_pixels): # Assert that the page margins aren't clipped by body's overflow > assert_pixels(''' rr______ rr______ __BBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ ''', ''' ''') tests/draw/test_overflow.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________________ test_overflow_5 ________________________________ assert_pixels = . at 0x3fb17c2610> @assert_no_logs def test_overflow_5(assert_pixels): # Regression test for #2026. > assert_pixels(''' BBBBBB__ BBBBBB__ BBBB____ BBBB____ BBBB____ ________ ________ ________ ''', '''

      abc

      ab
      ab
      ab
      ab

      ''') tests/draw/test_overflow.py:98: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_clip[1-5px, 5px, 9px, auto-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______rBBBrBg_\n ______BBBBBBg_\n ______BBBBBBg_\n ______BBBBBBg_\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb17c1170> number = 1, css = '5px, 5px, 9px, auto' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('number', 'css', 'pixels'), [ (1, '5px, 5px, 9px, auto', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBrBg_ ______BBBBBBg_ ______BBBBBBg_ ______BBBBBBg_ ______________ ______________ ______________ ______________ ______________ ______________ '''), (2, '5px, 5px, auto, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______ggggg___ ______________ ______________ ______________ '''), (3, '5px, auto, 9px, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ _grBBBrBBBr___ _gBBBBBBBBB___ _gBBBBBBBBB___ _gBBBBBBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), (4, 'auto, 5px, 9px, 10px', ''' ______________ ______ggggg___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_clip(assert_pixels, number, css, pixels): > assert_pixels(pixels, '''
      ''' % css) tests/draw/test_overflow.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_clip[2-5px, 5px, auto, 10px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______rBBBr___\n ______BBBBB___\n ______ggggg___\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fab4431c0> number = 2, css = '5px, 5px, auto, 10px' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______BBBBB___\n ______ggggg___\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('number', 'css', 'pixels'), [ (1, '5px, 5px, 9px, auto', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBrBg_ ______BBBBBBg_ ______BBBBBBg_ ______BBBBBBg_ ______________ ______________ ______________ ______________ ______________ ______________ '''), (2, '5px, 5px, auto, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______ggggg___ ______________ ______________ ______________ '''), (3, '5px, auto, 9px, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ _grBBBrBBBr___ _gBBBBBBBBB___ _gBBBBBBBBB___ _gBBBBBBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), (4, 'auto, 5px, 9px, 10px', ''' ______________ ______ggggg___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_clip(assert_pixels, number, css, pixels): > assert_pixels(pixels, '''
      ''' % css) tests/draw/test_overflow.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_clip[3-5px, auto, 9px, 10px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _grBBBrBBBr___\n _gBBBBBBBBB___\n _gBBBBBBBBB___\n _gBBBBBBBBB___\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb17c0b40> number = 3, css = '5px, auto, 9px, 10px' pixels = '\n ______________\n ______________\n ______________\n ______________\n ___________... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('number', 'css', 'pixels'), [ (1, '5px, 5px, 9px, auto', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBrBg_ ______BBBBBBg_ ______BBBBBBg_ ______BBBBBBg_ ______________ ______________ ______________ ______________ ______________ ______________ '''), (2, '5px, 5px, auto, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______ggggg___ ______________ ______________ ______________ '''), (3, '5px, auto, 9px, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ _grBBBrBBBr___ _gBBBBBBBBB___ _gBBBBBBBBB___ _gBBBBBBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), (4, 'auto, 5px, 9px, 10px', ''' ______________ ______ggggg___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_clip(assert_pixels, number, css, pixels): > assert_pixels(pixels, '''
      ''' % css) tests/draw/test_overflow.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_clip[4-auto, 5px, 9px, 10px-\n ______________\n ______ggggg___\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] _ assert_pixels = . at 0x3fb18fe770> number = 4, css = 'auto, 5px, 9px, 10px' pixels = '\n ______________\n ______ggggg___\n ______rBBBr___\n ______BBBBB___\n ______BBBBB... ______________\n ______________\n ______________\n ______________\n ______________\n ' @assert_no_logs @pytest.mark.parametrize(('number', 'css', 'pixels'), [ (1, '5px, 5px, 9px, auto', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBrBg_ ______BBBBBBg_ ______BBBBBBg_ ______BBBBBBg_ ______________ ______________ ______________ ______________ ______________ ______________ '''), (2, '5px, 5px, auto, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______ggggg___ ______________ ______________ ______________ '''), (3, '5px, auto, 9px, 10px', ''' ______________ ______________ ______________ ______________ ______________ ______________ _grBBBrBBBr___ _gBBBBBBBBB___ _gBBBBBBBBB___ _gBBBBBBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), (4, 'auto, 5px, 9px, 10px', ''' ______________ ______ggggg___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______rBBBr___ ______BBBBB___ ______BBBBB___ ______BBBBB___ ______________ ______________ ______________ ______________ ______________ ______________ '''), ]) def test_clip(assert_pixels, number, css, pixels): > assert_pixels(pixels, '''
      ''' % css) tests/draw/test_overflow.py:194: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_nth_page[2n-_R_R_R_R_R] _________________________ assert_pixels = . at 0x3fab4c6ae0> rule = '2n', pixels = '_R_R_R_R_R' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[even-_R_R_R_R_R] ________________________ assert_pixels = . at 0x3fb18a7110> rule = 'even', pixels = '_R_R_R_R_R' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[2n+1-R_R_R_R_R_] ________________________ assert_pixels = . at 0x3fb18a73d0> rule = '2n+1', pixels = 'R_R_R_R_R_' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[odd-R_R_R_R_R_] _________________________ assert_pixels = . at 0x3fb1634930> rule = 'odd', pixels = 'R_R_R_R_R_' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[2n+3-__R_R_R_R_] ________________________ assert_pixels = . at 0x3fab4c6c40> rule = '2n+3', pixels = '__R_R_R_R_' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_nth_page[n-RRRRRRRRRR] __________________________ assert_pixels = . at 0x3fb18fcca0> rule = 'n', pixels = 'RRRRRRRRRR' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[n-1-RRRRRRRRRR] _________________________ assert_pixels = . at 0x3fb18fdb10> rule = 'n-1', pixels = 'RRRRRRRRRR' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[-n+3-RRR_______] ________________________ assert_pixels = . at 0x3fb17c0a90> rule = '-n+3', pixels = 'RRR_______' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_nth_page[-2n+3-R_R_______] ________________________ assert_pixels = . at 0x3fb17c0930> rule = '-2n+3', pixels = 'R_R_______' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[-n-3-__________] ________________________ assert_pixels = . at 0x3fab4c6400> rule = '-n-3', pixels = '__________' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_nth_page[3-__R_______] __________________________ assert_pixels = . at 0x3fb1823270> rule = '3', pixels = '__R_______' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_nth_page[0n+0-__________] ________________________ assert_pixels = . at 0x3fb1636820> rule = '0n+0', pixels = '__________' @assert_no_logs @pytest.mark.parametrize(('rule', 'pixels'), [ ('2n', '_R_R_R_R_R'), ('even', '_R_R_R_R_R'), ('2n+1', 'R_R_R_R_R_'), ('odd', 'R_R_R_R_R_'), ('2n+3', '__R_R_R_R_'), ('n', 'RRRRRRRRRR'), ('n-1', 'RRRRRRRRRR'), ('-n+3', 'RRR_______'), ('-2n+3', 'R_R_______'), ('-n-3', '__________'), ('3', '__R_______'), ('0n+0', '__________'), ]) def test_nth_page(assert_pixels, rule, pixels): > assert_pixels('\n'.join(pixels), ''' ''' % rule + 10 * '

      ') tests/draw/test_page.py:24: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 3 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 4 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 5 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 6 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 7 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 8 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 9 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 10 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_1 _________________________________ assert_pixels = . at 0x3fb1634eb0> @assert_no_logs def test_tables_1(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_ssssss_ssssss__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__ssssss_s____s_ssssss__B_ _B_________s____s_________B_ _B__sssssssSssssS_ssssss__B_ _B__s______s____S_s____s__B_ _B__s______s____S_s____s__B_ _B__s______s____S_s____s__B_ _B__s______s____S_s____s__B_ _B__sssssssSSSSSS_ssssss__B_ _B________________________B_ _B__ssssss_ssssss_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__ssssss_ssssss_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:42: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_1_rtl _______________________________ assert_pixels = . at 0x3fb1636b90> @assert_no_logs def test_tables_1_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_ssssss_ssssss__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__s____s_s____s_s____s__B_ _B__ssssss_s____s_ssssss__B_ _B_________s____s_________B_ _B__ssssss_SssssSsssssss__B_ _B__s____s_S____s______s__B_ _B__s____s_S____s______s__B_ _B__s____s_S____s______s__B_ _B__s____s_S____s______s__B_ _B__ssssss_SSSSSSsssssss__B_ _B________________________B_ _B_________ssssss_ssssss__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________ssssss_ssssss__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl; } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:79: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_2 _________________________________ assert_pixels = . at 0x3fb1822cf0> @assert_no_logs def test_tables_2(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBB_________ _BBBBBBBBBBBBBBBBBB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BBsssss____sssssBB_________ _BB_________s____BB_________ _BB_________s____BB_________ _BB_________s____BB_________ _BB_________s____BB_________ _BBssssssssssssssBB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BB____s____s____BB_________ _BBBBBBBBBBBBBBBBBB_________ _BBBBBBBBBBBBBBBBBB_________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ''', tables_source % {'extra_css': ''' table { border: 2px solid #00f; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } '''}) tests/draw/test_table.py:117: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_2_rtl _______________________________ assert_pixels = . at 0x3fab442c40> @assert_no_logs def test_tables_2_rtl(assert_pixels): > assert_pixels(''' ____________________________ _________BBBBBBBBBBBBBBBBBB_ _________BBBBBBBBBBBBBBBBBB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BBsssss____sssssBB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BBssssssssssssssBB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BBBBBBBBBBBBBBBBBB_ _________BBBBBBBBBBBBBBBBBB_ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ''', tables_source % {'extra_css': ''' body { direction: rtl; } table { border: 2px solid #00f; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } '''}) tests/draw/test_table.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_3 _________________________________ assert_pixels = . at 0x3fb17c1fe0> @assert_no_logs def test_tables_3(assert_pixels): > assert_pixels(''' ____________________________ _tttttttttttttttttttttttttt_ _t________________________t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BBsssss____sssssBB_____t_ _t_BB_________s____BB_____t_ _t_BB_________s____BB_____t_ _t_BB_________s____BB_____t_ _t_BB_________s____BB_____t_ _t_BBssssssssssssssBB_____t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ____________________________ _tttttttttttttttttttttttttt_ _t_BBssssssssssssssBB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BB____s____s____BB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t_BBBBBBBBBBBBBBBBBB_____t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ''', tables_source % {'extra_css': ''' table { border: solid #00f; border-width: 8px 2px; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } @page { size: 28px 26px; margin: 1px; border: 1px solid rgba(0, 255, 0, 0.5); } '''}) tests/draw/test_table.py:193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_3_rtl _______________________________ assert_pixels = . at 0x3fb17c26c0> @assert_no_logs def test_tables_3_rtl(assert_pixels): > assert_pixels(''' ____________________________ _tttttttttttttttttttttttttt_ _t________________________t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BBsssss____sssssBB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BBssssssssssssssBB_t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ____________________________ _tttttttttttttttttttttttttt_ _t_____BBssssssssssssssBB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ''', tables_source % {'extra_css': ''' body { direction: rtl; } table { border: solid #00f; border-width: 8px 2px; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } @page { size: 28px 26px; margin: 1px; border: 1px solid rgba(0, 255, 0, 0.5); } '''}) tests/draw/test_table.py:257: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_4 _________________________________ assert_pixels = . at 0x3fb16368d0> @assert_no_logs def test_tables_4(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B_________ssssss_________B_ _B__sssssssSSSSSS_ssssss__B_ _B__sssssssSSSSSS_ssssss__B_ _B__sssssssSSSSSS_ssssss__B_ _B__sssssssSSSSSS_ssssss__B_ _B__sssssssSSSSSS_ssssss__B_ _B__sssssssSSSSSS_ssssss__B_ _B________________________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed } td { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:322: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_4_rtl _______________________________ assert_pixels = . at 0x3fb1634460> @assert_no_logs def test_tables_4_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B__ssssss_ssssss_ssssss__B_ _B_________ssssss_________B_ _B__ssssss_SSSSSSsssssss__B_ _B__ssssss_SSSSSSsssssss__B_ _B__ssssss_SSSSSSsssssss__B_ _B__ssssss_SSSSSSsssssss__B_ _B__ssssss_SSSSSSsssssss__B_ _B__ssssss_SSSSSSsssssss__B_ _B________________________B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl } td { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:359: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_5 _________________________________ assert_pixels = . at 0x3fb17c14e0> @assert_no_logs def test_tables_5(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B_________uuuuuu_________B_ _B__uuuuuuupppppp_uuuuuu__B_ _B__uuuuuuupppppp_uuuuuu__B_ _B__uuuuuuupppppp_uuuuuu__B_ _B__uuuuuuupppppp_uuuuuu__B_ _B__uuuuuuupppppp_uuuuuu__B_ _B__uuuuuuupppppp_uuuuuu__B_ _B________________________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B__ssssss_ssssss_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed } #tbody { background: rgba(0, 0, 255, 1) } tr { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_5_rtl _______________________________ assert_pixels = . at 0x3fb17c24b0> @assert_no_logs def test_tables_5_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B_________uuuuuu_________B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B__uuuuuu_ppppppuuuuuuu__B_ _B________________________B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B_________ssssss_ssssss__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl } #tbody { background: rgba(0, 0, 255, 1) } tr { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:434: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_6 _________________________________ assert_pixels = . at 0x3fb1635590> @assert_no_logs def test_tables_6(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B__uuuuuu_uuuuuu_ssssss__B_ _B_________uuuuuu_________B_ _B__uuuuuuupppppp_ssssss__B_ _B__uuuuuuupppppp_ssssss__B_ _B__uuuuuuupppppp_ssssss__B_ _B__uuuuuuupppppp_ssssss__B_ _B__uuuuuuupppppp_ssssss__B_ _B__uuuuuuupppppp_ssssss__B_ _B________________________B_ _B__uuuuuu_uuuuuu_________B_ _B__uuuuuu_uuuuuu_________B_ _B__uuuuuu_uuuuuu_________B_ _B__uuuuuu_uuuuuu_________B_ _B__uuuuuu_uuuuuu_________B_ _B__uuuuuu_uuuuuu_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed;} .colgroup { background: rgba(0, 0, 255, 1) } col { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:472: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_6_rtl _______________________________ assert_pixels = . at 0x3fb16361f0> @assert_no_logs def test_tables_6_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B__ssssss_uuuuuu_uuuuuu__B_ _B_________uuuuuu_________B_ _B__ssssss_ppppppuuuuuuu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B________________________B_ _B_________uuuuuu_uuuuuu__B_ _B_________uuuuuu_uuuuuu__B_ _B_________uuuuuu_uuuuuu__B_ _B_________uuuuuu_uuuuuu__B_ _B_________uuuuuu_uuuuuu__B_ _B_________uuuuuu_uuuuuu__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl } .colgroup { background: rgba(0, 0, 255, 1) } col { background: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_7 _________________________________ assert_pixels = . at 0x3fb15a71c0> @assert_no_logs def test_tables_7(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uuuuuu_uBBBBu_uuuuuu__B_ _B_________uBBBBu_________B_ _B__ssssssspuuuup_ssssss__B_ _B__s______uBBBBp_s____s__B_ _B__s______uBBBBp_s____s__B_ _B__s______uBBBBp_s____s__B_ _B__s______uBBBBp_s____s__B_ _B__ssssssspppppp_ssssss__B_ _B________________________B_ _B__ssssss_ssssss_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__s____s_s____s_________B_ _B__ssssss_ssssss_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed } #tbody tr:first-child { background: blue } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:548: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_7_rtl _______________________________ assert_pixels = . at 0x3fb15a6770> @assert_no_logs def test_tables_7_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_uuuuuu_uuuuuu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uBBBBu_uBBBBu_uBBBBu__B_ _B__uuuuuu_uBBBBu_uuuuuu__B_ _B_________uBBBBu_________B_ _B__ssssss_puuuupsssssss__B_ _B__s____s_pBBBBu______s__B_ _B__s____s_pBBBBu______s__B_ _B__s____s_pBBBBu______s__B_ _B__s____s_pBBBBu______s__B_ _B__ssssss_ppppppsssssss__B_ _B________________________B_ _B_________ssssss_ssssss__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________s____s_s____s__B_ _B_________ssssss_ssssss__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl } #tbody tr:first-child { background: blue } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:586: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_8 _________________________________ assert_pixels = . at 0x3fb17c2820> @assert_no_logs def test_tables_8(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__uuuuuu_ssssss_ssssss__B_ _B__uBBBBu_s____s_s____s__B_ _B__uBBBBu_s____s_s____s__B_ _B__uBBBBu_s____s_s____s__B_ _B__uBBBBu_s____s_s____s__B_ _B__uuuuuu_s____s_ssssss__B_ _B_________s____s_________B_ _B__uuuuuuupuuuup_ssssss__B_ _B__uBBBBBBuBBBBp_s____s__B_ _B__uBBBBBBuBBBBp_s____s__B_ _B__uBBBBBBuBBBBp_s____s__B_ _B__uBBBBBBuBBBBp_s____s__B_ _B__uuuuuuupppppp_ssssss__B_ _B________________________B_ _B__uuuuuu_ssssss_________B_ _B__uBBBBu_s____s_________B_ _B__uBBBBu_s____s_________B_ _B__uBBBBu_s____s_________B_ _B__uBBBBu_s____s_________B_ _B__uuuuuu_ssssss_________B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed } .colgroup col:first-child { background: blue } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:624: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_8_rtl _______________________________ assert_pixels = . at 0x3fb16368d0> @assert_no_logs def test_tables_8_rtl(assert_pixels): > assert_pixels(''' ____________________________ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ _B________________________B_ _B________________________B_ _B__ssssss_ssssss_uuuuuu__B_ _B__s____s_s____s_uBBBBu__B_ _B__s____s_s____s_uBBBBu__B_ _B__s____s_s____s_uBBBBu__B_ _B__s____s_s____s_uBBBBu__B_ _B__ssssss_s____s_uuuuuu__B_ _B_________s____s_________B_ _B__ssssss_puuuupuuuuuuu__B_ _B__s____s_pBBBBuBBBBBBu__B_ _B__s____s_pBBBBuBBBBBBu__B_ _B__s____s_pBBBBuBBBBBBu__B_ _B__s____s_pBBBBuBBBBBBu__B_ _B__ssssss_ppppppuuuuuuu__B_ _B________________________B_ _B_________ssssss_uuuuuu__B_ _B_________s____s_uBBBBu__B_ _B_________s____s_uBBBBu__B_ _B_________s____s_uBBBBu__B_ _B_________s____s_uBBBBu__B_ _B_________ssssss_uuuuuu__B_ _B________________________B_ _B________________________B_ _BBBBBBBBBBBBBBBBBBBBBBBBBB_ ____________________________ ''', tables_source % {'extra_css': ''' table { border-color: #00f; table-layout: fixed; direction: rtl } .colgroup col:first-child { background: blue } td { border-color: rgba(255, 0, 0, 0.5) } '''}) tests/draw/test_table.py:662: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_9 _________________________________ assert_pixels = . at 0x3fb1634a90> @assert_no_logs def test_tables_9(assert_pixels): > assert_pixels(''' ______________________ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ __R_____R____R_____R__ __R_____R____R_____R__ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ __R_____R____R_____R__ __RRRRRRRRRRRRRRRRRR__ ______________________ ______________________ ______________________ ______________________ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ __R_____R____R_____R__ __RRRRRRRRRRRRRRRRRR__ ______________________ ______________________ ______________________ ______________________ ______________________ ______________________ ______________________ ''', ''' ''') tests/draw/test_table.py:700: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_10 ________________________________ assert_pixels = . at 0x3fb15a5f30> @assert_no_logs def test_tables_10(assert_pixels): > assert_pixels(''' ______________________ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ __R_____R____R_____R__ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ ______________________ ______________________ ______________________ ______________________ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ __R_____R____R_____R__ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ ______________________ ______________________ ______________________ ______________________ ______________________ ''', '''
      ''') tests/draw/test_table.py:752: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_11 ________________________________ assert_pixels = . at 0x3fb15a7e20> @assert_no_logs def test_tables_11(assert_pixels): # Regression test for #82. > assert_pixels(''' ____________________ ________RRRRRRRRRRR_ ________R____R____R_ ________R____R____R_ ________R____R____R_ ________RRRRRRRRRRR_ ____________________ ____________________ ____________________ ____________________ ''', '''
      ''') tests/draw/test_table.py:803: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_12 ________________________________ assert_pixels = . at 0x3fb18475e0> @assert_no_logs def test_tables_12(assert_pixels): > assert_pixels(''' ____________________________ _________BBBBBBBBBBBBBBBBBB_ _________BBBBBBBBBBBBBBBBBB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BBsssss____sssssBB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BB____s_________BB_ _________BBssssssssssssssBB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BB____s____s____BB_ _________BBBBBBBBBBBBBBBBBB_ _________BBBBBBBBBBBBBBBBBB_ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ____________________________ ''', tables_source % {'extra_css': ''' body { direction: rtl } table { border: 2px solid #00f; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } '''}) tests/draw/test_table.py:827: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_13 ________________________________ assert_pixels = . at 0x3fb1635430> @assert_no_logs def test_tables_13(assert_pixels): > assert_pixels(''' ____________________________ _tttttttttttttttttttttttttt_ _t________________________t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BBsssss____sssssBB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BB____s_________BB_t_ _t_____BBssssssssssssssBB_t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ____________________________ _tttttttttttttttttttttttttt_ _t_____BBssssssssssssssBB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BB____s____s____BB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t_____BBBBBBBBBBBBBBBBBB_t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _t________________________t_ _tttttttttttttttttttttttttt_ ____________________________ ''', tables_source % {'extra_css': ''' body { direction: rtl } table { border: solid #00f; border-width: 8px 2px; table-layout: fixed; border-collapse: collapse } td { border-color: #ff7f7f } @page { size: 28px 26px; margin: 1px; border: 1px solid rgba(0, 255, 0, 0.5); } '''}) tests/draw/test_table.py:865: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_15 ________________________________ assert_pixels = . at 0x3fb15a5f30> @assert_no_logs def test_tables_15(assert_pixels): # Regression test for #1250. > assert_pixels(''' ______________________ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ __R_____R____R_____R__ __R_____R____R_____R__ __RRRRRRRRRRRRRRRRRR__ __R_____R____R_____R__ __R_____R____R_____R__ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ ______________________ ______________________ __RRRRRRRRRRRRRRRRRR__ __R________________R__ __R________________R__ __R________________R__ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBB____R____R____BBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ _BBBBBBBBBBBBBBBBBBBB_ ______________________ ______________________ ______________________ ______________________ ''', '''
      ''') tests/draw/test_table.py:995: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_16 ________________________________ assert_pixels = . at 0x3fb1845b10> @assert_no_logs def test_tables_16(assert_pixels): > assert_pixels(''' ____________________ _RRRRRRRRRRR________ _R____R____R________ _R____R____R________ _R____R_RRRRRRRRRRR_ _RRRRRRRRRRR_R____R_ ________R____R____R_ ________R____R____R_ ________RRRRRRRRRRR_ ____________________ ''', '''
      ''') tests/draw/test_table.py:1047: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_17 ________________________________ assert_pixels = . at 0x3fb1844880> @assert_no_logs def test_tables_17(assert_pixels): > assert_pixels(''' ________________ _RRRRRRRRRRRRRR_ _RRRRRRRRRRRRRR_ _RR____RR____RR_ _RR_BB_RR_BB_RR_ _RR_BB_RR_BB_RR_ _RR_BB_RR____RR_ _RR_BB_RR____RR_ _RR____RR____RR_ ________________ ________________ _RR_BB_RR____RR_ _RR_BB_RR____RR_ _RR_BB_RR____RR_ _RR_BB_RR____RR_ _RR____RR____RR_ _RRRRRRRRRRRRRR_ _RRRRRRRRRRRRRR_ ________________ ________________ ''', '''
      ''') tests/draw/test_table.py:1074: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_18 ________________________________ assert_pixels = . at 0x3fb17299b0> @assert_no_logs def test_tables_18(assert_pixels): > assert_pixels(''' ____________ _RRRRRRRRRR_ _R________R_ _R_RRRRRR_R_ _R_R____R_R_ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R____R_R_ ____________ ____________ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R_BB_R_R_ _R_R____R_R_ _R_RRRRRR_R_ _R________R_ _RRRRRRRRRR_ ____________ ____________ ''', '''
      a a a aa
      ''') tests/draw/test_table.py:1107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_19 ________________________________ assert_pixels = . at 0x3fb15a56f0> @assert_no_logs def test_tables_19(assert_pixels): # Regression test for #1523. > assert_pixels(''' RR RR RR RR RR RR RR RR ''', '''
      a a a a
      a a a a
      ''') tests/draw/test_table.py:1143: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_20 ________________________________ assert_pixels = . at 0x3fb1634e00> @assert_no_logs def test_tables_20(assert_pixels): > assert_pixels(''' ____________________ _RRRRRRRRRRRR_______ _RBBBBBBBBBBR_______ _RRRRRRRRRRRR_______ ____________________ ''', ''' ''') tests/draw/test_table.py:1163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_21 ________________________________ assert_pixels = . at 0x3fb1845d20> @assert_no_logs def test_tables_21(assert_pixels): > assert_pixels(''' _________________________ _rrrrrrrrrrrrrrrrrrrrrrr_ _rBBBBBBBBBBrBBBBBBBBBBr_ _rBKKKKKKBBBrBKKKKKKBBBr_ _rBKKKKKKBBBrBKKKKKKBBBr_ _rBBBBBBBBBBrBBBBBBBBBBr_ _rrrrrrrrrrrrrrrrrrrrrrr_ _________________________ _________________________ _________________________ _________________________ _________________________ _rrrrrrrrrrrrrrrrrrrrrrr_ _rBBBBBBBBBBrBBBBBBBBBBr_ _rBKKKKKKBBBrBBBBBBBBBBr_ _rBKKKKKKBBBrBBBBBBBBBBr_ _rBBBBBBBBBBrBBBBBBBBBBr_ _rrrrrrrrrrrrrrrrrrrrrrr_ _________________________ _________________________ _________________________ _________________________ ''', '''
      ''') tests/draw/test_table.py:1184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_22 ________________________________ assert_pixels = . at 0x3fb172be20> @assert_no_logs def test_tables_22(assert_pixels): > assert_pixels(''' _________________________ _rrrrrrrrrrrrrrrrrrrrrrr_ _rKKKKKKKKKKrKKKKKKKKKKr_ _rKKKKKKKKKKrKKKKKKKKKKr_ _rrrrrrrrrrrrrrrrrrrrrrr_ _rKKKKKKBBBBrBBBBBBBBBBr_ _rKKKKKKBBBBrBBBBBBBBBBr_ _rBBBBBBBBBBrBBBBBBBBBBr_ _________________________ _________________________ _rrrrrrrrrrrrrrrrrrrrrrr_ _rKKKKKKKKKKrKKKKKKKKKKr_ _rKKKKKKKKKKrKKKKKKKKKKr_ _rrrrrrrrrrrrrrrrrrrrrrr_ _rKKKKKKBBBBrBBBBBBBBBBr_ _rKKKKKKBBBBrBBBBBBBBBBr_ _rrrrrrrrrrrrrrrrrrrrrrr_ _________________________ ''', '''
      abcabc
      abc
      ''') tests/draw/test_table.py:1220: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________________ test_tables_24 ________________________________ assert_pixels = . at 0x3fb15d7270> @assert_no_logs def test_tables_24(assert_pixels): > assert_pixels(''' __________________ _RKKKKgYYYYYYGGG__ _RKKKKgKKYYKKGGG__ _BBBBBBKKYYKKGGG__ _BBBBBBYYYYYYGGG__ _BBBBBBCCCCCCGGG__ _BBBBBB___________ _BBBBBB___________ __________________ __________________ ''', '''
      abcdeabcde
      abc abc
      XX X X
      ''') tests/draw/test_table.py:1286: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_tables_24_rtl ______________________________ assert_pixels = . at 0x3fb1847530> @assert_no_logs def test_tables_24_rtl(assert_pixels): > assert_pixels(''' __________________ _RKKKKgYYYYYYGGG__ _RKKKKgKKYYKKGGG__ _BBBBBBKKYYKKGGG__ _BBBBBBYYYYYYGGG__ _BBBBBBCCCCCCGGG__ _BBBBBB___________ _BBBBBB___________ __________________ __________________ ''', '''
      X X XX
      ''') tests/draw/test_table.py:1334: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________ test_running_elements_table_border_collapse __________________ assert_pixels = . at 0x3fb1845b10> @assert_no_logs def test_running_elements_table_border_collapse(assert_pixels): > assert_pixels(2 * ''' KK_____________ KK_____________ _______________ _______________ _______________ KKKKKKK________ KRRKRRK________ KRRKRRK________ KKKKKKK________ KRRKRRK________ KRRKRRK________ KKKKKKK________ _______________ _______________ _______________ ''', '''
      A B
      C D
      1
      2
      ''') tests/draw/test_table.py:1383: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________ test_running_elements_table_border_collapse_empty _______________ assert_pixels = . at 0x3fb1729850> @assert_no_logs def test_running_elements_table_border_collapse_empty(assert_pixels): > assert_pixels(2 * ''' KK________ KK________ __________ __________ __________ __________ __________ __________ __________ __________ ''', '''
      1
      2
      ''') tests/draw/test_table.py:1427: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_running_elements_table_border_collapse_span _______________ assert_pixels = . at 0x3fb15d6ae0> @assert_no_logs def test_running_elements_table_border_collapse_span(assert_pixels): > assert_pixels(2 * ''' KK_____________ KK_____________ _______________ _______________ _______________ KKKKKKKKKK_____ KRRKRRKRRK_____ KRRKRRKRRK_____ K__KKKKKKK_____ K__KRR___K_____ K__KRR___K_____ KKKKKKKKKK_____ _______________ _______________ _______________ ''', '''
      A B C
      D
      1
      2
      ''') tests/draw/test_table.py:1508: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________ test_running_elements_table_border_collapse_margin ______________ assert_pixels = . at 0x3fb15d5170> @assert_no_logs def test_running_elements_table_border_collapse_margin(assert_pixels): > assert_pixels(2 * ''' KK_____________ KK_____________ _______________ _______________ _______________ _______________ ____KKKKKKK____ ____KRRKRRK____ ____KRRKRRK____ ____KKKKKKK____ ____KRRKRRK____ ____KRRKRRK____ ____KKKKKKK____ _______________ _______________ ''', '''
      A B
      C D
      1
      2
      ''') tests/draw/test_table.py:1552: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_tables_split_row _____________________________ assert_pixels = . at 0x3fb14349e0> @assert_no_logs def test_tables_split_row(assert_pixels): > assert_pixels(''' KKKKKKKK KRRKKRRK KRRKKRRK K__KK__K K__KKRRK K__KKRRK KKKKKKKK ________ ''', '''
      a a
      a
      ''') tests/draw/test_table.py:1597: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_tables_column_background _________________________ assert_pixels = . at 0x3fb15d4300> @assert_no_logs def test_tables_column_background(assert_pixels): # Regression test for #2296. > assert_pixels(''' KKKKKKKK KRRBBRRK KRRBBRRK KKKKKKKK KKKKKKKK KRRBBRRK KRRBBRRK KKKKKKKK ''', '''
      a a
      a a
      ''') tests/draw/test_table.py:1624: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_tables_border_tfoot ___________________________ assert_pixels = . at 0x3fb15d64b0> @assert_no_logs def test_tables_border_tfoot(assert_pixels): # Regression test for #2873. > assert_pixels(''' KK__________ RR__________ RR__________ KK__________ RR__________ RR__________ KK__________ RR__________ RR__________ BB__________ BB__________ ____________ RR__________ RR__________ BB__________ BB__________ ____________ ____________ ____________ ____________ ____________ ____________ ____________ ____________ ''', '''
      A
      B
      C
      D
      E
      ''') tests/draw/test_table.py:1657: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_text_overflow_clip ____________________________ assert_pixels = . at 0x3fb15d6f00> def test_text_overflow_clip(assert_pixels): > assert_pixels(''' _________ _RRRRRRR_ _RRRRRRR_ _________ _RR__RRR_ _RR__RRR_ _________ ''', '''
      abcde
      a bcde
      ''') tests/draw/test_text.py:11: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _________________________ test_text_overflow_ellipsis __________________________ assert_pixels = . at 0x3fb18447d0> def test_text_overflow_ellipsis(assert_pixels): > assert_pixels(''' _________ _RRRRRR__ _RRRRRR__ _________ _RR__RR__ _RR__RR__ _________ _RRRRRR__ _RRRRRR__ _________ _RRRRRRR_ _RRRRRRR_ _________ _RRRRRRR_ _RRRRRRR_ _________ ''', '''
      abcde
      a bcde
      abcde
      abcde
      abcde
      ''') tests/draw/test_text.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________ test_text_align_rtl_trailing_whitespace ____________________ assert_pixels = . at 0x3fb14343b0> def test_text_align_rtl_trailing_whitespace(assert_pixels): # Test text alignment for rtl text with trailing space. # Regression test for #1111. > assert_pixels(''' _________ _rrrrBBB_ _________ _rrrrBBB_ _________ _BBBrrrr_ _________ _BBBrrrr_ _________ ''', '''

      abc

      ‏abc

      abc

      ‏abc

      ''') tests/draw/test_text.py:90: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_rtl_default_direction __________________________ assert_pixels = . at 0x3fb1435f30> def test_rtl_default_direction(assert_pixels): > assert_pixels(''' _____BBBBB_____ _____BBBBB_____ _____BBBBB_____ _____BBBBB_____ BBBBBBBBBB_____ ''', ''' اب ''') tests/draw/test_text.py:115: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_rtl_forced_direction ___________________________ assert_pixels = . at 0x3fb1436770> def test_rtl_forced_direction(assert_pixels): > assert_pixels(''' __________BBBBB __________BBBBB __________BBBBB __________BBBBB _____BBBBBBBBBB ''', '''
      اب
      ''') tests/draw/test_text.py:131: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_rtl_nested_inline ____________________________ assert_pixels = . at 0x3fb1437060> def test_rtl_nested_inline(assert_pixels): > assert_pixels(''' RRRRR________________BBBBB___________RRRRR___________BBBBB RRRRR________________BBBBB___________RRRRR___________BBBBB RRRRR________________BBBBB___________RRRRR___________BBBBB RRRRR________________BBBBB___________RRRRR___________BBBBB RRRRRRRRRR______BBBBBBBBBB______RRRRRRRRRR______BBBBBBBBBB ______________________________________BBBBB__________RRRRR ______________________________________BBBBB__________RRRRR ______________________________________BBBBB__________RRRRR ______________________________________BBBBB__________RRRRR _________________________________BBBBBBBBBB_____RRRRRRRRRR ''', '''
      اب اب اب با اب اب
      ''') tests/draw/test_text.py:147: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________________ test_max_lines_ellipsis ____________________________ assert_pixels = . at 0x3fb1729590> def test_max_lines_ellipsis(assert_pixels): > assert_pixels(''' BBBBBBBB__ BBBBBBBB__ BBBBBBBBBB BBBBBBBBBB __________ __________ __________ __________ __________ __________ ''', '''

      abcd efgh ijkl

      ''') tests/draw/test_text.py:171: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _______________________________ test_line_clamp ________________________________ assert_pixels = . at 0x3fb15d5bc0> def test_line_clamp(assert_pixels): > assert_pixels(''' BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBBBBBBBB BBBBBBBBBB __________ __________ __________ __________ ''', '''

      aa a bb b cc c dddd eeee ffff gggg hhhh

      ''') tests/draw/test_text.py:247: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _____________________________ test_line_clamp_none _____________________________ assert_pixels = . at 0x3fb1436560> def test_line_clamp_none(assert_pixels): > assert_pixels(''' BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ __________ __________ __________ __________ ''', '''

      aa a bb b cc c

      ''') tests/draw/test_text.py:283: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_line_clamp_number ____________________________ assert_pixels = . at 0x3fb1435430> def test_line_clamp_number(assert_pixels): > assert_pixels(''' BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BBBB BBBB__BBBB __________ __________ __________ __________ ''', '''

      aa a bb b cc c dddd eeee

      ''') tests/draw/test_text.py:317: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_line_clamp_nested ____________________________ assert_pixels = . at 0x3fb1435590> def test_line_clamp_nested(assert_pixels): > assert_pixels(''' BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBBBBBBBB BBBBBBBBBB __________ __________ __________ __________ ''', '''
      aa a

      bb b cc c dddd eeee ffff gggg hhhh

      ''') tests/draw/test_text.py:350: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _________________________ test_line_clamp_nested_after _________________________ assert_pixels = . at 0x3fb13d8040> def test_line_clamp_nested_after(assert_pixels): > assert_pixels(''' BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBB__BB__ BBBBBBBBBB BBBBBBBBBB __________ __________ __________ __________ ''', '''
      aa a

      bb b

      cc c dddd eeee ffff gggg hhhh
      ''') tests/draw/test_text.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_text_align_right _____________________________ assert_pixels = . at 0x3fb13d94e0> def test_text_align_right(assert_pixels): > assert_pixels(''' _________ __RR__RR_ __RR__RR_ ______RR_ ______RR_ _________ ''', '''
      a c e
      ''') tests/draw/test_text.py:461: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________________ test_text_align_justify ____________________________ assert_pixels = . at 0x3fb13da1f0> def test_text_align_justify(assert_pixels): > assert_pixels(''' _________ _RR___RR_ _RR___RR_ _RR______ _RR______ _________ ''', '''
      a c e
      ''') tests/draw/test_text.py:488: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _________________________ test_text_align_justify_nbsp _________________________ assert_pixels = . at 0x3fb13daae0> def test_text_align_justify_nbsp(assert_pixels): > assert_pixels(''' ___________________ _RR___RR___RR___RR_ _RR___RR___RR___RR_ ___________________ ''', '''
      a b c d
      ''') tests/draw/test_text.py:515: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_text_word_spacing ____________________________ assert_pixels = . at 0x3fb14362a0> def test_text_word_spacing(assert_pixels): > assert_pixels(''' ___________________ _RR____RR____RR____ _RR____RR____RR____ ___________________ ''', '''
      a c e
      ''') tests/draw/test_text.py:540: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________________ test_text_letter_spacing ___________________________ assert_pixels = . at 0x3fb1436ae0> def test_text_letter_spacing(assert_pixels): > assert_pixels(''' ___________________ _RR____RR____RR____ _RR____RR____RR____ ___________________ ''', '''
      ace
      ''') tests/draw/test_text.py:565: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _____________________________ test_text_underline ______________________________ assert_pixels = . at 0x3fb1436980> def test_text_underline(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zsssssssssz_ _zsssssssssz_ _zuuuuuuuuuz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:590: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_text_underline_offset __________________________ assert_pixels = . at 0x3fb15d5380> def test_text_underline_offset(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:615: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________ test_text_underline_offset_percentage _____________________ assert_pixels = . at 0x3fb1729bc0> def test_text_underline_offset_percentage(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:643: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _______________________ test_text_underline_offset_calc ________________________ assert_pixels = . at 0x3fb13dac40> def test_text_underline_offset_calc(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:671: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ________________________ test_text_underline_thickness _________________________ assert_pixels = . at 0x3fb13d94e0> def test_text_underline_thickness(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ ''', '''
      abc
      ''') tests/draw/test_text.py:699: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________ test_text_underline_thickness_percentage ___________________ assert_pixels = . at 0x3fb13d9380> def test_text_underline_thickness_percentage(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ ''', '''
      abc
      ''') tests/draw/test_text.py:727: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ______________________ test_text_underline_thickness_calc ______________________ assert_pixels = . at 0x3fb13d8720> def test_text_underline_thickness_calc(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ ''', '''
      abc
      ''') tests/draw/test_text.py:755: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________ test_text_underline_thickness_calc_inherit __________________ assert_pixels = . at 0x3fb13db740> def test_text_underline_thickness_calc_inherit(assert_pixels): # Regression test for #2833. > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ ''', '''
      ''') tests/draw/test_text.py:784: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ______________________________ test_text_overline ______________________________ assert_pixels = . at 0x3fb15d6090> def test_text_overline(assert_pixels): # Ascent value seems to be a bit random, don’t try to get the exact # position of the line > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zzzzzzzzzzz_ _zsssssssssz_ _zsssssssssz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:815: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ____________________________ test_text_line_through ____________________________ assert_pixels = . at 0x3fb1436ae0> def test_text_line_through(assert_pixels): > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zBBBBBBBBBz_ _zuuuuuuuuuz_ _zBBBBBBBBBz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:840: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ______________________ test_text_multiple_text_decoration ______________________ assert_pixels = . at 0x3fb1434ca0> def test_text_multiple_text_decoration(assert_pixels): # Regression test for #1621. > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zsssssssssz_ _zBBBBBBBBBz_ _zuuuuuuuuuz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:866: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _______________________ test_text_nested_text_decoration _______________________ assert_pixels = . at 0x3fb13d9170> def test_text_nested_text_decoration(assert_pixels): # Regression test for #1621. > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zsssssssssz_ _zsssBBBsssz_ _zuuuuuuuuuz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:892: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________________ test_text_decoration_var ___________________________ assert_pixels = . at 0x3fb1360e00> def test_text_decoration_var(assert_pixels): # Regression test for #1697. > assert_pixels(''' _____________ _zzzzzzzzzzz_ _zRRRRRRRRRz_ _zBBBBBBBBBz_ _zRRRRRRRRRz_ _zzzzzzzzzzz_ _____________ ''', '''
      abc
      ''') tests/draw/test_text.py:1017: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_zero_width_character ___________________________ assert_pixels = . at 0x3fb1361590> def test_zero_width_character(assert_pixels): # Regression test for #1508. > assert_pixels(''' ______ _RRRR_ _RRRR_ ______ ''', '''
      a‌b
      ''') tests/draw/test_text.py:1045: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_font_size_very_small ___________________________ assert_pixels = . at 0x3fb1361dd0> def test_font_size_very_small(assert_pixels): > assert_pixels(''' __________ __________ __________ __________ ''', ''' test font size zero ''') tests/draw/test_text.py:1067: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _________________________ test_missing_glyph_fallback __________________________ assert_pixels = . at 0x3fb13626c0> def test_missing_glyph_fallback(assert_pixels): # The apostrophe is not included in weasyprint.otf > assert_pixels(''' ___zzzzzzzzzzzzzzzzz _RRzzzzzzzzzzzzzzzzz _RRzzzzzzzzzzzzzzzzz ___zzzzzzzzzzzzzzzzz ''', ''' a\'''' % SANS_FONTS) tests/draw/test_text.py:1089: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory __________________________ test_tabulation_character ___________________________ assert_pixels = . at 0x3fb1362f00> def test_tabulation_character(assert_pixels): # Regression test for #1515. > assert_pixels(''' __________ _RR____RR_ _RR____RR_ __________ ''', '''
      a	b
      ''') tests/draw/test_text.py:1111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ________________________________ test_otb_font _________________________________ assert_pixels = . at 0x3fb13d9d20> def test_otb_font(assert_pixels): > assert_pixels(''' ____________________ __RR______RR________ __RR__RR__RR________ __RR__RR__RR________ ____________________ ____________________ ''', ''' AaA''') tests/draw/test_text.py:1134: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ___________________________ test_huge_justification ____________________________ assert_pixels = . at 0x3fb13dbd70> def test_huge_justification(assert_pixels): # Regression test for #2262. > assert_pixels(''' ____ _RR_ _RR_ ____ ''', ''' A B''') tests/draw/test_text.py:1163: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _________________________ test_font_variant_caps_small _________________________ assert_pixels = . at 0x3fb14362a0> def test_font_variant_caps_small(assert_pixels): > assert_pixels(''' ________ _BB_BB__ _BB_B_B_ _B__BB__ _B__B___ ________ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1187: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _______________________ test_font_variant_caps_all_small _______________________ assert_pixels = . at 0x3fb1434f60> def test_font_variant_caps_all_small(assert_pixels): > assert_pixels(''' ________ BB_BB___ B_BB_B__ BB_BB___ B__B____ ________ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1210: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ________________________ test_font_variant_caps_petite _________________________ assert_pixels = . at 0x3fb13622a0> def test_font_variant_caps_petite(assert_pixels): > assert_pixels(''' ________ _BB_BB__ _BB_B_B_ _B__BB__ _B__B___ ________ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1233: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ______________________ test_font_variant_caps_all_petite _______________________ assert_pixels = . at 0x3fb1362140> @pytest.mark.xfail(pango.pango_version() == 15604, reason='Bug in Pango 1.56.4') def test_font_variant_caps_all_petite(assert_pixels): > assert_pixels(''' ________ BB_BB___ B_BB_B__ BB_BB___ B__B____ ________ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1258: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ________________________ test_font_variant_caps_unicase ________________________ assert_pixels = . at 0x3fb13605c0> def test_font_variant_caps_unicase(assert_pixels): > assert_pixels(''' ________ BB______ B_B_BB__ BB__B_B_ B___BB__ ____B___ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1281: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ________________________ test_font_variant_caps_titling ________________________ assert_pixels = . at 0x3fb13638a0> def test_font_variant_caps_titling(assert_pixels): > assert_pixels(''' _BB_____ _BB_____ _BB__BB_ _B___B_B _____BB_ _____B__ ''', '''

      Pp

      ''' % SANS_FONTS) tests/draw/test_text.py:1304: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ______________________________ test_unicode_range ______________________________ assert_pixels = . at 0x3fb1363d70> def test_unicode_range(assert_pixels): > assert_pixels(''' __________ _RRRRRR___ _RRRRRRzz_ __________ ''', ''' ADZB''' % SANS_FONTS) tests/draw/test_text.py:1326: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory _____________________________ test_2d_transform_5 ______________________________ assert_pixels = . at 0x3fb1363ab0> @assert_no_logs def test_2d_transform_5(assert_pixels): > assert_pixels(''' ________ ________ __BBBr__ __BBBB__ __BBBB__ __BBBB__ ________ ________ ''', '''
      ''') tests/draw/test_transform.py:97: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_2d_transform_6 ______________________________ assert_pixels = . at 0x3fb1729d20> @assert_no_logs def test_2d_transform_6(assert_pixels): > assert_pixels(''' ________ ________ ________ ________ ___rBBB_ ___BBBB_ ___BBBB_ ___BBBB_ ''', '''
      ''') tests/draw/test_transform.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_2d_transform_7 ______________________________ assert_pixels = . at 0x3fb15a57a0> @assert_no_logs def test_2d_transform_7(assert_pixels): > assert_pixels(''' ________ ________ ___rBBB_ ___BBBB_ ___BBBB_ ___BBBB_ ________ ________ ''', '''
      ''') tests/draw/test_transform.py:135: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_2d_transform_8 ______________________________ assert_pixels = . at 0x3fb15a7320> @assert_no_logs def test_2d_transform_8(assert_pixels): > assert_pixels(''' ________ ________ _____rBB _____BBB _____BBB _____BBB ________ ________ ''', '''
      ''') tests/draw/test_transform.py:154: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________________ test_2d_transform_9 ______________________________ assert_pixels = . at 0x3fb1635380> @assert_no_logs def test_2d_transform_9(assert_pixels): > assert_pixels(''' ________ __rBBB__ __BBBB__ __BBBB__ __BBBB__ ________ ________ ________ ''', '''
      ''') tests/draw/test_transform.py:174: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_2d_transform_opacity ___________________________ assert_pixels = . at 0x3fb1637ab0> @assert_no_logs def test_2d_transform_opacity(assert_pixels): > assert_pixels(''' __________ __________ __________ _ss_______ _ss_______ __________ __________ __________ __________ __________ ''', '''
      ''') tests/draw/test_transform.py:289: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_visibility_2 _______________________________ assert_pixels = . at 0x3fb1360a90> @assert_no_logs def test_visibility_2(assert_pixels): > assert_pixels(''' ____________ ____________ ____________ ____________ ____________ ____________ ____________ ''', visibility_source % 'div { visibility: hidden }') tests/draw/test_visibility.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_whitespace_inline ____________________________ assert_pixels = . at 0x3fb1363d70> @assert_no_logs def test_whitespace_inline(assert_pixels): > assert_pixels(''' RRRR__RRRR____ RRRR__RRRR____ ______________ ______________ ''', ''' aa aa ''') tests/draw/test_whitespace.py:8: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_whitespace_nested_inline _________________________ assert_pixels = . at 0x3fb1362a30> @assert_no_logs def test_whitespace_nested_inline(assert_pixels): > assert_pixels(''' RRRR__RRRR____ RRRR__RRRR____ ______________ ______________ ''', ''' aa aa ''') tests/draw/test_whitespace.py:29: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _____________________ test_whitespace_inline_space_between _____________________ assert_pixels = . at 0x3fb1436a30> @assert_no_logs def test_whitespace_inline_space_between(assert_pixels): > assert_pixels(''' RRRR__RRRR____ RRRR__RRRR____ ______________ ______________ ''', ''' aa aa ''') tests/draw/test_whitespace.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________________________ test_whitespace_float_between _________________________ assert_pixels = . at 0x3fb1435380> @assert_no_logs def test_whitespace_float_between(assert_pixels): > assert_pixels(''' RRRR__RRRR__BB RRRR__RRRR__BB ______________ ______________ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_whitespace_in_float ___________________________ assert_pixels = . at 0x3fb14377f0> @assert_no_logs def test_whitespace_in_float(assert_pixels): > assert_pixels(''' RRRRRRRR____BB RRRRRRRR____BB ______________ ______________ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:93: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_whitespace_absolute_between _______________________ assert_pixels = . at 0x3fb13db1c0> @assert_no_logs def test_whitespace_absolute_between(assert_pixels): > assert_pixels(''' RRRR__RRRR__BB RRRR__RRRR__BB ______________ ______________ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________ test_whitespace_in_absolute __________________________ assert_pixels = . at 0x3fb1434720> @assert_no_logs def test_whitespace_in_absolute(assert_pixels): > assert_pixels(''' RRRRRRRR____BB RRRRRRRR____BB ______________ ______________ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:145: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_whitespace_running_between ________________________ assert_pixels = . at 0x3fb1434ca0> @assert_no_logs def test_whitespace_running_between(assert_pixels): > assert_pixels(''' RRRR__RRRR____ RRRR__RRRR____ ______BB______ ______BB______ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:172: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_whitespace_in_running __________________________ assert_pixels = . at 0x3fb1363b60> @assert_no_logs def test_whitespace_in_running(assert_pixels): > assert_pixels(''' RRRRRRRR______ RRRRRRRR______ ______BB______ ______BB______ ''', ''' aa
      a
      aa ''') tests/draw/test_whitespace.py:204: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents0] ___________________________ assert_same_renderings = . at 0x3fa939d4e0> documents = ('
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents1] ___________________________ assert_same_renderings = . at 0x3fa93f97a0> documents = ('
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents2] ___________________________ assert_same_renderings = . at 0x3fa93fa6c0> documents = ('
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents3] ___________________________ assert_same_renderings = . at 0x3fa93fae50> documents = ('
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents4] ___________________________ assert_same_renderings = . at 0x3fa93fb690> documents = ('
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents5] ___________________________ assert_same_renderings = . at 0x3fa93fb3d0> documents = ('
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents6] ___________________________ assert_same_renderings = . at 0x3fa947c720> documents = ('
      ', '
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents7] ___________________________ assert_same_renderings = . at 0x3fa947ceb0> documents = ('
      ', '
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents8] ___________________________ assert_same_renderings = . at 0x3fa947d640> documents = ('
      ', '
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_logical[documents9] ___________________________ assert_same_renderings = . at 0x3fa93fb270> documents = ('
      ', '
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_logical[documents10] ___________________________ assert_same_renderings = . at 0x3fa93f8460> documents = ('
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_logical[documents11] ___________________________ assert_same_renderings = . at 0x3fa93f8f60> documents = ('
      ', '
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_logical[documents12] ___________________________ assert_same_renderings = . at 0x3fa93fa1f0> documents = ('
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_logical[documents13] ___________________________ assert_same_renderings = . at 0x3fa947dc70> documents = ('
      ', '
      ') @assert_no_logs @pytest.mark.parametrize('documents', [ ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ' '
      ', ), ( '
      ', '
      ', # TODO: handle this case. # '
      ', ), ( '
      ', '
      ', ), ( '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ' '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ', '
      ', '
      ', ), ( '
      ', '
      ', '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', ), ( '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ', '
      ' '
      ' '
      ', '
      ' '
      ' '
      ', ), ]) def test_logical(assert_same_renderings, documents): base_style = ''' ''' > assert_same_renderings(*(base_style + document for document in documents)) tests/layout/test_logical.py:107: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:102: in return lambda *args, **kwargs: draw.assert_same_renderings( tests/draw/__init__.py:69: in assert_same_renderings width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_table_vertical_align ___________________________ assert_pixels = . at 0x3fa8718f60> @assert_no_logs def test_table_vertical_align(assert_pixels): > assert_pixels(''' rrrrrrrrrrrrrrrrrrrrrrrrrrrr rBBBBBBBBBBBBBBBBBBBBBBBBBBr rBrBB_BB_BB_BB_BBrrBBrrBB_Br rBrBB_BB_BBrBBrBBrrBBrrBBrBr rB_BBrBB_BBrBBrBBrrBBrrBBrBr rB_BBrBB_BB_BB_BBrrBBrrBB_Br rB_BB_BBrBB_BB_BB__BB__BB_Br rB_BB_BBrBB_BB_BB__BB__BB_Br rBBBBBBBBBBBBBBBBBBBBBBBBBBr rrrrrrrrrrrrrrrrrrrrrrrrrrrr ''', '''
      o o o o o o o o o o o o o o o o
      ''') tests/layout/test_table.py:1949: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________________ test_acid2 __________________________________ assert_pixels_equal = . at 0x3fa87df110> @assert_no_logs def test_acid2(assert_pixels_equal): # Reduce image size and avoid Ghostscript rounding problems stylesheets = (CSS(string='@page { size: 500px 800px }'),) def render(filename): return HTML(resource_path(filename)).render(stylesheets=stylesheets) with capture_logs(): # This is a copy of https://www.webstandards.org/files/acid2/test.html document = render('acid2-test.html') intro_page, test_page = document.pages # Ignore the intro page: it is not in the reference > test_png = document.copy([test_page]).write_png() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_acid2.py:25: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - /build/python-weasyprint/src/python-weasyprint/tests/resources/acid2-test.html INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string WARNING weasyprint:__init__.py:1545 Invalid or unsupported selector, '[class=second two] ' WARNING weasyprint:__init__.py:188 Ignored `error: \}` at 90:74, unknown property. WARNING weasyprint:__init__.py:188 Ignored `m rgin: 2em` at 93:14, unknown property. WARNING weasyprint:__init__.py:1545 Invalid or unsupported selector, '; .parser ' WARNING weasyprint:__init__.py:188 Ignored `width: 200` at 95:14, invalid value. WARNING weasyprint:__init__.py:188 Ignored `border: 5em solid red ! error` at 96:14, invalid value. WARNING weasyprint:__init__.py:188 Ignored `background: red pink` at 97:14, invalid value. INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - data:text/css,.picture%20%7B%20background%3A%20none%3B%20%7D INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure ERROR weasyprint:images.py:336 Failed to load image at 'file:///build/python-weasyprint/src/python-weasyprint/tests/resources/404': URLError: DEBUG weasyprint:images.py:337 Error while loading image: Traceback (most recent call last): File "/usr/lib/python3.14/urllib/request.py", line 1470, in open_local_file stats = os.stat(localfile) FileNotFoundError: [Errno 2] No such file or directory: '/build/python-weasyprint/src/python-weasyprint/tests/resources/404' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 426, in fetch resource = url_fetcher(url) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 333, in __call__ return self.fetch(url) ~~~~~~~~~~^^^^^ File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 307, in fetch response = super().open(http_request, timeout=self._timeout) File "/usr/lib/python3.14/urllib/request.py", line 487, in open response = self._open(req, data) File "/usr/lib/python3.14/urllib/request.py", line 504, in _open result = self._call_chain(self.handle_open, protocol, protocol + '_open', req) File "/usr/lib/python3.14/urllib/request.py", line 464, in _call_chain result = func(*args) File "/usr/lib/python3.14/urllib/request.py", line 1480, in open_local_file raise URLError(exp, exp.filename) urllib.error.URLError: During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 297, in get_image_from_uri with fetch(url_fetcher, url) as response: ~~~~~^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/contextlib.py", line 141, in __enter__ return next(self.gen) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 430, in fetch raise URLFetchingError(f'{type(exception).__name__}: {exception}') weasyprint.urls.URLFetchingError: URLError: ERROR weasyprint:images.py:336 Failed to load image at 'data:application/x-unknown,ERROR': DEBUG weasyprint:images.py:337 Error while loading image: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 313, in get_image_from_uri pillow_image = Image.open(BytesIO(bytestring)) File "/usr/lib/python3.14/site-packages/PIL/Image.py", line 3715, in open raise UnidentifiedImageError(msg) PIL.UnidentifiedImageError: cannot identify image file <_io.BytesIO object at 0x3fa3f7f880> The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 324, in get_image_from_uri raise ImageLoadingError from raster_exception weasyprint.images.ImageLoadingError INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 2 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_python_render ______________________________ assert_pixels_equal = . at 0x3fa87dc7d0> tmp_path = PosixPath('/tmp/pytest-of-builduser/pytest-0/test_python_render0') @assert_no_logs def test_python_render(assert_pixels_equal, tmp_path): """Test rendering with the Python API.""" base_url = str(resource_path('dummy.html')) html_string = '' css_string = ''' @page { margin: 2px; size: 8px } body { margin: 0; font-size: 0 } img { image-rendering: pixelated } @media screen { img { transform: rotate(-90deg) } } ''' html = FakeHTML(string=html_string, base_url=base_url) css = CSS(string=css_string) > png_bytes = html.write_png(stylesheets=[css]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:338: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ____________________________ test_unicode_filenames ____________________________ assert_pixels_equal = . at 0x3f9bb994e0> tmp_path = PosixPath('/tmp/pytest-of-builduser/pytest-0/test_unicode_filenames0') @assert_no_logs def test_unicode_filenames(assert_pixels_equal, tmp_path): """Test non-ASCII filenames both in Unicode or bytes form.""" # Replicate pattern.png in CSS so that base_url does not matter. html = b''' ''' > png_bytes = FakeHTML(string=html).write_png() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:809: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ______________________________ test_low_level_api ______________________________ assert_pixels_equal = . at 0x3f9bb98510> @assert_no_logs def test_low_level_api(assert_pixels_equal): html = FakeHTML(string='') css = CSS(string=''' @page { margin: 2px; size: 8px } html { background: #00f; } body { background: #f00; width: 1px; height: 1px } ''') pdf_bytes = html.write_pdf(stylesheets=[css]) assert pdf_bytes.startswith(b'%PDF') > png_bytes = html.write_png(stylesheets=[css]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:841: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________ test_url_fetcher[] ________________ html = assert_pixels_equal = . at 0x3f9bbb7690> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3f9bbb75e0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3f9bb5f8a0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __ test_url_fetcher[] __ html = assert_pixels_equal = . at 0x3f9bb5fd70> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3f9bb5f7f0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[
    • ] _ html = assert_pixels_equal = . at 0x3fa81bbab0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3fa94ca140> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.css INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ________ test_url_fetcher[] ________ html = assert_pixels_equal = . at 0x3fa95a3ed0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - redirect: INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3fa95ecca0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.css INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3fa965bc10> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.css INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _ test_url_fetcher[] _ html = assert_pixels_equal = . at 0x3fa95ee4b0> @pytest.mark.parametrize('html', [ '', f'', f'', '', '', '
    • ', '', '', '', '', '', ]) @assert_no_logs def test_url_fetcher(html, assert_pixels_equal): base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=Fetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1297: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.css INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_url_fetcher_default ___________________________ assert_pixels_equal = . at 0x3fb12535e0> @assert_no_logs def test_url_fetcher_default(assert_pixels_equal): html = '' base_url = str(resource_path('dummy.html')) css = CSS(string='@page{size:8px;margin:2px} body{font-size:0}', base_url=base_url) html = FakeHTML(string=html, url_fetcher=URLFetcher(), base_url=base_url) > check_png_pattern(assert_pixels_equal, html.write_png(stylesheets=[css])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1306: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_url_fetcher_bad_image __________________________ assert_pixels_equal = . at 0x3fb13d96f0> @assert_no_logs def test_url_fetcher_bad_image(assert_pixels_equal): string = '' css = CSS(string='@page { size: 8px; margin: 2px } body { font-size: 0 }') with capture_logs() as logs: html = FakeHTML(string=string, url_fetcher=Fetcher()) > png = html.write_png(stylesheets=[css]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1354: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure ERROR weasyprint:images.py:336 Failed to load image at 'custom:foo/bar': URLError: DEBUG weasyprint:images.py:337 Error while loading image: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 426, in fetch resource = url_fetcher(url) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 333, in __call__ return self.fetch(url) ~~~~~~~~~~^^^^^ File "/build/python-weasyprint/src/python-weasyprint/tests/test_api.py", line 1276, in fetch return super().fetch(url, headers) ~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 307, in fetch response = super().open(http_request, timeout=self._timeout) File "/usr/lib/python3.14/urllib/request.py", line 487, in open response = self._open(req, data) File "/usr/lib/python3.14/urllib/request.py", line 509, in _open return self._call_chain(self.handle_open, 'unknown', ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 'unknown_open', req) ^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/urllib/request.py", line 464, in _call_chain result = func(*args) File "/usr/lib/python3.14/urllib/request.py", line 1396, in unknown_open raise URLError('unknown url type: %s' % type) urllib.error.URLError: During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/images.py", line 297, in get_image_from_uri with fetch(url_fetcher, url) as response: ~~~~~^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/contextlib.py", line 141, in __enter__ return next(self.gen) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 430, in fetch raise URLFetchingError(f'{type(exception).__name__}: {exception}') weasyprint.urls.URLFetchingError: URLError: INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_url_fetcher_bad_stylesheet ________________________ assert_pixels_equal = . at 0x3fb129cbf0> @assert_no_logs def test_url_fetcher_bad_stylesheet(assert_pixels_equal): string = ( '' '') with capture_logs() as logs: > FakeHTML(string=string, url_fetcher=Fetcher()).write_png() tests/test_api.py:1366: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.css INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - weasyprint-custom:foo/bar.no ERROR weasyprint:urls.py:206 Unsupported stylesheet type text/no for weasyprint-custom:foo/bar.no INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _______________________ test_url_fetcher_non_fatal_error _______________________ assert_pixels_equal = . at 0x3fa9703740> @assert_no_logs def test_url_fetcher_non_fatal_error(assert_pixels_equal): string = '' with capture_logs() as logs: > FakeHTML(string=string, url_fetcher=Fetcher()).write_png() tests/test_api.py:1375: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - bad:foo/bar.no ERROR weasyprint:__init__.py:345 Failed to load stylesheet at bad:foo/bar.no: ValueError: Bad protocol DEBUG weasyprint:__init__.py:346 Error while loading stylesheet: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 426, in fetch resource = url_fetcher(url) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 333, in __call__ return self.fetch(url) ~~~~~~~~~~^^^^^ File "/build/python-weasyprint/src/python-weasyprint/tests/test_api.py", line 1262, in fetch raise ValueError('Bad protocol') ValueError: Bad protocol During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/build/python-weasyprint/src/python-weasyprint/weasyprint/css/__init__.py", line 339, in find_stylesheets yield CSS( ~~~^ url=href, url_fetcher=url_fetcher, media_type=device_media_type, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ font_config=font_config, counter_style=counter_style, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ color_profiles=color_profiles, page_rules=page_rules, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ layers=layers, _check_mime_type=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/build/python-weasyprint/src/python-weasyprint/weasyprint/__init__.py", line 302, in __init__ with result as (file_obj, base_url, protocol_encoding, mime_type): ^^^^^^ File "/usr/lib/python3.14/contextlib.py", line 141, in __enter__ return next(self.gen) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 204, in select_source with fetch(url_fetcher, url) as response: ~~~~~^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.14/contextlib.py", line 141, in __enter__ return next(self.gen) File "/build/python-weasyprint/src/python-weasyprint/weasyprint/urls.py", line 430, in fetch raise URLFetchingError(f'{type(exception).__name__}: {exception}') weasyprint.urls.URLFetchingError: ValueError: Bad protocol INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata ___________________________ test_page_copy_relative ____________________________ @assert_no_logs def test_page_copy_relative(): # Regression test for #1473. document = FakeHTML(string='
      a').render() duplicated_pages = document.copy([*document.pages, *document.pages]) > pngs = duplicated_pages.write_png(split_images=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_api.py:1530: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = True def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_z_index[z_indexes0-R] __________________________ assert_pixels = . at 0x3faacd77f0> z_indexes = (3, 2, 1), color = 'R' @assert_no_logs @pytest.mark.parametrize(('z_indexes', 'color'), [ ((3, 2, 1), 'R'), ((1, 2, 3), 'G'), ((1, 2, -3), 'B'), ((1, 2, 'auto'), 'B'), ((-1, 'auto', -2), 'B'), ]) def test_z_index(assert_pixels, z_indexes, color): > assert_pixels('\n'.join([color * 10] * 10), z_index_source % z_indexes) tests/test_stacking.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_z_index[z_indexes1-G] __________________________ assert_pixels = . at 0x3faacd7ab0> z_indexes = (1, 2, 3), color = 'G' @assert_no_logs @pytest.mark.parametrize(('z_indexes', 'color'), [ ((3, 2, 1), 'R'), ((1, 2, 3), 'G'), ((1, 2, -3), 'B'), ((1, 2, 'auto'), 'B'), ((-1, 'auto', -2), 'B'), ]) def test_z_index(assert_pixels, z_indexes, color): > assert_pixels('\n'.join([color * 10] * 10), z_index_source % z_indexes) tests/test_stacking.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_z_index[z_indexes2-B] __________________________ assert_pixels = . at 0x3faacd6090> z_indexes = (1, 2, -3), color = 'B' @assert_no_logs @pytest.mark.parametrize(('z_indexes', 'color'), [ ((3, 2, 1), 'R'), ((1, 2, 3), 'G'), ((1, 2, -3), 'B'), ((1, 2, 'auto'), 'B'), ((-1, 'auto', -2), 'B'), ]) def test_z_index(assert_pixels, z_indexes, color): > assert_pixels('\n'.join([color * 10] * 10), z_index_source % z_indexes) tests/test_stacking.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_z_index[z_indexes3-B] __________________________ assert_pixels = . at 0x3faacd54e0> z_indexes = (1, 2, 'auto'), color = 'B' @assert_no_logs @pytest.mark.parametrize(('z_indexes', 'color'), [ ((3, 2, 1), 'R'), ((1, 2, 3), 'G'), ((1, 2, -3), 'B'), ((1, 2, 'auto'), 'B'), ((-1, 'auto', -2), 'B'), ]) def test_z_index(assert_pixels, z_indexes, color): > assert_pixels('\n'.join([color * 10] * 10), z_index_source % z_indexes) tests/test_stacking.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata __________________________ test_z_index[z_indexes4-B] __________________________ assert_pixels = . at 0x3faacd4d50> z_indexes = (-1, 'auto', -2), color = 'B' @assert_no_logs @pytest.mark.parametrize(('z_indexes', 'color'), [ ((3, 2, 1), 'R'), ((1, 2, 3), 'G'), ((1, 2, -3), 'B'), ((1, 2, 'auto'), 'B'), ((-1, 'auto', -2), 'B'), ]) def test_z_index(assert_pixels, z_indexes, color): > assert_pixels('\n'.join([color * 10] * 10), z_index_source % z_indexes) tests/test_stacking.py:83: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/conftest.py:96: in return lambda *args, **kwargs: draw.assert_pixels( tests/draw/__init__.py:56: in assert_pixels width, height, pixels = html_to_pixels(html) ^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata _________________________________ test_unicode _________________________________ assert_pixels_equal = . at 0x3f9bbb3a00> tmp_path = PosixPath('/tmp/pytest-of-builduser/pytest-0/test_unicode0') @assert_no_logs def test_unicode(assert_pixels_equal, tmp_path): text = 'I løvë Unicode' style = ''' @page { size: 200px 50px } p { color: blue } ''' > expected_width, expected_height, expected_lines = html_to_pixels(f'''

      {text}

      ''') tests/test_unicode.py:16: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ tests/draw/__init__.py:131: in html_to_pixels return document_to_pixels(document) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ tests/draw/__init__.py:136: in document_to_pixels image = Image.open(io.BytesIO(document.write_png())) ^^^^^^^^^^^^^^^^^^^^ tests/conftest.py:81: in html_write_png return document.write_png(target, resolution) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ document = , target = None resolution = 96, antialiasing = 1, zoom = 0.13333333333333333 split_images = False def document_write_png(document, target=None, resolution=96, antialiasing=1, zoom=4/30, split_images=False): # Use temporary files because gs on Windows doesn’t accept binary on stdin with NamedTemporaryFile(delete=False) as pdf: document.write_pdf(pdf, zoom=zoom) command = ( 'gs', '-q', '-sDEVICE=png16m', f'-dTextAlphaBits={antialiasing}', f'-dGraphicsAlphaBits={antialiasing}', '-dBATCH', '-dNOPAUSE', '-dPDFSTOPONERROR', f'-r{resolution / zoom}', '-dUsePDFX3Profile', '-sOutputFile=-', pdf.name) pngs = run(command, stdout=PIPE).stdout os.remove(pdf.name) error = pngs.split(MAGIC_NUMBER)[0].decode().strip() or 'no output' > assert pngs.startswith(MAGIC_NUMBER), f'Ghostscript error: {error}' E AssertionError: Ghostscript error: no output E assert False E + where False = (b'\x89PNG\r\n\x1a\n') E + where = b''.startswith tests/conftest.py:40: AssertionError ----------------------------- Captured stderr call ----------------------------- gs: error while loading shared libraries: libleancrypto.so.1: cannot open shared object file: No such file or directory ------------------------------ Captured log call ------------------------------- INFO weasyprint.progress:__init__.py:161 Step 1 - Fetching and parsing HTML - HTML string INFO weasyprint.progress:__init__.py:292 Step 2 - Fetching and parsing CSS - CSS string INFO weasyprint.progress:__init__.py:88 Step 3 - Applying CSS INFO weasyprint.progress:document.py:174 Step 4 - Creating formatting structure INFO weasyprint.progress:page.py:1054 Step 5 - Creating layout - Page 1 INFO weasyprint.progress:__init__.py:124 Step 6 - Creating PDF INFO weasyprint.progress:__init__.py:248 Step 7 - Adding PDF metadata =========================== short test summary info ============================ FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_rect - Assertio... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_circle - Assert... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_ellipse - Asser... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_line - Assertio... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_polygon - Asser... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_polyline - Asse... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_text - Assertio... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_path_hv - Asser... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_path_l - Assert... FAILED tests/draw/svg/test_bounding_box.py::test_svg_empty_size - AssertionEr... FAILED tests/draw/svg/test_bounding_box.py::test_bounding_box_use_opacity - A... FAILED tests/draw/svg/test_clip.py::test_clip_path - AssertionError: Ghostscr... FAILED tests/draw/svg/test_clip.py::test_clip_path_on_group - AssertionError:... FAILED tests/draw/svg/test_clip.py::test_clip_path_outside_defs - AssertionEr... FAILED tests/draw/svg/test_defs.py::test_use - AssertionError: Ghostscript er... FAILED tests/draw/svg/test_defs.py::test_use_base64 - AssertionError: Ghostsc... FAILED tests/draw/svg/test_defs.py::test_use_symbol_color - AssertionError: G... FAILED tests/draw/svg/test_defs.py::test_use_context_paint - AssertionError: ... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient - AssertionErro... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_userspace - Ass... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_multicolor - As... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_multicolor_userspace FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_transform - Ass... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_transform_nested FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_transform_repeat FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_userspace_transform FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_userspace_transform_nested FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_transform_repeat_userspace FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_repeat - Assert... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_repeat_long - A... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_repeat_userspace FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_reflect - Asser... FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_reflect_userspace FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_inherit_attributes FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_inherit_children FAILED tests/draw/svg/test_gradients.py::test_linear_gradient_inherit_no_override FAILED tests/draw/svg/test_gradients.py::test_radial_gradient - AssertionErro... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_transform - Ass... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_transform_nested FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_userspace - Ass... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_negative_rect_userspace FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_userspace_transform FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_userspace_transform_nested FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_multicolor - As... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_multicolor_userspace FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_repeat - Assert... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_reflect - Asser... FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_inherit_attributes FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_inherit_children FAILED tests/draw/svg/test_gradients.py::test_radial_gradient_inherit_no_override FAILED tests/draw/svg/test_gradients.py::test_gradient_opacity - AssertionErr... FAILED tests/draw/svg/test_gradients.py::test_gradient_bad_url[#grad'] - Asse... FAILED tests/draw/svg/test_gradients.py::test_gradient_bad_url['#gra] - Asser... FAILED tests/draw/svg/test_gradients.py::test_gradient_bad_url[!] - Assertion... FAILED tests/draw/svg/test_gradients.py::test_gradient_bad_url[#] - Assertion... FAILED tests/draw/svg/test_images.py::test_image_svg - AssertionError: Ghosts... FAILED tests/draw/svg/test_images.py::test_image_svg_viewbox - AssertionError... FAILED tests/draw/svg/test_images.py::test_image_svg_align_default - Assertio... FAILED tests/draw/svg/test_images.py::test_image_svg_align_none - AssertionEr... FAILED tests/draw/svg/test_images.py::test_image_svg_align_no_viewbox - Asser... FAILED tests/draw/svg/test_images.py::test_image_svg_align_meet_x - Assertion... FAILED tests/draw/svg/test_images.py::test_image_svg_align_meet_y - Assertion... FAILED tests/draw/svg/test_images.py::test_image_svg_align_slice_x - Assertio... FAILED tests/draw/svg/test_images.py::test_image_svg_align_slice_y - Assertio... FAILED tests/draw/svg/test_images.py::test_image_svg_wrong - AssertionError: ... FAILED tests/draw/svg/test_images.py::test_image_image - AssertionError: Ghos... FAILED tests/draw/svg/test_images.py::test_image_image_rendering - AssertionE... FAILED tests/draw/svg/test_images.py::test_image_image_wrong - AssertionError... FAILED tests/draw/svg/test_images.py::test_image_in_g_height_only - Assertion... FAILED tests/draw/svg/test_images.py::test_image_in_g_width_only - AssertionE... FAILED tests/draw/svg/test_markers.py::test_markers - AssertionError: Ghostsc... FAILED tests/draw/svg/test_markers.py::test_markers_context_paint - Assertion... FAILED tests/draw/svg/test_markers.py::test_markers_no_dash - AssertionError:... FAILED tests/draw/svg/test_markers.py::test_markers_context_stroke_no_dash - ... FAILED tests/draw/svg/test_markers.py::test_markers_viewbox - AssertionError:... FAILED tests/draw/svg/test_markers.py::test_markers_size - AssertionError: Gh... FAILED tests/draw/svg/test_markers.py::test_markers_viewbox_size - AssertionE... FAILED tests/draw/svg/test_markers.py::test_markers_overflow - AssertionError... FAILED tests/draw/svg/test_markers.py::test_markers_userspace - AssertionErro... FAILED tests/draw/svg/test_markers.py::test_markers_stroke_width - AssertionE... FAILED tests/draw/svg/test_markers.py::test_markers_viewbox_stroke_width - As... FAILED tests/draw/svg/test_opacity.py::test_opacity - AssertionError: Ghostsc... FAILED tests/draw/svg/test_opacity.py::test_fill_opacity - AssertionError: Gh... FAILED tests/draw/svg/test_opacity.py::test_pattern_gradient_stroke_fill_opacity FAILED tests/draw/svg/test_opacity.py::test_translate_opacity - AssertionErro... FAILED tests/draw/svg/test_opacity.py::test_group_opacity_transformed_child FAILED tests/draw/svg/test_opacity.py::test_translate_use_opacity - Assertion... FAILED tests/draw/svg/test_paths.py::test_path_h - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_v - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_l - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_z - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_z_fill - AssertionError: Ghost... FAILED tests/draw/svg/test_paths.py::test_path_c - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_s - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_cs - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_q - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_t - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_qt - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_qt2 - AssertionError: Ghostscr... FAILED tests/draw/svg/test_paths.py::test_path_a - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_paths.py::test_path_a2 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_a3 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_a4 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_a5 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_a6 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_a7 - AssertionError: Ghostscri... FAILED tests/draw/svg/test_paths.py::test_path_wrong_point - AssertionError: ... FAILED tests/draw/svg/test_paths.py::test_path_markers_l - AssertionError: Gh... FAILED tests/draw/svg/test_paths.py::test_path_markers_hv - AssertionError: G... FAILED tests/draw/svg/test_paths.py::test_path_syntax - AssertionError: Ghost... FAILED tests/draw/svg/test_patterns.py::test_pattern - AssertionError: Ghosts... FAILED tests/draw/svg/test_patterns.py::test_pattern_2 - AssertionError: Ghos... FAILED tests/draw/svg/test_patterns.py::test_pattern_3 - AssertionError: Ghos... FAILED tests/draw/svg/test_patterns.py::test_pattern_4 - AssertionError: Ghos... FAILED tests/draw/svg/test_patterns.py::test_pattern_inherit_attributes - Ass... FAILED tests/draw/svg/test_patterns.py::test_pattern_inherit_children - Asser... FAILED tests/draw/svg/test_patterns.py::test_pattern_inherit_no_override - As... FAILED tests/draw/svg/test_shapes.py::test_rect_stroke - AssertionError: Ghos... FAILED tests/draw/svg/test_shapes.py::test_rect_fill - AssertionError: Ghosts... FAILED tests/draw/svg/test_shapes.py::test_rect_stroke_fill - AssertionError:... FAILED tests/draw/svg/test_shapes.py::test_rect_round - AssertionError: Ghost... FAILED tests/draw/svg/test_shapes.py::test_rect_round_zero - AssertionError: ... FAILED tests/draw/svg/test_shapes.py::test_line - AssertionError: Ghostscript... FAILED tests/draw/svg/test_shapes.py::test_polyline - AssertionError: Ghostsc... FAILED tests/draw/svg/test_shapes.py::test_polyline_fill - AssertionError: Gh... FAILED tests/draw/svg/test_shapes.py::test_polygon - AssertionError: Ghostscr... FAILED tests/draw/svg/test_shapes.py::test_polygon_fill - AssertionError: Gho... FAILED tests/draw/svg/test_shapes.py::test_circle_stroke - AssertionError: Gh... FAILED tests/draw/svg/test_shapes.py::test_circle_fill - AssertionError: Ghos... FAILED tests/draw/svg/test_shapes.py::test_ellipse_stroke - AssertionError: G... FAILED tests/draw/svg/test_shapes.py::test_ellipse_fill - AssertionError: Gho... FAILED tests/draw/svg/test_shapes.py::test_rect_in_g - AssertionError: Ghosts... FAILED tests/draw/svg/test_shapes.py::test_rect_x_y_in_g - AssertionError: Gh... FAILED tests/draw/svg/test_shapes.py::test_rect_stroke_zero - AssertionError:... FAILED tests/draw/svg/test_shapes.py::test_rect_width_height_zero - Assertion... FAILED tests/draw/svg/test_shapes.py::test_rect_fill_inherit - AssertionError... FAILED tests/draw/svg/test_text.py::test_text_fill - AssertionError: Ghostscr... FAILED tests/draw/svg/test_text.py::test_text_stroke - AssertionError: Ghosts... FAILED tests/draw/svg/test_text.py::test_text_x - AssertionError: Ghostscript... FAILED tests/draw/svg/test_text.py::test_text_y - AssertionError: Ghostscript... FAILED tests/draw/svg/test_text.py::test_text_xy - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_text.py::test_text_dx - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_text.py::test_text_dy - AssertionError: Ghostscrip... FAILED tests/draw/svg/test_text.py::test_text_dx_dy - AssertionError: Ghostsc... FAILED tests/draw/svg/test_text.py::test_text_anchor_start - AssertionError: ... FAILED tests/draw/svg/test_text.py::test_text_anchor_middle - AssertionError:... FAILED tests/draw/svg/test_text.py::test_text_anchor_end - AssertionError: Gh... FAILED tests/draw/svg/test_text.py::test_text_direction_rtl_anchor_start - As... FAILED tests/draw/svg/test_text.py::test_text_direction_rtl_anchor_end - Asse... FAILED tests/draw/svg/test_text.py::test_text_tspan - AssertionError: Ghostsc... FAILED tests/draw/svg/test_text.py::test_text_tspan_anchor_middle - Assertion... FAILED tests/draw/svg/test_text.py::test_text_tspan_anchor_end - AssertionErr... FAILED tests/draw/svg/test_text.py::test_text_anchor_middle_tspan - Assertion... FAILED tests/draw/svg/test_text.py::test_text_anchor_end_tspan - AssertionErr... FAILED tests/draw/svg/test_text.py::test_text_anchor_middle_tspan_head_tail FAILED tests/draw/svg/test_text.py::test_text_anchor_end_tspan_head_tail - As... FAILED tests/draw/svg/test_text.py::test_text_anchor_middle_end_tspan - Asser... FAILED tests/draw/svg/test_text.py::test_text_tspan_anchor_non_text - Asserti... FAILED tests/draw/svg/test_text.py::test_text_rotate - AssertionError: Ghosts... FAILED tests/draw/svg/test_text.py::test_text_text_length - AssertionError: G... FAILED tests/draw/svg/test_text.py::test_text_length_adjust_glyphs_only - Ass... FAILED tests/draw/svg/test_text.py::test_text_font_face - AssertionError: Gho... FAILED tests/draw/svg/test_text.py::test_text_font_face_css - AssertionError:... FAILED tests/draw/svg/test_text.py::test_text_length_adjust_spacing_and_glyphs FAILED tests/draw/svg/test_text.py::test_font_shorthand - AssertionError: Gho... FAILED tests/draw/svg/test_text.py::test_font_shorthand_inheritance_from_parent FAILED tests/draw/svg/test_text.py::test_explicit_properties_override_parent_shorthand FAILED tests/draw/svg/test_text.py::test_font_shorthand_overrides_explicit_parent_properties FAILED tests/draw/svg/test_text.py::test_child_font_shorthand_overrides_parent_shorthand FAILED tests/draw/svg/test_text.py::test_mixed_explicit_and_shorthand_across_levels FAILED tests/draw/svg/test_text.py::test_text_fill_opacity - AssertionError: ... FAILED tests/draw/svg/test_transform.py::test_transform_translate - Assertion... FAILED tests/draw/svg/test_transform.py::test_transform_translate_one - Asser... FAILED tests/draw/svg/test_transform.py::test_transform_translatex - Assertio... FAILED tests/draw/svg/test_transform.py::test_transform_translatey - Assertio... FAILED tests/draw/svg/test_transform.py::test_transform_rotate - AssertionErr... FAILED tests/draw/svg/test_transform.py::test_transform_rotate_cx_cy - Assert... FAILED tests/draw/svg/test_transform.py::test_transform_rotate_angle_units[90deg] FAILED tests/draw/svg/test_transform.py::test_transform_rotate_angle_units[100grad] FAILED tests/draw/svg/test_transform.py::test_transform_rotate_angle_units[1.5707963267948966rad] FAILED tests/draw/svg/test_transform.py::test_transform_rotate_angle_units[.25turn] FAILED tests/draw/svg/test_transform.py::test_transform_skew - AssertionError... FAILED tests/draw/svg/test_transform.py::test_transform_skew_one - AssertionE... FAILED tests/draw/svg/test_transform.py::test_transform_skewx - AssertionErro... FAILED tests/draw/svg/test_transform.py::test_transform_skewy - AssertionErro... FAILED tests/draw/svg/test_transform.py::test_transform_scale - AssertionErro... FAILED tests/draw/svg/test_transform.py::test_transform_scale_2 - AssertionEr... FAILED tests/draw/svg/test_transform.py::test_transform_scalex - AssertionErr... FAILED tests/draw/svg/test_transform.py::test_transform_scaley - AssertionErr... FAILED tests/draw/svg/test_transform.py::test_transform_matrix - AssertionErr... FAILED tests/draw/svg/test_transform.py::test_transform_multiple - AssertionE... FAILED tests/draw/svg/test_transform.py::test_transform_unknown - AssertionEr... FAILED tests/draw/svg/test_transform.py::test_transform_origin - AssertionErr... FAILED tests/draw/svg/test_units.py::test_units_px - AssertionError: Ghostscr... FAILED tests/draw/svg/test_units.py::test_units_em - AssertionError: Ghostscr... FAILED tests/draw/svg/test_units.py::test_units_ex - AssertionError: Ghostscr... FAILED tests/draw/svg/test_units.py::test_units_unknown - AssertionError: Gho... FAILED tests/draw/svg/test_units.py::test_units_percentage - AssertionError: ... FAILED tests/draw/svg/test_units.py::test_units_percentage_after_nested_svg FAILED tests/draw/svg/test_units.py::test_units_percentage_sibling_nested_svg FAILED tests/draw/svg/test_visibility.py::test_visibility_visible - Assertion... FAILED tests/draw/svg/test_visibility.py::test_visibility_hidden - AssertionE... FAILED tests/draw/svg/test_visibility.py::test_visibility_inherit_hidden - As... FAILED tests/draw/svg/test_visibility.py::test_visibility_inherit_visible - A... FAILED tests/draw/svg/test_visibility.py::test_display_inline - AssertionErro... FAILED tests/draw/svg/test_visibility.py::test_display_none - AssertionError:... FAILED tests/draw/svg/test_visibility.py::test_display_inherit_none - Asserti... FAILED tests/draw/svg/test_visibility.py::test_display_inherit_inline - Asser... FAILED tests/draw/test_absolute.py::test_absolute_split_1 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_2 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_3 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_4 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_5 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_6 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_7 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_8 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_9 - AssertionError: G... FAILED tests/draw/test_absolute.py::test_absolute_split_10 - AssertionError: ... FAILED tests/draw/test_absolute.py::test_absolute_split_11 - AssertionError: ... FAILED tests/draw/test_absolute.py::test_absolute_split_12 - AssertionError: ... FAILED tests/draw/test_absolute.py::test_absolute_rtl_1 - AssertionError: Gho... FAILED tests/draw/test_absolute.py::test_absolute_rtl_2 - AssertionError: Gho... FAILED tests/draw/test_absolute.py::test_absolute_rtl_3 - AssertionError: Gho... FAILED tests/draw/test_absolute.py::test_absolute_rtl_4 - AssertionError: Gho... FAILED tests/draw/test_absolute.py::test_absolute_rtl_5 - AssertionError: Gho... FAILED tests/draw/test_absolute.py::test_absolute_pages_counter - AssertionEr... FAILED tests/draw/test_absolute.py::test_absolute_pages_counter_orphans - Ass... FAILED tests/draw/test_absolute.py::test_absolute_in_inline - AssertionError:... FAILED tests/draw/test_absolute.py::test_fixed_in_inline - AssertionError: Gh... FAILED tests/draw/test_absolute.py::test_absolute_image_background - Assertio... FAILED tests/draw/test_absolute.py::test_absolute_in_absolute_break - Asserti... FAILED tests/draw/test_absolute.py::test_absolute_alternative_layout[absolute-grid] FAILED tests/draw/test_absolute.py::test_absolute_alternative_layout[absolute-flex] FAILED tests/draw/test_absolute.py::test_absolute_alternative_layout[relative-grid] FAILED tests/draw/test_absolute.py::test_absolute_alternative_layout[relative-flex] FAILED tests/draw/test_background.py::test_canvas_background[BBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\nBBBBBBBBBB\n-\n \n ] FAILED tests/draw/test_background.py::test_canvas_background[\n rrrrrrrrrr\n rrrrrrrrrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrBBBBBBrr\n rrrrrrrrrr\n rrrrrrrrrr\n rrrrrrrrrr\n -\n \n ] FAILED tests/draw/test_background.py::test_canvas_background_size - Assertion... FAILED tests/draw/test_background.py::test_background_image[url(pattern.png)-\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) repeat-x-\n ______________\n ______________\n __rBBBrBBBrB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) repeat-y-\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n __rBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 0 0%-\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 50% 0px-\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 6px top-\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat bottom 6PX right 0-\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat left center-\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat center left-\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 3px 3px-\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 100% 50%-\n ______________\n ______________\n ______________\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 0% bottom-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n __rBBB________\n __BBBB________\n __BBBB________\n __BBBB________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat center 6px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat bottom center-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 6px 100%-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ________rBBB__\n ________BBBB__\n ________BBBB__\n ________BBBB__\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) repeat-x 1px 2px-\n ______________\n ______________\n ______________\n ______________\n __BrBBBrBBBr__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n __BBBBBBBBBB__\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) repeat-y local 2pX 1px-\n ______________\n ______________\n ____BBBB______\n ____rBBB______\n ____BBBB______\n ____BBBB______\n ____BBBB______\n ____rBBB______\n ____BBBB______\n ____BBBB______\n ____BBBB______\n ____rBBB______\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat fixed-\n # The image is actually here:\n #######\n ______________\n ______________\n __BB__________\n __BB__________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat fixed right 3px-\n # x x x x\n ______________\n ______________\n ______________\n __________rB__ #\n __________BB__ #\n __________BB__ #\n __________BB__ #\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png)no-repeat fixed 50%center-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _____rBBB_____\n _____BBBB_____\n _____BBBB_____\n _____BBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat, url(pattern.png) no-repeat 2px 1px-\n ______________\n ______________\n __rBBB________\n __BBBBBB______\n __BBBBBB______\n __BBBBBB______\n ____BBBB______\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image[url(pattern.png) no-repeat 2px 1px, url(pattern.png) no-repeat-\n ______________\n ______________\n __rBBB________\n __BBrBBB______\n __BBBBBB______\n __BBBBBB______\n ____BBBB______\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_background.py::test_background_image_zero_size_background FAILED tests/draw/test_background.py::test_background_origin[border-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ] FAILED tests/draw/test_background.py::test_background_origin[padding-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ______rBBB__\n ______BBBB__\n ______BBBB__\n ______BBBB__\n ____________\n ____________\n ] FAILED tests/draw/test_background.py::test_background_origin[content-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n _____rBBB___\n _____BBBB___\n _____BBBB___\n _____BBBB___\n ____________\n ____________\n ____________\n ] FAILED tests/draw/test_background.py::test_background_origin[border-box; background-clip: content-box-\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rB___\n _______BB___\n ____________\n ____________\n ____________\n ] FAILED tests/draw/test_background.py::test_background_transform - AssertionEr... FAILED tests/draw/test_background.py::test_background_repeat_space_1 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_space_2 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_space_3 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_space_4 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_round_1 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_round_2 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_round_3 - Assert... FAILED tests/draw/test_background.py::test_background_repeat_round_4 - Assert... FAILED tests/draw/test_background.py::test_background_clip[#00f border-box-\n ________\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n _BBBBBB_\n ________\n ] FAILED tests/draw/test_background.py::test_background_clip[#00f padding-box-\n ________\n ________\n __BBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n ] FAILED tests/draw/test_background.py::test_background_clip[#00f content-box-\n ________\n ________\n ________\n ___BB___\n ___BB___\n ________\n ________\n ________\n ] FAILED tests/draw/test_background.py::test_background_clip[url(pattern.png) padding-box, #0f0-\n ________\n _GGGGGG_\n _GrBBBG_\n _GBBBBG_\n _GBBBBG_\n _GBBBBG_\n _GGGGGG_\n ________\n ] FAILED tests/draw/test_background.py::test_background_size[\n ____________\n ____________\n ____________\n ___rrBBBBBB_\n ___rrBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ___BBBBBBBB_\n ____________\n -\n \n ] FAILED tests/draw/test_background.py::test_background_size[\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n -\n \n ] FAILED tests/draw/test_background.py::test_background_size[\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n -\n \n ] FAILED tests/draw/test_background.py::test_background_size[\n ______________\n _rrBBBBBB_____\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n -\n \n ] FAILED tests/draw/test_background.py::test_background_size[\n ______________\n _rrBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n _BBBBBBBB_____\n ______________\n ______________\n ______________\n ______________\n ______________\n -\n \n ] FAILED tests/draw/test_background.py::test_background_size[\n ______________\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _rrrBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n _BBBBBBBBBBBB_\n ______________\n -\n \n ] FAILED tests/draw/test_background.py::test_bleed_background_size - AssertionE... FAILED tests/draw/test_background.py::test_background_size_clip - AssertionEr... FAILED tests/draw/test_background.py::test_page_background_fixed - AssertionE... FAILED tests/draw/test_background.py::test_page_background_fixed_bleed - Asse... FAILED tests/draw/test_background.py::test_bleed_background_size_clip - Asser... FAILED tests/draw/test_background.py::test_marks_crop - AssertionError: Ghost... FAILED tests/draw/test_background.py::test_marks_cross - AssertionError: Ghos... FAILED tests/draw/test_background.py::test_marks_crop_cross - AssertionError:... FAILED tests/draw/test_before_after.py::test_before_after_1 - AssertionError:... FAILED tests/draw/test_before_after.py::test_before_after_2 - AssertionError:... FAILED tests/draw/test_before_after.py::test_before_after_3 - AssertionError:... FAILED tests/draw/test_box.py::test_outlines_and_borders[10px-border] - Asser... FAILED tests/draw/test_box.py::test_outlines_and_borders[20px-outline] - Asse... FAILED tests/draw/test_box.py::test_borders_table_collapse - AssertionError: ... FAILED tests/draw/test_box.py::test_borders_table_collapse_equivalent[styles0] FAILED tests/draw/test_box.py::test_borders_table_collapse_equivalent[styles1] FAILED tests/draw/test_box.py::test_borders_box_sizing - AssertionError: Ghos... FAILED tests/draw/test_box.py::test_margin_boxes - AssertionError: Ghostscrip... FAILED tests/draw/test_box.py::test_draw_border_radius - AssertionError: Ghos... FAILED tests/draw/test_box.py::test_draw_split_border_radius - AssertionError... FAILED tests/draw/test_box.py::test_border_image_stretch - AssertionError: Gh... FAILED tests/draw/test_box.py::test_border_image_fill - AssertionError: Ghost... FAILED tests/draw/test_box.py::test_border_image_default_slice - AssertionErr... FAILED tests/draw/test_box.py::test_border_image_uneven_width - AssertionErro... FAILED tests/draw/test_box.py::test_border_image_not_percent - AssertionError... FAILED tests/draw/test_box.py::test_border_image_repeat - AssertionError: Gho... FAILED tests/draw/test_box.py::test_border_image_space - AssertionError: Ghos... FAILED tests/draw/test_box.py::test_border_image_outset - AssertionError: Gho... FAILED tests/draw/test_box.py::test_border_image_width - AssertionError: Ghos... FAILED tests/draw/test_box.py::test_border_image_gradient - AssertionError: G... FAILED tests/draw/test_box.py::test_border_image_gradient_units - AssertionEr... FAILED tests/draw/test_box.py::test_mask_border - AssertionError: Ghostscript... FAILED tests/draw/test_box.py::test_mask_border_fill - AssertionError: Ghosts... FAILED tests/draw/test_box.py::test_outline_and_border - AssertionError: Ghos... FAILED tests/draw/test_box.py::test_outline_offset - AssertionError: Ghostscr... FAILED tests/draw/test_box.py::test_infinite_border_radius - AssertionError: ... FAILED tests/draw/test_box.py::test_box_shadow_outset - AssertionError: Ghost... FAILED tests/draw/test_box.py::test_box_shadow_outset_spread - AssertionError... FAILED tests/draw/test_box.py::test_box_shadow_outset_negative_spread - Asser... FAILED tests/draw/test_box.py::test_box_shadow_outset_big_negative_spread - A... FAILED tests/draw/test_box.py::test_box_shadow_inset - AssertionError: Ghosts... FAILED tests/draw/test_box.py::test_box_shadow_inset_spread - AssertionError:... FAILED tests/draw/test_box.py::test_box_shadow_inset_negative_spread - Assert... FAILED tests/draw/test_box.py::test_box_shadow_inset_big_negative_spread - As... FAILED tests/draw/test_box.py::test_box_shadow_transparent_background - Asser... FAILED tests/draw/test_box.py::test_box_shadow_inset_outset - AssertionError:... FAILED tests/draw/test_box.py::test_box_shadow_multiple_outset - AssertionErr... FAILED tests/draw/test_box.py::test_box_shadow_multiple_inset - AssertionErro... FAILED tests/draw/test_box.py::test_box_shadow_outset_radius - AssertionError... FAILED tests/draw/test_box.py::test_box_shadow_inset_radius - AssertionError:... FAILED tests/draw/test_cmyk_color_profiles.py::test_device_cmyk_with_icc - As... FAILED tests/draw/test_cmyk_color_profiles.py::test_device_cmyk_without_icc FAILED tests/draw/test_cmyk_color_profiles.py::test_custom_cmyk_with_icc - As... FAILED tests/draw/test_cmyk_color_profiles.py::test_image_cmyk_without_icc - ... FAILED tests/draw/test_cmyk_color_profiles.py::test_image_cmyk_with_external_icc FAILED tests/draw/test_cmyk_color_profiles.py::test_image_cmyk_with_icc - Ass... FAILED tests/draw/test_column.py::test_column_rule_1 - AssertionError: Ghosts... FAILED tests/draw/test_column.py::test_column_rule_2 - AssertionError: Ghosts... FAILED tests/draw/test_column.py::test_column_rule_span - AssertionError: Gho... FAILED tests/draw/test_current_color.py::test_current_color_1 - AssertionErro... FAILED tests/draw/test_current_color.py::test_current_color_2 - AssertionErro... FAILED tests/draw/test_current_color.py::test_current_color_3 - AssertionErro... FAILED tests/draw/test_current_color.py::test_current_color_4 - AssertionErro... FAILED tests/draw/test_current_color.py::test_current_color_svg_1 - Assertion... FAILED tests/draw/test_current_color.py::test_current_color_variable - Assert... FAILED tests/draw/test_current_color.py::test_current_color_variable_border FAILED tests/draw/test_float.py::test_float - AssertionError: Ghostscript err... FAILED tests/draw/test_float.py::test_float_rtl - AssertionError: Ghostscript... FAILED tests/draw/test_float.py::test_float_inline - AssertionError: Ghostscr... FAILED tests/draw/test_float.py::test_float_inline_rtl - AssertionError: Ghos... FAILED tests/draw/test_float.py::test_float_inline_block - AssertionError: Gh... FAILED tests/draw/test_float.py::test_float_inline_block_rtl - AssertionError... FAILED tests/draw/test_float.py::test_float_table - AssertionError: Ghostscri... FAILED tests/draw/test_float.py::test_float_table_rtl - AssertionError: Ghost... FAILED tests/draw/test_float.py::test_float_inline_table - AssertionError: Gh... FAILED tests/draw/test_float.py::test_float_inline_table_rtl - AssertionError... FAILED tests/draw/test_float.py::test_float_replaced_block - AssertionError: ... FAILED tests/draw/test_float.py::test_float_replaced_block_rtl - AssertionErr... FAILED tests/draw/test_float.py::test_float_margin - AssertionError: Ghostscr... FAILED tests/draw/test_float.py::test_float_split_1 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_2 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_3 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_4 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_5 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_6 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_7 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_8 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_9 - AssertionError: Ghostsc... FAILED tests/draw/test_float.py::test_float_split_10 - AssertionError: Ghosts... FAILED tests/draw/test_float.py::test_float_split_11 - AssertionError: Ghosts... FAILED tests/draw/test_float.py::test_float_split_12 - AssertionError: Ghosts... FAILED tests/draw/test_float.py::test_float_split_14 - AssertionError: Ghosts... FAILED tests/draw/test_float.py::test_float_split_clear - AssertionError: Gho... FAILED tests/draw/test_float.py::test_float_split_clear_float - AssertionErro... FAILED tests/draw/test_float.py::test_float_split_clear_empty - AssertionErro... FAILED tests/draw/test_float.py::test_float_split_large_parent - AssertionErr... FAILED tests/draw/test_float.py::test_float_split_in_stacking_context - Asser... FAILED tests/draw/test_footnote.py::test_inline_footnote - AssertionError: Gh... FAILED tests/draw/test_footnote.py::test_block_footnote - AssertionError: Gho... FAILED tests/draw/test_footnote.py::test_long_footnote - AssertionError: Ghos... FAILED tests/draw/test_footnote.py::test_footnote_margin - AssertionError: Gh... FAILED tests/draw/test_footnote.py::test_footnote_multiple_margin - Assertion... FAILED tests/draw/test_footnote.py::test_footnote_with_absolute - AssertionEr... FAILED tests/draw/test_footnote.py::test_footnote_max_height_1 - AssertionErr... FAILED tests/draw/test_footnote.py::test_footnote_max_height_2 - AssertionErr... FAILED tests/draw/test_footnote.py::test_footnote_max_height_3 - AssertionErr... FAILED tests/draw/test_footnote.py::test_footnote_max_height_4 - AssertionErr... FAILED tests/draw/test_footnote.py::test_footnote_max_height_5 - AssertionErr... FAILED tests/draw/test_footnote_column.py::test_footnote_column_margin_top - ... FAILED tests/draw/test_footnote_column.py::test_footnote_column_fill_auto - A... FAILED tests/draw/test_footnote_column.py::test_footnote_column_fill_auto_break_inside_avoid FAILED tests/draw/test_footnote_column.py::test_footnote_column_p_after - Ass... FAILED tests/draw/test_footnote_column.py::test_footnote_column_p_before - As... FAILED tests/draw/test_footnote_column.py::test_footnote_column_3 - Assertion... FAILED tests/draw/test_footnote_column.py::test_footnote_column_3_p_before - ... FAILED tests/draw/test_footnote_column.py::test_footnote_column_clone_decoration FAILED tests/draw/test_footnote_column.py::test_footnote_column_max_height - ... FAILED tests/draw/test_gradient.py::test_linear_gradients_1 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_2 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_3 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_4 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_6 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_7 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_8 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_9 - AssertionError:... FAILED tests/draw/test_gradient.py::test_linear_gradients_10 - AssertionError... FAILED tests/draw/test_gradient.py::test_linear_gradients_11 - AssertionError... FAILED tests/draw/test_gradient.py::test_linear_gradients_13 - AssertionError... FAILED tests/draw/test_gradient.py::test_linear_gradients_currentcolor - Asse... FAILED tests/draw/test_gradient.py::test_linear_gradients_hints - AssertionEr... FAILED tests/draw/test_gradient.py::test_linear_gradients_hints_percentage - ... FAILED tests/draw/test_gradient.py::test_radial_gradients_1 - AssertionError:... FAILED tests/draw/test_gradient.py::test_radial_gradients_2 - AssertionError:... FAILED tests/draw/test_gradient.py::test_radial_gradients_3 - AssertionError:... FAILED tests/draw/test_gradient.py::test_radial_gradients_4 - AssertionError:... FAILED tests/draw/test_gradient.py::test_radial_gradients_5 - AssertionError:... FAILED tests/draw/test_gradient.py::test_radial_gradients_negative - Assertio... FAILED tests/draw/test_gradient.py::test_radial_gradients_repeating - Asserti... FAILED tests/draw/test_gradient.py::test_radial_gradients_repeating_outer - A... FAILED tests/draw/test_gradient.py::test_radial_gradients_repeating_outer_partial FAILED tests/draw/test_gradient.py::test_radial_gradients_repeating_negative FAILED tests/draw/test_gradient.py::test_radial_gradients_hints - AssertionEr... FAILED tests/draw/test_gradient.py::test_radial_gradients_hints_percentage - ... FAILED tests/draw/test_image.py::test_images[pattern.svg-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] FAILED tests/draw/test_image.py::test_images[pattern.png-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] FAILED tests/draw/test_image.py::test_images[pattern.palette.png-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] FAILED tests/draw/test_image.py::test_images[pattern.gif-\n ________\n ________\n __rBBB__\n __BBBB__\n __BBBB__\n __BBBB__\n ________\n ________\n] FAILED tests/draw/test_image.py::test_images[blue.jpg-\n ________\n ________\n __aaaa__\n __aaaa__\n __aaaa__\n __aaaa__\n ________\n ________\n] FAILED tests/draw/test_image.py::test_resized_images[pattern.svg] - Assertion... FAILED tests/draw/test_image.py::test_resized_images[pattern.png] - Assertion... FAILED tests/draw/test_image.py::test_resized_images[pattern.palette.png] - A... FAILED tests/draw/test_image.py::test_resized_images[pattern.gif] - Assertion... FAILED tests/draw/test_image.py::test_image_overflow - AssertionError: Ghosts... FAILED tests/draw/test_image.py::test_svg_sizing[None-None-None] - AssertionE... FAILED tests/draw/test_image.py::test_svg_sizing[None-4-None] - AssertionErro... FAILED tests/draw/test_image.py::test_svg_sizing[None-None-4] - AssertionErro... FAILED tests/draw/test_image.py::test_svg_sizing[None-4-4] - AssertionError: ... FAILED tests/draw/test_image.py::test_svg_sizing[0 0 4 4-4-None] - AssertionE... FAILED tests/draw/test_image.py::test_svg_sizing[0 0 4 4-None-4] - AssertionE... FAILED tests/draw/test_image.py::test_svg_sizing[0 0 4 4-4-4] - AssertionErro... FAILED tests/draw/test_image.py::test_svg_sizing_percentage[style="width: 100%; height: 100%"] FAILED tests/draw/test_image.py::test_svg_sizing_percentage[width="100%" height="100%"] FAILED tests/draw/test_image.py::test_svg_resizing[None-None-None-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[None-8-None-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[None-None-8-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[None-8-8-\n ____________\n ____________\n __rBBB______\n __BBBB______\n __BBBB______\n __BBBB______\n ____________\n ____________\n ____________\n ____________\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[0 0 4 4-None-None-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[0 0 4 4-8-None-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[0 0 4 4-None-8-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_svg_resizing[0 0 4 4-8-8-\n ____________\n ____________\n __rrBBBBBB__\n __rrBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n __BBBBBBBB__\n ____________\n ____________\n] FAILED tests/draw/test_image.py::test_images_block - AssertionError: Ghostscr... FAILED tests/draw/test_image.py::test_images_not_found - AssertionError: Ghos... FAILED tests/draw/test_image.py::test_images_refused - AssertionError: Ghosts... FAILED tests/draw/test_image.py::test_images_no_src - AssertionError: Ghostsc... FAILED tests/draw/test_image.py::test_images_alt - AssertionError: Ghostscrip... FAILED tests/draw/test_image.py::test_images_repeat_transparent - AssertionEr... FAILED tests/draw/test_image.py::test_images_no_width - AssertionError: Ghost... FAILED tests/draw/test_image.py::test_images_no_height - AssertionError: Ghos... FAILED tests/draw/test_image.py::test_images_no_width_height - AssertionError... FAILED tests/draw/test_image.py::test_images_page_break - AssertionError: Gho... FAILED tests/draw/test_image.py::test_image_repeat_inline - AssertionError: G... FAILED tests/draw/test_image.py::test_image_repeat_block - AssertionError: Gh... FAILED tests/draw/test_image.py::test_images_padding - AssertionError: Ghosts... FAILED tests/draw/test_image.py::test_images_in_inline_block - AssertionError... FAILED tests/draw/test_image.py::test_images_transparent_text - AssertionErro... FAILED tests/draw/test_image.py::test_images_shared_pattern - AssertionError:... FAILED tests/draw/test_image.py::test_image_resolution - AssertionError: Ghos... FAILED tests/draw/test_image.py::test_image_cover - AssertionError: Ghostscri... FAILED tests/draw/test_image.py::test_image_contain - AssertionError: Ghostsc... FAILED tests/draw/test_image.py::test_image_none - AssertionError: Ghostscrip... FAILED tests/draw/test_image.py::test_image_scale_down - AssertionError: Ghos... FAILED tests/draw/test_image.py::test_image_position - AssertionError: Ghosts... FAILED tests/draw/test_image.py::test_images_border - AssertionError: Ghostsc... FAILED tests/draw/test_image.py::test_images_border_absolute - AssertionError... FAILED tests/draw/test_image.py::test_image_exif - AssertionError: Ghostscrip... FAILED tests/draw/test_image.py::test_image_exif_image_orientation - Assertio... FAILED tests/draw/test_image.py::test_image_after_alpha[1px solid #1111-pattern.svg] FAILED tests/draw/test_image.py::test_image_after_alpha[1px solid #1111-pattern.png] FAILED tests/draw/test_image.py::test_image_after_alpha[1px dotted #1111-pattern.svg] FAILED tests/draw/test_image.py::test_image_after_alpha[1px dotted #1111-pattern.png] FAILED tests/draw/test_leader.py::test_leader_simple - AssertionError: Ghosts... FAILED tests/draw/test_leader.py::test_leader_too_long - AssertionError: Ghos... FAILED tests/draw/test_leader.py::test_leader_alone - AssertionError: Ghostsc... FAILED tests/draw/test_leader.py::test_leader_content - AssertionError: Ghost... FAILED tests/draw/test_leader.py::test_leader_in_inline - AssertionError: Gho... FAILED tests/draw/test_leader.py::test_leader_simple_rtl - AssertionError: Gh... FAILED tests/draw/test_leader.py::test_leader_too_long_rtl - AssertionError: ... FAILED tests/draw/test_leader.py::test_leader_float_leader - AssertionError: ... FAILED tests/draw/test_leader.py::test_leader_empty_string - AssertionError: ... FAILED tests/draw/test_leader.py::test_leader_zero_width_string - AssertionEr... FAILED tests/draw/test_leader.py::test_leader_absolute - AssertionError: Ghos... FAILED tests/draw/test_leader.py::test_leader_padding - AssertionError: Ghost... FAILED tests/draw/test_leader.py::test_leader_inline_padding - AssertionError... FAILED tests/draw/test_leader.py::test_leader_margin - AssertionError: Ghosts... FAILED tests/draw/test_leader.py::test_leader_inline_margin - AssertionError:... FAILED tests/draw/test_list.py::test_list_style_image[outside-\n ____________\n ____________\n ___rBBB_____\n ___BBBB_____\n ___BBBB_____\n ___BBBB_____\n ____________\n ____________\n ____________\n ____________\n ] FAILED tests/draw/test_list.py::test_list_style_image[inside-\n ____________\n ____________\n _______rBBB_\n _______BBBB_\n _______BBBB_\n _______BBBB_\n ____________\n ____________\n ____________\n ____________\n ] FAILED tests/draw/test_list.py::test_list_style_image_none - AssertionError: ... FAILED tests/draw/test_note.py::test_one_note - AssertionError: Ghostscript e... FAILED tests/draw/test_note.py::test_several_note - AssertionError: Ghostscri... FAILED tests/draw/test_note.py::test_inline_note - AssertionError: Ghostscrip... FAILED tests/draw/test_note.py::test_absolute_note - AssertionError: Ghostscr... FAILED tests/draw/test_note.py::test_float_left_note - AssertionError: Ghosts... FAILED tests/draw/test_note.py::test_float_right_note - AssertionError: Ghost... FAILED tests/draw/test_note.py::test_float_left_margin_note - AssertionError:... FAILED tests/draw/test_note.py::test_flex_note - AssertionError: Ghostscript ... FAILED tests/draw/test_note.py::test_grid_note - AssertionError: Ghostscript ... FAILED tests/draw/test_note.py::test_next_page_note - AssertionError: Ghostsc... FAILED tests/draw/test_note.py::test_next_page_split_note - AssertionError: G... FAILED tests/draw/test_opacity.py::test_opacity_zero - AssertionError: Ghosts... FAILED tests/draw/test_opacity.py::test_opacity_normal_range - AssertionError... FAILED tests/draw/test_opacity.py::test_opacity_nested - AssertionError: Ghos... FAILED tests/draw/test_opacity.py::test_opacity_percent_clamp_down - Assertio... FAILED tests/draw/test_opacity.py::test_opacity_percent_clamp_up - AssertionE... FAILED tests/draw/test_opacity.py::test_opacity_black - AssertionError: Ghost... FAILED tests/draw/test_overflow.py::test_overflow_1 - AssertionError: Ghostsc... FAILED tests/draw/test_overflow.py::test_overflow_2 - AssertionError: Ghostsc... FAILED tests/draw/test_overflow.py::test_overflow_3 - AssertionError: Ghostsc... FAILED tests/draw/test_overflow.py::test_overflow_4 - AssertionError: Ghostsc... FAILED tests/draw/test_overflow.py::test_overflow_5 - AssertionError: Ghostsc... FAILED tests/draw/test_overflow.py::test_clip[1-5px, 5px, 9px, auto-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______rBBBrBg_\n ______BBBBBBg_\n ______BBBBBBg_\n ______BBBBBBg_\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_overflow.py::test_clip[2-5px, 5px, auto, 10px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______rBBBr___\n ______BBBBB___\n ______ggggg___\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_overflow.py::test_clip[3-5px, auto, 9px, 10px-\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n _grBBBrBBBr___\n _gBBBBBBBBB___\n _gBBBBBBBBB___\n _gBBBBBBBBB___\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_overflow.py::test_clip[4-auto, 5px, 9px, 10px-\n ______________\n ______ggggg___\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______rBBBr___\n ______BBBBB___\n ______BBBBB___\n ______BBBBB___\n ______________\n ______________\n ______________\n ______________\n ______________\n ______________\n ] FAILED tests/draw/test_page.py::test_nth_page[2n-_R_R_R_R_R] - AssertionError... FAILED tests/draw/test_page.py::test_nth_page[even-_R_R_R_R_R] - AssertionErr... FAILED tests/draw/test_page.py::test_nth_page[2n+1-R_R_R_R_R_] - AssertionErr... FAILED tests/draw/test_page.py::test_nth_page[odd-R_R_R_R_R_] - AssertionErro... FAILED tests/draw/test_page.py::test_nth_page[2n+3-__R_R_R_R_] - AssertionErr... FAILED tests/draw/test_page.py::test_nth_page[n-RRRRRRRRRR] - AssertionError:... FAILED tests/draw/test_page.py::test_nth_page[n-1-RRRRRRRRRR] - AssertionErro... FAILED tests/draw/test_page.py::test_nth_page[-n+3-RRR_______] - AssertionErr... FAILED tests/draw/test_page.py::test_nth_page[-2n+3-R_R_______] - AssertionEr... FAILED tests/draw/test_page.py::test_nth_page[-n-3-__________] - AssertionErr... FAILED tests/draw/test_page.py::test_nth_page[3-__R_______] - AssertionError:... FAILED tests/draw/test_page.py::test_nth_page[0n+0-__________] - AssertionErr... FAILED tests/draw/test_table.py::test_tables_1 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_1_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_2 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_2_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_3 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_3_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_4 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_4_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_5 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_5_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_6 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_6_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_7 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_7_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_8 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_8_rtl - AssertionError: Ghostscr... FAILED tests/draw/test_table.py::test_tables_9 - AssertionError: Ghostscript ... FAILED tests/draw/test_table.py::test_tables_10 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_11 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_12 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_13 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_15 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_16 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_17 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_18 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_19 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_20 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_21 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_22 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_24 - AssertionError: Ghostscript... FAILED tests/draw/test_table.py::test_tables_24_rtl - AssertionError: Ghostsc... FAILED tests/draw/test_table.py::test_running_elements_table_border_collapse FAILED tests/draw/test_table.py::test_running_elements_table_border_collapse_empty FAILED tests/draw/test_table.py::test_running_elements_table_border_collapse_span FAILED tests/draw/test_table.py::test_running_elements_table_border_collapse_margin FAILED tests/draw/test_table.py::test_tables_split_row - AssertionError: Ghos... FAILED tests/draw/test_table.py::test_tables_column_background - AssertionErr... FAILED tests/draw/test_table.py::test_tables_border_tfoot - AssertionError: G... FAILED tests/draw/test_text.py::test_text_overflow_clip - AssertionError: Gho... FAILED tests/draw/test_text.py::test_text_overflow_ellipsis - AssertionError:... FAILED tests/draw/test_text.py::test_text_align_rtl_trailing_whitespace - Ass... FAILED tests/draw/test_text.py::test_rtl_default_direction - AssertionError: ... FAILED tests/draw/test_text.py::test_rtl_forced_direction - AssertionError: G... FAILED tests/draw/test_text.py::test_rtl_nested_inline - AssertionError: Ghos... FAILED tests/draw/test_text.py::test_max_lines_ellipsis - AssertionError: Gho... FAILED tests/draw/test_text.py::test_line_clamp - AssertionError: Ghostscript... FAILED tests/draw/test_text.py::test_line_clamp_none - AssertionError: Ghosts... FAILED tests/draw/test_text.py::test_line_clamp_number - AssertionError: Ghos... FAILED tests/draw/test_text.py::test_line_clamp_nested - AssertionError: Ghos... FAILED tests/draw/test_text.py::test_line_clamp_nested_after - AssertionError... FAILED tests/draw/test_text.py::test_text_align_right - AssertionError: Ghost... FAILED tests/draw/test_text.py::test_text_align_justify - AssertionError: Gho... FAILED tests/draw/test_text.py::test_text_align_justify_nbsp - AssertionError... FAILED tests/draw/test_text.py::test_text_word_spacing - AssertionError: Ghos... FAILED tests/draw/test_text.py::test_text_letter_spacing - AssertionError: Gh... FAILED tests/draw/test_text.py::test_text_underline - AssertionError: Ghostsc... FAILED tests/draw/test_text.py::test_text_underline_offset - AssertionError: ... FAILED tests/draw/test_text.py::test_text_underline_offset_percentage - Asser... FAILED tests/draw/test_text.py::test_text_underline_offset_calc - AssertionEr... FAILED tests/draw/test_text.py::test_text_underline_thickness - AssertionErro... FAILED tests/draw/test_text.py::test_text_underline_thickness_percentage - As... FAILED tests/draw/test_text.py::test_text_underline_thickness_calc - Assertio... FAILED tests/draw/test_text.py::test_text_underline_thickness_calc_inherit - ... FAILED tests/draw/test_text.py::test_text_overline - AssertionError: Ghostscr... FAILED tests/draw/test_text.py::test_text_line_through - AssertionError: Ghos... FAILED tests/draw/test_text.py::test_text_multiple_text_decoration - Assertio... FAILED tests/draw/test_text.py::test_text_nested_text_decoration - AssertionE... FAILED tests/draw/test_text.py::test_text_decoration_var - AssertionError: Gh... FAILED tests/draw/test_text.py::test_zero_width_character - AssertionError: G... FAILED tests/draw/test_text.py::test_font_size_very_small - AssertionError: G... FAILED tests/draw/test_text.py::test_missing_glyph_fallback - AssertionError:... FAILED tests/draw/test_text.py::test_tabulation_character - AssertionError: G... FAILED tests/draw/test_text.py::test_otb_font - AssertionError: Ghostscript e... FAILED tests/draw/test_text.py::test_huge_justification - AssertionError: Gho... FAILED tests/draw/test_text.py::test_font_variant_caps_small - AssertionError... FAILED tests/draw/test_text.py::test_font_variant_caps_all_small - AssertionE... FAILED tests/draw/test_text.py::test_font_variant_caps_petite - AssertionErro... FAILED tests/draw/test_text.py::test_font_variant_caps_all_petite - Assertion... FAILED tests/draw/test_text.py::test_font_variant_caps_unicase - AssertionErr... FAILED tests/draw/test_text.py::test_font_variant_caps_titling - AssertionErr... FAILED tests/draw/test_text.py::test_unicode_range - AssertionError: Ghostscr... FAILED tests/draw/test_transform.py::test_2d_transform_5 - AssertionError: Gh... FAILED tests/draw/test_transform.py::test_2d_transform_6 - AssertionError: Gh... FAILED tests/draw/test_transform.py::test_2d_transform_7 - AssertionError: Gh... FAILED tests/draw/test_transform.py::test_2d_transform_8 - AssertionError: Gh... FAILED tests/draw/test_transform.py::test_2d_transform_9 - AssertionError: Gh... FAILED tests/draw/test_transform.py::test_2d_transform_opacity - AssertionErr... FAILED tests/draw/test_visibility.py::test_visibility_2 - AssertionError: Gho... FAILED tests/draw/test_whitespace.py::test_whitespace_inline - AssertionError... FAILED tests/draw/test_whitespace.py::test_whitespace_nested_inline - Asserti... FAILED tests/draw/test_whitespace.py::test_whitespace_inline_space_between - ... FAILED tests/draw/test_whitespace.py::test_whitespace_float_between - Asserti... FAILED tests/draw/test_whitespace.py::test_whitespace_in_float - AssertionErr... FAILED tests/draw/test_whitespace.py::test_whitespace_absolute_between - Asse... FAILED tests/draw/test_whitespace.py::test_whitespace_in_absolute - Assertion... FAILED tests/draw/test_whitespace.py::test_whitespace_running_between - Asser... FAILED tests/draw/test_whitespace.py::test_whitespace_in_running - AssertionE... FAILED tests/layout/test_logical.py::test_logical[documents0] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents1] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents2] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents3] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents4] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents5] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents6] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents7] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents8] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents9] - AssertionErro... FAILED tests/layout/test_logical.py::test_logical[documents10] - AssertionErr... FAILED tests/layout/test_logical.py::test_logical[documents11] - AssertionErr... FAILED tests/layout/test_logical.py::test_logical[documents12] - AssertionErr... FAILED tests/layout/test_logical.py::test_logical[documents13] - AssertionErr... FAILED tests/layout/test_table.py::test_table_vertical_align - AssertionError... FAILED tests/test_acid2.py::test_acid2 - AssertionError: Ghostscript error: n... FAILED tests/test_api.py::test_python_render - AssertionError: Ghostscript er... FAILED tests/test_api.py::test_unicode_filenames - AssertionError: Ghostscrip... FAILED tests/test_api.py::test_low_level_api - AssertionError: Ghostscript er... FAILED tests/test_api.py::test_url_fetcher[] - A... FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[
    • ] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher[] FAILED tests/test_api.py::test_url_fetcher_default - AssertionError: Ghostscr... FAILED tests/test_api.py::test_url_fetcher_bad_image - AssertionError: Ghosts... FAILED tests/test_api.py::test_url_fetcher_bad_stylesheet - AssertionError: G... FAILED tests/test_api.py::test_url_fetcher_non_fatal_error - AssertionError: ... FAILED tests/test_api.py::test_page_copy_relative - AssertionError: Ghostscri... FAILED tests/test_stacking.py::test_z_index[z_indexes0-R] - AssertionError: G... FAILED tests/test_stacking.py::test_z_index[z_indexes1-G] - AssertionError: G... FAILED tests/test_stacking.py::test_z_index[z_indexes2-B] - AssertionError: G... FAILED tests/test_stacking.py::test_z_index[z_indexes3-B] - AssertionError: G... FAILED tests/test_stacking.py::test_z_index[z_indexes4-B] - AssertionError: G... FAILED tests/test_unicode.py::test_unicode - AssertionError: Ghostscript erro... === 678 failed, 3644 passed, 15 deselected, 43 xfailed in 504.87s (0:08:24) ==== ==> ERROR:(B A failure occurred in check().(B  Aborting...(B ]3008;end=eb519bfbe0a849af915131edef3a818d\[!p]104\[?7h]3008;end=201bdec2fa1f4f1a952f9ee83bfbede6\==> ERROR:(B Build failed, check /var/lib/archbuild/extra-riscv64/felix-2/build(B [?12l[?25h[?12l[?25h[?12l[?25hreceiving incremental file list python-weasyprint-70.0-1-riscv64-build.log python-weasyprint-70.0-1-riscv64-check.log python-weasyprint-70.0-1-riscv64-prepare.log sent 81 bytes received 90,871 bytes 36,380.80 bytes/sec total size is 3,142,170 speedup is 34.55