-
-
Save simonw/2900ef33693c1bbda09188eb31c8212d to your computer and use it in GitHub Desktop.
Exported log from https://github.com/simonw/datasette/runs/3037862798 windows-latest against Python 3.8
This file has been truncated, but you can view the full file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2021-07-10T23:47:15.5845123Z Can't find any online and idle self-hosted or hosted runner in the current repository, account/organization that matches the required labels: 'windows-latest' | |
2021-07-10T23:47:15.5845238Z Found online and busy hosted runner(s) in the current repository's organization account that matches the required labels: 'windows-latest'. Hit concurrency limits on the hosted runners. Waiting for one of them to get assigned for this job. | |
2021-07-10T23:47:15.5845268Z Waiting for a hosted runner in 'organization' to pick this job... | |
2021-07-10T23:49:09.8333562Z Current runner version: '2.278.0' | |
2021-07-10T23:49:09.8648025Z ##[group]Operating System | |
2021-07-10T23:49:09.8649077Z Microsoft Windows Server 2019 | |
2021-07-10T23:49:09.8650137Z 10.0.17763 | |
2021-07-10T23:49:09.8650623Z Datacenter | |
2021-07-10T23:49:09.8651099Z ##[endgroup] | |
2021-07-10T23:49:09.8651676Z ##[group]Virtual Environment | |
2021-07-10T23:49:09.8652327Z Environment: windows-2019 | |
2021-07-10T23:49:09.8652906Z Version: 20210628.1 | |
2021-07-10T23:49:09.8653945Z Included Software: https://github.com/actions/virtual-environments/blob/win19/20210628.1/images/win/Windows2019-Readme.md | |
2021-07-10T23:49:09.8655413Z Image Release: https://github.com/actions/virtual-environments/releases/tag/win19%2F20210628.1 | |
2021-07-10T23:49:09.8656320Z ##[endgroup] | |
2021-07-10T23:49:09.8658351Z ##[group]GITHUB_TOKEN Permissions | |
2021-07-10T23:49:09.8659753Z Actions: write | |
2021-07-10T23:49:09.8660285Z Checks: write | |
2021-07-10T23:49:09.8660767Z Contents: write | |
2021-07-10T23:49:09.8661450Z Deployments: write | |
2021-07-10T23:49:09.8662048Z Discussions: write | |
2021-07-10T23:49:09.8662613Z Issues: write | |
2021-07-10T23:49:09.8663089Z Metadata: read | |
2021-07-10T23:49:09.8663628Z Packages: write | |
2021-07-10T23:49:09.8664175Z PullRequests: write | |
2021-07-10T23:49:09.8664834Z RepositoryProjects: write | |
2021-07-10T23:49:09.8665464Z SecurityEvents: write | |
2021-07-10T23:49:09.8666060Z Statuses: write | |
2021-07-10T23:49:09.8666638Z ##[endgroup] | |
2021-07-10T23:49:09.8670000Z Prepare workflow directory | |
2021-07-10T23:49:09.9324788Z Prepare all required actions | |
2021-07-10T23:49:09.9336210Z Getting action download info | |
2021-07-10T23:49:10.3366337Z Download action repository 'actions/checkout@v2' | |
2021-07-10T23:49:11.4582863Z Download action repository 'actions/setup-python@v2' | |
2021-07-10T23:49:11.7071828Z Download action repository 'actions/cache@v2' | |
2021-07-10T23:49:12.6714834Z ##[group]Run actions/checkout@v2 | |
2021-07-10T23:49:12.6715775Z with: | |
2021-07-10T23:49:12.6716316Z repository: simonw/datasette | |
2021-07-10T23:49:12.6717335Z token: *** | |
2021-07-10T23:49:12.6717842Z ssh-strict: true | |
2021-07-10T23:49:12.6718424Z persist-credentials: true | |
2021-07-10T23:49:12.6718992Z clean: true | |
2021-07-10T23:49:12.6719459Z fetch-depth: 1 | |
2021-07-10T23:49:12.6719937Z lfs: false | |
2021-07-10T23:49:12.6720398Z submodules: false | |
2021-07-10T23:49:12.6720896Z ##[endgroup] | |
2021-07-10T23:49:15.9503757Z Syncing repository: simonw/datasette | |
2021-07-10T23:49:15.9714014Z ##[group]Getting Git version info | |
2021-07-10T23:49:15.9715138Z Working directory is 'D:\a\datasette\datasette' | |
2021-07-10T23:49:16.0129101Z [command]"C:\Program Files\Git\bin\git.exe" version | |
2021-07-10T23:49:16.0331799Z git version 2.32.0.windows.1 | |
2021-07-10T23:49:16.0383220Z ##[endgroup] | |
2021-07-10T23:49:16.0389386Z Deleting the contents of 'D:\a\datasette\datasette' | |
2021-07-10T23:49:16.0393414Z ##[group]Initializing the repository | |
2021-07-10T23:49:16.0405156Z [command]"C:\Program Files\Git\bin\git.exe" init D:\a\datasette\datasette | |
2021-07-10T23:49:16.2295032Z Initialized empty Git repository in D:/a/datasette/datasette/.git/ | |
2021-07-10T23:49:16.2354727Z [command]"C:\Program Files\Git\bin\git.exe" remote add origin https://github.com/simonw/datasette | |
2021-07-10T23:49:16.2843350Z ##[endgroup] | |
2021-07-10T23:49:16.2873371Z ##[group]Disabling automatic garbage collection | |
2021-07-10T23:49:16.2889654Z [command]"C:\Program Files\Git\bin\git.exe" config --local gc.auto 0 | |
2021-07-10T23:49:16.3455479Z ##[endgroup] | |
2021-07-10T23:49:16.3475545Z ##[group]Setting up auth | |
2021-07-10T23:49:16.3476615Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand | |
2021-07-10T23:49:16.3713583Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" | |
2021-07-10T23:49:18.3668655Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader | |
2021-07-10T23:49:18.3989735Z [command]"C:\Program Files\Git\bin\git.exe" submodule foreach --recursive "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" | |
2021-07-10T23:49:18.8825932Z [command]"C:\Program Files\Git\bin\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***" | |
2021-07-10T23:49:18.9081308Z ##[endgroup] | |
2021-07-10T23:49:18.9095614Z ##[group]Fetching the repository | |
2021-07-10T23:49:18.9098869Z [command]"C:\Program Files\Git\bin\git.exe" -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +518cb06baf3ddffa50057b428f5de2a61ec75772:refs/remotes/origin/windows-github-actions | |
2021-07-10T23:49:20.3428857Z remote: Enumerating objects: 203, done. | |
2021-07-10T23:49:20.3429980Z remote: Counting objects: 0% (1/203) | |
2021-07-10T23:49:20.3430753Z remote: Counting objects: 1% (3/203) | |
2021-07-10T23:49:20.3436817Z remote: Counting objects: 2% (5/203) | |
2021-07-10T23:49:20.3438226Z remote: Counting objects: 3% (7/203) | |
2021-07-10T23:49:20.3439620Z remote: Counting objects: 4% (9/203) | |
2021-07-10T23:49:20.3440684Z remote: Counting objects: 5% (11/203) | |
2021-07-10T23:49:20.3441849Z remote: Counting objects: 6% (13/203) | |
2021-07-10T23:49:20.3444025Z remote: Counting objects: 7% (15/203) | |
2021-07-10T23:49:20.3444762Z remote: Counting objects: 8% (17/203) | |
2021-07-10T23:49:20.3445401Z remote: Counting objects: 9% (19/203) | |
2021-07-10T23:49:20.3446010Z remote: Counting objects: 10% (21/203) | |
2021-07-10T23:49:20.3447248Z remote: Counting objects: 11% (23/203) | |
2021-07-10T23:49:20.3449672Z remote: Counting objects: 12% (25/203) | |
2021-07-10T23:49:20.3450838Z remote: Counting objects: 13% (27/203) | |
2021-07-10T23:49:20.3451879Z remote: Counting objects: 14% (29/203) | |
2021-07-10T23:49:20.3452839Z remote: Counting objects: 15% (31/203) | |
2021-07-10T23:49:20.3453599Z remote: Counting objects: 16% (33/203) | |
2021-07-10T23:49:20.3454700Z remote: Counting objects: 17% (35/203) | |
2021-07-10T23:49:20.3736165Z remote: Counting objects: 18% (37/203) | |
2021-07-10T23:49:20.3736762Z remote: Counting objects: 19% (39/203) | |
2021-07-10T23:49:20.3738077Z remote: Counting objects: 20% (41/203) | |
2021-07-10T23:49:20.3738633Z remote: Counting objects: 21% (43/203) | |
2021-07-10T23:49:20.3739159Z remote: Counting objects: 22% (45/203) | |
2021-07-10T23:49:20.3739674Z remote: Counting objects: 23% (47/203) | |
2021-07-10T23:49:20.3740205Z remote: Counting objects: 24% (49/203) | |
2021-07-10T23:49:20.3740933Z remote: Counting objects: 25% (51/203) | |
2021-07-10T23:49:20.3741475Z remote: Counting objects: 26% (53/203) | |
2021-07-10T23:49:20.3742054Z remote: Counting objects: 27% (55/203) | |
2021-07-10T23:49:20.3742580Z remote: Counting objects: 28% (57/203) | |
2021-07-10T23:49:20.3743105Z remote: Counting objects: 29% (59/203) | |
2021-07-10T23:49:20.3743841Z remote: Counting objects: 30% (61/203) | |
2021-07-10T23:49:20.3744604Z remote: Counting objects: 31% (63/203) | |
2021-07-10T23:49:20.3745893Z remote: Counting objects: 32% (65/203) | |
2021-07-10T23:49:20.3746644Z remote: Counting objects: 33% (67/203) | |
2021-07-10T23:49:20.3747290Z remote: Counting objects: 34% (70/203) | |
2021-07-10T23:49:20.3748320Z remote: Counting objects: 35% (72/203) | |
2021-07-10T23:49:20.3748863Z remote: Counting objects: 36% (74/203) | |
2021-07-10T23:49:20.3749374Z remote: Counting objects: 37% (76/203) | |
2021-07-10T23:49:20.3749914Z remote: Counting objects: 38% (78/203) | |
2021-07-10T23:49:20.3750425Z remote: Counting objects: 39% (80/203) | |
2021-07-10T23:49:20.3750949Z remote: Counting objects: 40% (82/203) | |
2021-07-10T23:49:20.3751454Z remote: Counting objects: 41% (84/203) | |
2021-07-10T23:49:20.3752956Z remote: Counting objects: 42% (86/203) | |
2021-07-10T23:49:20.3753484Z remote: Counting objects: 43% (88/203) | |
2021-07-10T23:49:20.3753994Z remote: Counting objects: 44% (90/203) | |
2021-07-10T23:49:20.3754515Z remote: Counting objects: 45% (92/203) | |
2021-07-10T23:49:20.3755033Z remote: Counting objects: 46% (94/203) | |
2021-07-10T23:49:20.3755542Z remote: Counting objects: 47% (96/203) | |
2021-07-10T23:49:20.3756058Z remote: Counting objects: 48% (98/203) | |
2021-07-10T23:49:20.3756570Z remote: Counting objects: 49% (100/203) | |
2021-07-10T23:49:20.3757102Z remote: Counting objects: 50% (102/203) | |
2021-07-10T23:49:20.3757619Z remote: Counting objects: 51% (104/203) | |
2021-07-10T23:49:20.3758154Z remote: Counting objects: 52% (106/203) | |
2021-07-10T23:49:20.3758667Z remote: Counting objects: 53% (108/203) | |
2021-07-10T23:49:20.3759287Z remote: Counting objects: 54% (110/203) | |
2021-07-10T23:49:20.3759950Z remote: Counting objects: 55% (112/203) | |
2021-07-10T23:49:20.3760537Z remote: Counting objects: 56% (114/203) | |
2021-07-10T23:49:20.3761059Z remote: Counting objects: 57% (116/203) | |
2021-07-10T23:49:20.3761568Z remote: Counting objects: 58% (118/203) | |
2021-07-10T23:49:20.3763268Z remote: Counting objects: 59% (120/203) | |
2021-07-10T23:49:20.3763801Z remote: Counting objects: 60% (122/203) | |
2021-07-10T23:49:20.3764329Z remote: Counting objects: 61% (124/203) | |
2021-07-10T23:49:20.3764835Z remote: Counting objects: 62% (126/203) | |
2021-07-10T23:49:20.3765358Z remote: Counting objects: 63% (128/203) | |
2021-07-10T23:49:20.3765865Z remote: Counting objects: 64% (130/203) | |
2021-07-10T23:49:20.3766858Z remote: Counting objects: 65% (132/203) | |
2021-07-10T23:49:20.3767397Z remote: Counting objects: 66% (134/203) | |
2021-07-10T23:49:20.3767904Z remote: Counting objects: 67% (137/203) | |
2021-07-10T23:49:20.3768435Z remote: Counting objects: 68% (139/203) | |
2021-07-10T23:49:20.3769228Z remote: Counting objects: 69% (141/203) | |
2021-07-10T23:49:20.3769907Z remote: Counting objects: 70% (143/203) | |
2021-07-10T23:49:20.3770414Z remote: Counting objects: 71% (145/203) | |
2021-07-10T23:49:20.3770935Z remote: Counting objects: 72% (147/203) | |
2021-07-10T23:49:20.3771465Z remote: Counting objects: 73% (149/203) | |
2021-07-10T23:49:20.3772023Z remote: Counting objects: 74% (151/203) | |
2021-07-10T23:49:20.3772542Z remote: Counting objects: 75% (153/203) | |
2021-07-10T23:49:20.3773050Z remote: Counting objects: 76% (155/203) | |
2021-07-10T23:49:20.3773580Z remote: Counting objects: 77% (157/203) | |
2021-07-10T23:49:20.3774090Z remote: Counting objects: 78% (159/203) | |
2021-07-10T23:49:20.3774612Z remote: Counting objects: 79% (161/203) | |
2021-07-10T23:49:20.3775121Z remote: Counting objects: 80% (163/203) | |
2021-07-10T23:49:20.3775648Z remote: Counting objects: 81% (165/203) | |
2021-07-10T23:49:20.3776157Z remote: Counting objects: 82% (167/203) | |
2021-07-10T23:49:20.3776675Z remote: Counting objects: 83% (169/203) | |
2021-07-10T23:49:20.3777195Z remote: Counting objects: 84% (171/203) | |
2021-07-10T23:49:20.3777702Z remote: Counting objects: 85% (173/203) | |
2021-07-10T23:49:20.3778218Z remote: Counting objects: 86% (175/203) | |
2021-07-10T23:49:20.3778723Z remote: Counting objects: 87% (177/203) | |
2021-07-10T23:49:20.3779241Z remote: Counting objects: 88% (179/203) | |
2021-07-10T23:49:20.3779747Z remote: Counting objects: 89% (181/203) | |
2021-07-10T23:49:20.3780704Z remote: Counting objects: 90% (183/203) | |
2021-07-10T23:49:20.3781223Z remote: Counting objects: 91% (185/203) | |
2021-07-10T23:49:20.3781776Z remote: Counting objects: 92% (187/203) | |
2021-07-10T23:49:20.3782285Z remote: Counting objects: 93% (189/203) | |
2021-07-10T23:49:20.3782916Z remote: Counting objects: 94% (191/203) | |
2021-07-10T23:49:20.3783437Z remote: Counting objects: 95% (193/203) | |
2021-07-10T23:49:20.3783965Z remote: Counting objects: 96% (195/203) | |
2021-07-10T23:49:20.3784484Z remote: Counting objects: 97% (197/203) | |
2021-07-10T23:49:20.3785005Z remote: Counting objects: 98% (199/203) | |
2021-07-10T23:49:20.3785512Z remote: Counting objects: 99% (201/203) | |
2021-07-10T23:49:20.3786031Z remote: Counting objects: 100% (203/203) | |
2021-07-10T23:49:20.3786567Z remote: Counting objects: 100% (203/203), done. | |
2021-07-10T23:49:20.3787151Z remote: Compressing objects: 0% (1/180) | |
2021-07-10T23:49:20.3787726Z remote: Compressing objects: 1% (2/180) | |
2021-07-10T23:49:20.3788303Z remote: Compressing objects: 2% (4/180) | |
2021-07-10T23:49:20.3788860Z remote: Compressing objects: 3% (6/180) | |
2021-07-10T23:49:20.3789432Z remote: Compressing objects: 4% (8/180) | |
2021-07-10T23:49:20.3789997Z remote: Compressing objects: 5% (9/180) | |
2021-07-10T23:49:20.3790553Z remote: Compressing objects: 6% (11/180) | |
2021-07-10T23:49:20.3791134Z remote: Compressing objects: 7% (13/180) | |
2021-07-10T23:49:20.3791725Z remote: Compressing objects: 8% (15/180) | |
2021-07-10T23:49:20.3792298Z remote: Compressing objects: 9% (17/180) | |
2021-07-10T23:49:20.3792864Z remote: Compressing objects: 10% (18/180) | |
2021-07-10T23:49:20.3793433Z remote: Compressing objects: 11% (20/180) | |
2021-07-10T23:49:20.3793995Z remote: Compressing objects: 12% (22/180) | |
2021-07-10T23:49:20.3794563Z remote: Compressing objects: 13% (24/180) | |
2021-07-10T23:49:20.3795203Z remote: Compressing objects: 14% (26/180) | |
2021-07-10T23:49:20.3795762Z remote: Compressing objects: 15% (27/180) | |
2021-07-10T23:49:20.3796335Z remote: Compressing objects: 16% (29/180) | |
2021-07-10T23:49:20.3796899Z remote: Compressing objects: 17% (31/180) | |
2021-07-10T23:49:20.3797469Z remote: Compressing objects: 18% (33/180) | |
2021-07-10T23:49:20.3798025Z remote: Compressing objects: 19% (35/180) | |
2021-07-10T23:49:20.3798597Z remote: Compressing objects: 20% (36/180) | |
2021-07-10T23:49:20.3799154Z remote: Compressing objects: 21% (38/180) | |
2021-07-10T23:49:20.3799725Z remote: Compressing objects: 22% (40/180) | |
2021-07-10T23:49:20.3800295Z remote: Compressing objects: 23% (42/180) | |
2021-07-10T23:49:20.3800855Z remote: Compressing objects: 24% (44/180) | |
2021-07-10T23:49:20.3801421Z remote: Compressing objects: 25% (45/180) | |
2021-07-10T23:49:20.3802008Z remote: Compressing objects: 26% (47/180) | |
2021-07-10T23:49:20.3802728Z remote: Compressing objects: 27% (49/180) | |
2021-07-10T23:49:20.3803244Z remote: Compressing objects: 28% (51/180) | |
2021-07-10T23:49:20.3803771Z remote: Compressing objects: 29% (53/180) | |
2021-07-10T23:49:20.3804289Z remote: Compressing objects: 30% (54/180) | |
2021-07-10T23:49:20.3804818Z remote: Compressing objects: 31% (56/180) | |
2021-07-10T23:49:20.3805344Z remote: Compressing objects: 32% (58/180) | |
2021-07-10T23:49:20.3806481Z remote: Compressing objects: 33% (60/180) | |
2021-07-10T23:49:20.3807055Z remote: Compressing objects: 34% (62/180) | |
2021-07-10T23:49:20.3807612Z remote: Compressing objects: 35% (63/180) | |
2021-07-10T23:49:20.3808182Z remote: Compressing objects: 36% (65/180) | |
2021-07-10T23:49:20.3808734Z remote: Compressing objects: 37% (67/180) | |
2021-07-10T23:49:20.3809301Z remote: Compressing objects: 38% (69/180) | |
2021-07-10T23:49:20.3809868Z remote: Compressing objects: 39% (71/180) | |
2021-07-10T23:49:20.3810501Z remote: Compressing objects: 40% (72/180) | |
2021-07-10T23:49:20.3811355Z remote: Compressing objects: 41% (74/180) | |
2021-07-10T23:49:20.3812183Z remote: Compressing objects: 42% (76/180) | |
2021-07-10T23:49:20.3812752Z remote: Compressing objects: 43% (78/180) | |
2021-07-10T23:49:20.3813310Z remote: Compressing objects: 44% (80/180) | |
2021-07-10T23:49:20.3813879Z remote: Compressing objects: 45% (81/180) | |
2021-07-10T23:49:20.3814433Z remote: Compressing objects: 46% (83/180) | |
2021-07-10T23:49:20.3815003Z remote: Compressing objects: 47% (85/180) | |
2021-07-10T23:49:20.3815559Z remote: Compressing objects: 48% (87/180) | |
2021-07-10T23:49:20.3816127Z remote: Compressing objects: 49% (89/180) | |
2021-07-10T23:49:20.3816749Z remote: Compressing objects: 50% (90/180) | |
2021-07-10T23:49:20.3817303Z remote: Compressing objects: 51% (92/180) | |
2021-07-10T23:49:20.3817876Z remote: Compressing objects: 52% (94/180) | |
2021-07-10T23:49:20.3818431Z remote: Compressing objects: 53% (96/180) | |
2021-07-10T23:49:20.3818998Z remote: Compressing objects: 54% (98/180) | |
2021-07-10T23:49:20.3831383Z remote: Compressing objects: 55% (99/180) | |
2021-07-10T23:49:20.3837430Z remote: Compressing objects: 56% (101/180) | |
2021-07-10T23:49:20.3853845Z remote: Compressing objects: 57% (103/180) | |
2021-07-10T23:49:20.3855897Z remote: Compressing objects: 58% (105/180) | |
2021-07-10T23:49:20.3856616Z remote: Compressing objects: 59% (107/180) | |
2021-07-10T23:49:20.3857201Z remote: Compressing objects: 60% (108/180) | |
2021-07-10T23:49:20.3857784Z remote: Compressing objects: 61% (110/180) | |
2021-07-10T23:49:20.3890009Z remote: Compressing objects: 62% (112/180) | |
2021-07-10T23:49:20.3892685Z remote: Compressing objects: 63% (114/180) | |
2021-07-10T23:49:20.3893651Z remote: Compressing objects: 64% (116/180) | |
2021-07-10T23:49:20.3895091Z remote: Compressing objects: 65% (117/180) | |
2021-07-10T23:49:20.3897522Z remote: Compressing objects: 66% (119/180) | |
2021-07-10T23:49:20.3898233Z remote: Compressing objects: 67% (121/180) | |
2021-07-10T23:49:20.3898812Z remote: Compressing objects: 68% (123/180) | |
2021-07-10T23:49:20.3899400Z remote: Compressing objects: 69% (125/180) | |
2021-07-10T23:49:20.3900206Z remote: Compressing objects: 70% (126/180) | |
2021-07-10T23:49:20.3900951Z remote: Compressing objects: 71% (128/180) | |
2021-07-10T23:49:20.3901530Z remote: Compressing objects: 72% (130/180) | |
2021-07-10T23:49:20.3902131Z remote: Compressing objects: 73% (132/180) | |
2021-07-10T23:49:20.3902710Z remote: Compressing objects: 74% (134/180) | |
2021-07-10T23:49:20.3903292Z remote: Compressing objects: 75% (135/180) | |
2021-07-10T23:49:20.3903864Z remote: Compressing objects: 76% (137/180) | |
2021-07-10T23:49:20.3906816Z remote: Compressing objects: 77% (139/180) | |
2021-07-10T23:49:20.3907463Z remote: Compressing objects: 78% (141/180) | |
2021-07-10T23:49:20.3908052Z remote: Compressing objects: 79% (143/180) | |
2021-07-10T23:49:20.3908620Z remote: Compressing objects: 80% (144/180) | |
2021-07-10T23:49:20.3909192Z remote: Compressing objects: 81% (146/180) | |
2021-07-10T23:49:20.3949316Z remote: Compressing objects: 82% (148/180) | |
2021-07-10T23:49:20.3951296Z remote: Compressing objects: 83% (150/180) | |
2021-07-10T23:49:20.3952098Z remote: Compressing objects: 84% (152/180) | |
2021-07-10T23:49:20.3952813Z remote: Compressing objects: 85% (153/180) | |
2021-07-10T23:49:20.3953492Z remote: Compressing objects: 86% (155/180) | |
2021-07-10T23:49:20.3954185Z remote: Compressing objects: 87% (157/180) | |
2021-07-10T23:49:20.3954865Z remote: Compressing objects: 88% (159/180) | |
2021-07-10T23:49:20.3955574Z remote: Compressing objects: 89% (161/180) | |
2021-07-10T23:49:20.3957907Z remote: Compressing objects: 90% (162/180) | |
2021-07-10T23:49:20.3958595Z remote: Compressing objects: 91% (164/180) | |
2021-07-10T23:49:20.3959938Z remote: Compressing objects: 92% (166/180) | |
2021-07-10T23:49:20.3960618Z remote: Compressing objects: 93% (168/180) | |
2021-07-10T23:49:20.3961307Z remote: Compressing objects: 94% (170/180) | |
2021-07-10T23:49:20.3962054Z remote: Compressing objects: 95% (171/180) | |
2021-07-10T23:49:20.3962723Z remote: Compressing objects: 96% (173/180) | |
2021-07-10T23:49:20.3963409Z remote: Compressing objects: 97% (175/180) | |
2021-07-10T23:49:20.3964318Z remote: Compressing objects: 98% (177/180) | |
2021-07-10T23:49:20.3965294Z remote: Compressing objects: 99% (179/180) | |
2021-07-10T23:49:20.3965992Z remote: Compressing objects: 100% (180/180) | |
2021-07-10T23:49:20.3966693Z remote: Compressing objects: 100% (180/180), done. | |
2021-07-10T23:49:20.4774370Z Receiving objects: 0% (1/203) | |
2021-07-10T23:49:20.4775188Z Receiving objects: 1% (3/203) | |
2021-07-10T23:49:20.4775814Z Receiving objects: 2% (5/203) | |
2021-07-10T23:49:20.4798270Z Receiving objects: 3% (7/203) | |
2021-07-10T23:49:20.4799033Z Receiving objects: 4% (9/203) | |
2021-07-10T23:49:20.4804151Z Receiving objects: 5% (11/203) | |
2021-07-10T23:49:20.4805029Z Receiving objects: 6% (13/203) | |
2021-07-10T23:49:20.4805745Z Receiving objects: 7% (15/203) | |
2021-07-10T23:49:20.4806460Z Receiving objects: 8% (17/203) | |
2021-07-10T23:49:20.4808672Z Receiving objects: 9% (19/203) | |
2021-07-10T23:49:20.4811283Z Receiving objects: 10% (21/203) | |
2021-07-10T23:49:20.4811909Z Receiving objects: 11% (23/203) | |
2021-07-10T23:49:20.4813250Z Receiving objects: 12% (25/203) | |
2021-07-10T23:49:20.4815062Z Receiving objects: 13% (27/203) | |
2021-07-10T23:49:20.4815655Z Receiving objects: 14% (29/203) | |
2021-07-10T23:49:20.4816345Z Receiving objects: 15% (31/203) | |
2021-07-10T23:49:20.4818289Z Receiving objects: 16% (33/203) | |
2021-07-10T23:49:20.4820171Z Receiving objects: 17% (35/203) | |
2021-07-10T23:49:20.4820870Z Receiving objects: 18% (37/203) | |
2021-07-10T23:49:20.4821483Z Receiving objects: 19% (39/203) | |
2021-07-10T23:49:20.4822122Z Receiving objects: 20% (41/203) | |
2021-07-10T23:49:20.4825040Z Receiving objects: 21% (43/203) | |
2021-07-10T23:49:20.4825690Z Receiving objects: 22% (45/203) | |
2021-07-10T23:49:20.4826275Z Receiving objects: 23% (47/203) | |
2021-07-10T23:49:20.4826951Z Receiving objects: 24% (49/203) | |
2021-07-10T23:49:20.4828658Z Receiving objects: 25% (51/203) | |
2021-07-10T23:49:20.4860438Z Receiving objects: 26% (53/203) | |
2021-07-10T23:49:20.4870542Z Receiving objects: 27% (55/203) | |
2021-07-10T23:49:20.4886257Z Receiving objects: 28% (57/203) | |
2021-07-10T23:49:20.4887364Z Receiving objects: 29% (59/203) | |
2021-07-10T23:49:20.4887965Z Receiving objects: 30% (61/203) | |
2021-07-10T23:49:20.4888558Z Receiving objects: 31% (63/203) | |
2021-07-10T23:49:20.4889143Z Receiving objects: 32% (65/203) | |
2021-07-10T23:49:20.4891282Z Receiving objects: 33% (67/203) | |
2021-07-10T23:49:20.4891920Z Receiving objects: 34% (70/203) | |
2021-07-10T23:49:20.4893617Z Receiving objects: 35% (72/203) | |
2021-07-10T23:49:20.4897083Z Receiving objects: 36% (74/203) | |
2021-07-10T23:49:20.4897682Z Receiving objects: 37% (76/203) | |
2021-07-10T23:49:20.4898274Z Receiving objects: 38% (78/203) | |
2021-07-10T23:49:20.4898917Z Receiving objects: 39% (80/203) | |
2021-07-10T23:49:20.4899494Z Receiving objects: 40% (82/203) | |
2021-07-10T23:49:20.4901418Z Receiving objects: 41% (84/203) | |
2021-07-10T23:49:20.4903273Z Receiving objects: 42% (86/203) | |
2021-07-10T23:49:20.4905658Z Receiving objects: 43% (88/203) | |
2021-07-10T23:49:20.4916485Z Receiving objects: 44% (90/203) | |
2021-07-10T23:49:20.4917279Z Receiving objects: 45% (92/203) | |
2021-07-10T23:49:20.4918749Z Receiving objects: 46% (94/203) | |
2021-07-10T23:49:20.4920374Z Receiving objects: 47% (96/203) | |
2021-07-10T23:49:20.4921130Z Receiving objects: 48% (98/203) | |
2021-07-10T23:49:20.4923461Z Receiving objects: 49% (100/203) | |
2021-07-10T23:49:20.4926940Z Receiving objects: 50% (102/203) | |
2021-07-10T23:49:20.4928833Z Receiving objects: 51% (104/203) | |
2021-07-10T23:49:20.4947281Z Receiving objects: 52% (106/203) | |
2021-07-10T23:49:20.4950403Z Receiving objects: 53% (108/203) | |
2021-07-10T23:49:20.4963090Z Receiving objects: 54% (110/203) | |
2021-07-10T23:49:20.4969587Z Receiving objects: 55% (112/203) | |
2021-07-10T23:49:20.4971582Z Receiving objects: 56% (114/203) | |
2021-07-10T23:49:20.4972493Z Receiving objects: 57% (116/203) | |
2021-07-10T23:49:20.4984726Z Receiving objects: 58% (118/203) | |
2021-07-10T23:49:20.4994478Z Receiving objects: 59% (120/203) | |
2021-07-10T23:49:20.4998115Z Receiving objects: 60% (122/203) | |
2021-07-10T23:49:20.4999774Z Receiving objects: 61% (124/203) | |
2021-07-10T23:49:20.5005847Z Receiving objects: 62% (126/203) | |
2021-07-10T23:49:20.5010212Z Receiving objects: 63% (128/203) | |
2021-07-10T23:49:20.5011902Z Receiving objects: 64% (130/203) | |
2021-07-10T23:49:20.5019059Z Receiving objects: 65% (132/203) | |
2021-07-10T23:49:20.5025485Z Receiving objects: 66% (134/203) | |
2021-07-10T23:49:20.5029306Z Receiving objects: 67% (137/203) | |
2021-07-10T23:49:20.5033641Z Receiving objects: 68% (139/203) | |
2021-07-10T23:49:20.5034456Z Receiving objects: 69% (141/203) | |
2021-07-10T23:49:20.5035079Z Receiving objects: 70% (143/203) | |
2021-07-10T23:49:20.5035656Z Receiving objects: 71% (145/203) | |
2021-07-10T23:49:20.5040857Z Receiving objects: 72% (147/203) | |
2021-07-10T23:49:20.5041561Z Receiving objects: 73% (149/203) | |
2021-07-10T23:49:20.5044629Z Receiving objects: 74% (151/203) | |
2021-07-10T23:49:20.5045282Z Receiving objects: 75% (153/203) | |
2021-07-10T23:49:20.5069810Z Receiving objects: 76% (155/203) | |
2021-07-10T23:49:20.5071457Z Receiving objects: 77% (157/203) | |
2021-07-10T23:49:20.5083551Z Receiving objects: 78% (159/203) | |
2021-07-10T23:49:20.5084319Z Receiving objects: 79% (161/203) | |
2021-07-10T23:49:20.5084916Z Receiving objects: 80% (163/203) | |
2021-07-10T23:49:20.5087588Z Receiving objects: 81% (165/203) | |
2021-07-10T23:49:20.5088258Z Receiving objects: 82% (167/203) | |
2021-07-10T23:49:20.5095476Z Receiving objects: 83% (169/203) | |
2021-07-10T23:49:20.5100385Z Receiving objects: 84% (171/203) | |
2021-07-10T23:49:20.5101112Z Receiving objects: 85% (173/203) | |
2021-07-10T23:49:20.5101714Z Receiving objects: 86% (175/203) | |
2021-07-10T23:49:20.5103332Z Receiving objects: 87% (177/203) | |
2021-07-10T23:49:20.5103937Z Receiving objects: 88% (179/203) | |
2021-07-10T23:49:20.5106377Z Receiving objects: 89% (181/203) | |
2021-07-10T23:49:20.5107129Z remote: Total 203 (delta 11), reused 87 (delta 3), pack-reused 0 | |
2021-07-10T23:49:20.5111932Z Receiving objects: 90% (183/203) | |
2021-07-10T23:49:20.5112709Z Receiving objects: 91% (185/203) | |
2021-07-10T23:49:20.5113308Z Receiving objects: 92% (187/203) | |
2021-07-10T23:49:20.5114670Z Receiving objects: 93% (189/203) | |
2021-07-10T23:49:20.5115288Z Receiving objects: 94% (191/203) | |
2021-07-10T23:49:20.5116794Z Receiving objects: 95% (193/203) | |
2021-07-10T23:49:20.5117415Z Receiving objects: 96% (195/203) | |
2021-07-10T23:49:20.5117995Z Receiving objects: 97% (197/203) | |
2021-07-10T23:49:20.5118975Z Receiving objects: 98% (199/203) | |
2021-07-10T23:49:20.5119524Z Receiving objects: 99% (201/203) | |
2021-07-10T23:49:20.5119996Z Receiving objects: 100% (203/203) | |
2021-07-10T23:49:20.5124951Z Receiving objects: 100% (203/203), 610.30 KiB | 9.54 MiB/s, done. | |
2021-07-10T23:49:20.5128728Z Resolving deltas: 0% (0/11) | |
2021-07-10T23:49:20.5130620Z Resolving deltas: 9% (1/11) | |
2021-07-10T23:49:20.5132060Z Resolving deltas: 18% (2/11) | |
2021-07-10T23:49:20.5132638Z Resolving deltas: 27% (3/11) | |
2021-07-10T23:49:20.5133467Z Resolving deltas: 36% (4/11) | |
2021-07-10T23:49:20.5133967Z Resolving deltas: 45% (5/11) | |
2021-07-10T23:49:20.5134415Z Resolving deltas: 54% (6/11) | |
2021-07-10T23:49:20.5134875Z Resolving deltas: 63% (7/11) | |
2021-07-10T23:49:20.5135356Z Resolving deltas: 72% (8/11) | |
2021-07-10T23:49:20.5135832Z Resolving deltas: 81% (9/11) | |
2021-07-10T23:49:20.5136378Z Resolving deltas: 90% (10/11) | |
2021-07-10T23:49:20.5136839Z Resolving deltas: 100% (11/11) | |
2021-07-10T23:49:20.5137343Z Resolving deltas: 100% (11/11), done. | |
2021-07-10T23:49:20.5694925Z From https://github.com/simonw/datasette | |
2021-07-10T23:49:20.5696418Z * [new ref] 518cb06baf3ddffa50057b428f5de2a61ec75772 -> origin/windows-github-actions | |
2021-07-10T23:49:20.5872192Z ##[endgroup] | |
2021-07-10T23:49:20.5873200Z ##[group]Determining the checkout info | |
2021-07-10T23:49:20.5875137Z ##[endgroup] | |
2021-07-10T23:49:20.5875755Z ##[group]Checking out the ref | |
2021-07-10T23:49:20.5888427Z [command]"C:\Program Files\Git\bin\git.exe" checkout --progress --force -B windows-github-actions refs/remotes/origin/windows-github-actions | |
2021-07-10T23:49:20.6976182Z Branch 'windows-github-actions' set up to track remote branch 'windows-github-actions' from 'origin'. | |
2021-07-10T23:49:20.6978041Z Switched to a new branch 'windows-github-actions' | |
2021-07-10T23:49:20.7023398Z ##[endgroup] | |
2021-07-10T23:49:20.7302929Z [command]"C:\Program Files\Git\bin\git.exe" log -1 --format='%H' | |
2021-07-10T23:49:20.7502222Z '518cb06baf3ddffa50057b428f5de2a61ec75772' | |
2021-07-10T23:49:20.7883748Z ##[group]Run actions/setup-python@v2 | |
2021-07-10T23:49:20.7884281Z with: | |
2021-07-10T23:49:20.7884692Z python-version: 3.8 | |
2021-07-10T23:49:20.7885634Z token: *** | |
2021-07-10T23:49:20.7885992Z ##[endgroup] | |
2021-07-10T23:49:20.8937602Z Successfully setup CPython (3.8.10) | |
2021-07-10T23:49:21.1373787Z ##[group]Run actions/cache@v2 | |
2021-07-10T23:49:21.1374304Z with: | |
2021-07-10T23:49:21.1374690Z path: ~/.cache/pip | |
2021-07-10T23:49:21.1376029Z key: Windows-pip-5fb95955e4801facaf1a888a36a1e6fe50d07529b2102fa1a054765c07aa87ca | |
2021-07-10T23:49:21.1377459Z restore-keys: Windows-pip- | |
2021-07-10T23:49:21.1377901Z env: | |
2021-07-10T23:49:21.1378477Z pythonLocation: C:\hostedtoolcache\windows\Python\3.8.10\x64 | |
2021-07-10T23:49:21.1379062Z ##[endgroup] | |
2021-07-10T23:49:21.7584914Z Cache not found for input keys: Windows-pip-5fb95955e4801facaf1a888a36a1e6fe50d07529b2102fa1a054765c07aa87ca, Windows-pip- | |
2021-07-10T23:49:21.7865810Z ##[group]Run pip install -e '.[test]' | |
2021-07-10T23:49:21.7866598Z [36;1mpip install -e '.[test]'[0m | |
2021-07-10T23:49:21.7920472Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'" | |
2021-07-10T23:49:21.7921051Z env: | |
2021-07-10T23:49:21.7921742Z pythonLocation: C:\hostedtoolcache\windows\Python\3.8.10\x64 | |
2021-07-10T23:49:21.7922357Z ##[endgroup] | |
2021-07-10T23:49:27.6919811Z Obtaining file:///D:/a/datasette/datasette | |
2021-07-10T23:49:30.3937611Z Collecting asgiref<3.4.0,>=3.2.10 | |
2021-07-10T23:49:30.4605199Z Downloading asgiref-3.3.4-py3-none-any.whl (22 kB) | |
2021-07-10T23:49:30.5169539Z Collecting click<8.1.0,>=7.1.1 | |
2021-07-10T23:49:30.5320268Z Downloading click-8.0.1-py3-none-any.whl (97 kB) | |
2021-07-10T23:49:30.5817158Z Collecting click-default-group~=1.2.2 | |
2021-07-10T23:49:30.5959779Z Downloading click-default-group-1.2.2.tar.gz (3.3 kB) | |
2021-07-10T23:49:31.1602330Z Collecting Jinja2<3.1.0,>=2.10.3 | |
2021-07-10T23:49:31.1869945Z Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB) | |
2021-07-10T23:49:31.2671492Z Collecting hupper~=1.9 | |
2021-07-10T23:49:31.2824987Z Downloading hupper-1.10.3-py2.py3-none-any.whl (26 kB) | |
2021-07-10T23:49:31.3435846Z Collecting httpx>=0.17 | |
2021-07-10T23:49:31.3593127Z Downloading httpx-0.18.2-py3-none-any.whl (76 kB) | |
2021-07-10T23:49:31.4200790Z Collecting pint~=0.9 | |
2021-07-10T23:49:31.4333858Z Downloading Pint-0.17-py2.py3-none-any.whl (204 kB) | |
2021-07-10T23:49:31.5251810Z Collecting pluggy~=0.13.0 | |
2021-07-10T23:49:31.5540127Z Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB) | |
2021-07-10T23:49:31.6198893Z Collecting uvicorn~=0.11 | |
2021-07-10T23:49:31.6364798Z Downloading uvicorn-0.14.0-py3-none-any.whl (50 kB) | |
2021-07-10T23:49:31.6757820Z Collecting aiofiles<0.8,>=0.4 | |
2021-07-10T23:49:31.6907104Z Downloading aiofiles-0.7.0-py3-none-any.whl (13 kB) | |
2021-07-10T23:49:31.7281680Z Collecting janus<0.7,>=0.4 | |
2021-07-10T23:49:31.7432865Z Downloading janus-0.6.1-py3-none-any.whl (11 kB) | |
2021-07-10T23:49:31.7759112Z Collecting asgi-csrf>=0.9 | |
2021-07-10T23:49:31.7910824Z Downloading asgi_csrf-0.9-py3-none-any.whl (10 kB) | |
2021-07-10T23:49:31.8865880Z Collecting PyYAML~=5.3 | |
2021-07-10T23:49:31.9020808Z Downloading PyYAML-5.4.1-cp38-cp38-win_amd64.whl (213 kB) | |
2021-07-10T23:49:31.9808540Z Collecting mergedeep<1.4.0,>=1.1.1 | |
2021-07-10T23:49:31.9957805Z Downloading mergedeep-1.3.4-py3-none-any.whl (6.4 kB) | |
2021-07-10T23:49:32.0360777Z Collecting itsdangerous<3.0,>=1.1 | |
2021-07-10T23:49:32.0513386Z Downloading itsdangerous-2.0.1-py3-none-any.whl (18 kB) | |
2021-07-10T23:49:32.0841446Z Collecting python-baseconv==1.2.2 | |
2021-07-10T23:49:32.0993801Z Downloading python-baseconv-1.2.2.tar.gz (4.9 kB) | |
2021-07-10T23:49:32.5580836Z Collecting pytest<6.3.0,>=5.2.2 | |
2021-07-10T23:49:32.5742186Z Downloading pytest-6.2.4-py3-none-any.whl (280 kB) | |
2021-07-10T23:49:32.6699741Z Collecting pytest-xdist<2.4,>=2.2.1 | |
2021-07-10T23:49:32.6847109Z Downloading pytest_xdist-2.3.0-py3-none-any.whl (37 kB) | |
2021-07-10T23:49:32.7254859Z Collecting pytest-asyncio<0.16,>=0.10 | |
2021-07-10T23:49:32.7408807Z Downloading pytest_asyncio-0.15.1-py3-none-any.whl (12 kB) | |
2021-07-10T23:49:32.7863529Z Collecting beautifulsoup4<4.10.0,>=4.8.1 | |
2021-07-10T23:49:32.8013600Z Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB) | |
2021-07-10T23:49:32.8735899Z Collecting black==21.6b0 | |
2021-07-10T23:49:32.8769102Z Downloading black-21.6b0-py3-none-any.whl (140 kB) | |
2021-07-10T23:49:32.9407241Z Collecting pytest-timeout<1.5,>=1.4.2 | |
2021-07-10T23:49:32.9555307Z Downloading pytest_timeout-1.4.2-py2.py3-none-any.whl (10 kB) | |
2021-07-10T23:49:32.9868056Z Collecting trustme<0.9,>=0.7 | |
2021-07-10T23:49:33.0034597Z Downloading trustme-0.8.0-py2.py3-none-any.whl (16 kB) | |
2021-07-10T23:49:33.0727962Z Collecting toml>=0.10.1 | |
2021-07-10T23:49:33.0873720Z Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB) | |
2021-07-10T23:49:33.1256723Z Collecting appdirs | |
2021-07-10T23:49:33.1408088Z Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB) | |
2021-07-10T23:49:33.1800806Z Collecting pathspec<1,>=0.8.1 | |
2021-07-10T23:49:33.1949548Z Downloading pathspec-0.8.1-py2.py3-none-any.whl (28 kB) | |
2021-07-10T23:49:33.2284662Z Collecting mypy-extensions>=0.4.3 | |
2021-07-10T23:49:33.2442483Z Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB) | |
2021-07-10T23:49:33.8391011Z Collecting regex>=2020.1.8 | |
2021-07-10T23:49:33.8553093Z Downloading regex-2021.7.6-cp38-cp38-win_amd64.whl (270 kB) | |
2021-07-10T23:49:33.9349895Z Collecting python-multipart | |
2021-07-10T23:49:33.9502547Z Downloading python-multipart-0.0.5.tar.gz (32 kB) | |
2021-07-10T23:49:34.4317531Z Collecting soupsieve>1.2 | |
2021-07-10T23:49:34.4467944Z Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB) | |
2021-07-10T23:49:34.5100986Z Collecting colorama | |
2021-07-10T23:49:34.5752867Z Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB) | |
2021-07-10T23:49:34.6365283Z Collecting sniffio | |
2021-07-10T23:49:34.6537594Z Downloading sniffio-1.2.0-py3-none-any.whl (10 kB) | |
2021-07-10T23:49:35.3038661Z Collecting certifi | |
2021-07-10T23:49:35.3197616Z Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB) | |
2021-07-10T23:49:35.5294446Z Collecting rfc3986[idna2008]<2,>=1.3 | |
2021-07-10T23:49:35.5444007Z Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB) | |
2021-07-10T23:49:35.6285744Z Collecting httpcore<0.14.0,>=0.13.3 | |
2021-07-10T23:49:35.6439197Z Downloading httpcore-0.13.6-py3-none-any.whl (58 kB) | |
2021-07-10T23:49:35.7991061Z Collecting h11<0.13,>=0.11 | |
2021-07-10T23:49:35.8114249Z Downloading h11-0.12.0-py3-none-any.whl (54 kB) | |
2021-07-10T23:49:35.9043769Z Collecting anyio==3.* | |
2021-07-10T23:49:35.9299375Z Downloading anyio-3.2.1-py3-none-any.whl (75 kB) | |
2021-07-10T23:49:36.0401338Z Collecting idna>=2.8 | |
2021-07-10T23:49:36.0403739Z Downloading idna-3.2-py3-none-any.whl (59 kB) | |
2021-07-10T23:49:36.2673329Z Collecting MarkupSafe>=2.0 | |
2021-07-10T23:49:36.2681923Z Downloading MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl (14 kB) | |
2021-07-10T23:49:36.3194818Z Collecting packaging | |
2021-07-10T23:49:36.3333168Z Downloading packaging-21.0-py3-none-any.whl (40 kB) | |
2021-07-10T23:49:36.4101734Z Collecting atomicwrites>=1.0 | |
2021-07-10T23:49:36.4297162Z Downloading atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB) | |
2021-07-10T23:49:36.4688948Z Collecting iniconfig | |
2021-07-10T23:49:36.4922692Z Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB) | |
2021-07-10T23:49:36.5690276Z Collecting py>=1.8.2 | |
2021-07-10T23:49:36.5850672Z Downloading py-1.10.0-py2.py3-none-any.whl (97 kB) | |
2021-07-10T23:49:36.6368850Z Collecting attrs>=19.2.0 | |
2021-07-10T23:49:36.6560652Z Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB) | |
2021-07-10T23:49:36.8213163Z Collecting execnet>=1.1 | |
2021-07-10T23:49:36.8368157Z Downloading execnet-1.9.0-py2.py3-none-any.whl (39 kB) | |
2021-07-10T23:49:36.8938988Z Collecting pytest-forked | |
2021-07-10T23:49:36.9073526Z Downloading pytest_forked-1.3.0-py2.py3-none-any.whl (4.7 kB) | |
2021-07-10T23:49:37.4134307Z Collecting cryptography | |
2021-07-10T23:49:37.4306954Z Downloading cryptography-3.4.7-cp36-abi3-win_amd64.whl (1.6 MB) | |
2021-07-10T23:49:37.9154133Z Collecting cffi>=1.12 | |
2021-07-10T23:49:37.9314816Z Downloading cffi-1.14.6-cp38-cp38-win_amd64.whl (179 kB) | |
2021-07-10T23:49:37.9980442Z Collecting pycparser | |
2021-07-10T23:49:38.0135480Z Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB) | |
2021-07-10T23:49:38.1460414Z Collecting pyparsing>=2.0.2 | |
2021-07-10T23:49:38.1627198Z Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB) | |
2021-07-10T23:49:38.2788693Z Collecting six>=1.4.0 | |
2021-07-10T23:49:38.2996167Z Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) | |
2021-07-10T23:49:38.3305582Z Using legacy 'setup.py install' for python-baseconv, since package 'wheel' is not installed. | |
2021-07-10T23:49:38.3309893Z Using legacy 'setup.py install' for click-default-group, since package 'wheel' is not installed. | |
2021-07-10T23:49:38.3316298Z Using legacy 'setup.py install' for python-multipart, since package 'wheel' is not installed. | |
2021-07-10T23:49:38.6258135Z Installing collected packages: sniffio, pyparsing, idna, toml, six, rfc3986, pycparser, py, pluggy, packaging, iniconfig, h11, colorama, attrs, atomicwrites, anyio, python-multipart, pytest, MarkupSafe, itsdangerous, httpcore, click, cffi, certifi, asgiref, uvicorn, soupsieve, regex, PyYAML, python-baseconv, pytest-forked, pint, pathspec, mypy-extensions, mergedeep, Jinja2, janus, hupper, httpx, execnet, cryptography, click-default-group, asgi-csrf, appdirs, aiofiles, trustme, pytest-xdist, pytest-timeout, pytest-asyncio, datasette, black, beautifulsoup4 | |
2021-07-10T23:49:40.1082779Z Running setup.py install for python-multipart: started | |
2021-07-10T23:49:40.6127780Z Running setup.py install for python-multipart: finished with status 'done' | |
2021-07-10T23:49:42.4913693Z Running setup.py install for python-baseconv: started | |
2021-07-10T23:49:42.8809872Z Running setup.py install for python-baseconv: finished with status 'done' | |
2021-07-10T23:49:44.5756532Z Running setup.py install for click-default-group: started | |
2021-07-10T23:49:45.0414588Z Running setup.py install for click-default-group: finished with status 'done' | |
2021-07-10T23:49:45.3965533Z Running setup.py develop for datasette | |
2021-07-10T23:49:46.8059850Z Successfully installed Jinja2-3.0.1 MarkupSafe-2.0.1 PyYAML-5.4.1 aiofiles-0.7.0 anyio-3.2.1 appdirs-1.4.4 asgi-csrf-0.9 asgiref-3.3.4 atomicwrites-1.4.0 attrs-21.2.0 beautifulsoup4-4.9.3 black-21.6b0 certifi-2021.5.30 cffi-1.14.6 click-8.0.1 click-default-group-1.2.2 colorama-0.4.4 cryptography-3.4.7 datasette-0.58a1 execnet-1.9.0 h11-0.12.0 httpcore-0.13.6 httpx-0.18.2 hupper-1.10.3 idna-3.2 iniconfig-1.1.1 itsdangerous-2.0.1 janus-0.6.1 mergedeep-1.3.4 mypy-extensions-0.4.3 packaging-21.0 pathspec-0.8.1 pint-0.17 pluggy-0.13.1 py-1.10.0 pycparser-2.20 pyparsing-2.4.7 pytest-6.2.4 pytest-asyncio-0.15.1 pytest-forked-1.3.0 pytest-timeout-1.4.2 pytest-xdist-2.3.0 python-baseconv-1.2.2 python-multipart-0.0.5 regex-2021.7.6 rfc3986-1.5.0 six-1.16.0 sniffio-1.2.0 soupsieve-2.2.1 toml-0.10.2 trustme-0.8.0 uvicorn-0.14.0 | |
2021-07-10T23:49:47.6840423Z ##[group]Run pytest -n auto -m "not serial" | |
2021-07-10T23:49:47.6841112Z [36;1mpytest -n auto -m "not serial"[0m | |
2021-07-10T23:49:47.6841603Z [36;1mpytest -m "serial"[0m | |
2021-07-10T23:49:47.6894860Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'" | |
2021-07-10T23:49:47.6895416Z env: | |
2021-07-10T23:49:47.6895987Z pythonLocation: C:\hostedtoolcache\windows\Python\3.8.10\x64 | |
2021-07-10T23:49:47.6896594Z ##[endgroup] | |
2021-07-10T23:49:52.6337290Z ============================= test session starts ============================= | |
2021-07-10T23:49:52.6338626Z platform win32 -- Python 3.8.10, pytest-6.2.4, py-1.10.0, pluggy-0.13.1 | |
2021-07-10T23:49:52.6374675Z SQLite: 3.35.5 | |
2021-07-10T23:49:52.6376460Z rootdir: D:\a\datasette\datasette, configfile: pytest.ini | |
2021-07-10T23:49:52.6379300Z plugins: anyio-3.2.1, asyncio-0.15.1, forked-1.3.0, timeout-1.4.2, xdist-2.3.0 | |
2021-07-10T23:49:52.6380078Z gw0 I / gw1 I | |
2021-07-10T23:49:52.6380571Z gw0 [921] / gw1 [921] | |
2021-07-10T23:49:52.6381093Z | |
2021-07-10T23:53:55.0211313Z FF...F...............................F...F.......................F....s. [ 7%] | |
2021-07-10T23:59:57.3574929Z FF...........F.....s.....F...................F..F..........F............ [ 15%] | |
2021-07-11T00:10:28.4822305Z .....F.............E..E......EF........E.......E.E.E.E.E.E.E.E........EF [ 22%] | |
2021-07-11T00:13:40.0195312Z F..................F.....E....E..E..........E.........................EE [ 29%] | |
2021-07-11T00:15:55.2816170Z EEEEEEEEE...........................sss.F...............FFF.FFFFFFF..... [ 37%] | |
2021-07-11T00:19:19.8014977Z .............................................F..FFFF.................... [ 45%] | |
2021-07-11T00:23:29.0692295Z .............................F................FF...FF.F...........F..... [ 52%] | |
2021-07-11T00:26:31.1769121Z ...........................F...........F.........................F...... [ 60%] | |
2021-07-11T00:29:53.4803663Z ......FFFFF.............F............................................... [ 68%] | |
2021-07-11T00:33:12.5757965Z ..........................................................F..F.......... [ 76%] | |
2021-07-11T00:34:01.3370446Z .........................FF..FFFFF...FF................................. [ 84%] | |
2021-07-11T00:35:01.3457894Z .......FF.............FFFFFF............................................ [ 91%] | |
2021-07-11T00:40:30.9900575Z ........................................EFFFFFFFFFFF.F.....FF........FFF [ 99%] | |
2021-07-11T00:40:32.0923362Z FF.E [100%] | |
2021-07-11T00:40:32.0924318Z =================================== ERRORS ==================================== | |
2021-07-11T00:40:32.0925220Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[canned_read-False] _ | |
2021-07-11T00:40:32.0926294Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.0926965Z | |
2021-07-11T00:40:32.0927688Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn' | |
2021-07-11T00:40:32.0928860Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB98E1F0> | |
2021-07-11T00:40:32.0929523Z | |
2021-07-11T00:40:32.0930165Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.0930827Z try: | |
2021-07-11T00:40:32.0931461Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.0932178Z entries = list(scandir_it) | |
2021-07-11T00:40:32.0932781Z except OSError: | |
2021-07-11T00:40:32.0933989Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.0935431Z entries = [] | |
2021-07-11T00:40:32.0935903Z for entry in entries: | |
2021-07-11T00:40:32.0938905Z fullname = entry.path | |
2021-07-11T00:40:32.0939474Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.0939910Z try: | |
2021-07-11T00:40:32.0940396Z if entry.is_symlink(): | |
2021-07-11T00:40:32.0941034Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.0943011Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.0944088Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.0944815Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.0945422Z except OSError: | |
2021-07-11T00:40:32.0946103Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.0947698Z continue | |
2021-07-11T00:40:32.0948237Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.0948776Z else: | |
2021-07-11T00:40:32.0949151Z try: | |
2021-07-11T00:40:32.0949633Z > os.unlink(fullname) | |
2021-07-11T00:40:32.0950789Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn\\data.db' | |
2021-07-11T00:40:32.0951697Z | |
2021-07-11T00:40:32.0952416Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.0953005Z | |
2021-07-11T00:40:32.0953604Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.0954126Z | |
2021-07-11T00:40:32.0954595Z func = <built-in function unlink> | |
2021-07-11T00:40:32.0955294Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn\\data.db' | |
2021-07-11T00:40:32.0956596Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCCECD00>) | |
2021-07-11T00:40:32.0957498Z | |
2021-07-11T00:40:32.0959059Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.0959744Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.0960357Z def resetperms(path): | |
2021-07-11T00:40:32.0960871Z try: | |
2021-07-11T00:40:32.0961314Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.0961906Z except AttributeError: | |
2021-07-11T00:40:32.0962442Z pass | |
2021-07-11T00:40:32.0962873Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.0963315Z | |
2021-07-11T00:40:32.0963660Z try: | |
2021-07-11T00:40:32.0964101Z if path != name: | |
2021-07-11T00:40:32.0964665Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.0965303Z resetperms(path) | |
2021-07-11T00:40:32.0965714Z | |
2021-07-11T00:40:32.0966103Z try: | |
2021-07-11T00:40:32.0966517Z > _os.unlink(path) | |
2021-07-11T00:40:32.0967643Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn\\data.db' | |
2021-07-11T00:40:32.0968550Z | |
2021-07-11T00:40:32.0969373Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.0969975Z | |
2021-07-11T00:40:32.0970630Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.0972786Z | |
2021-07-11T00:40:32.0973204Z @pytest.fixture | |
2021-07-11T00:40:32.0973762Z def canned_write_client(): | |
2021-07-11T00:40:32.0974269Z with make_app_client( | |
2021-07-11T00:40:32.0974948Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.0975547Z metadata={ | |
2021-07-11T00:40:32.0976028Z "databases": { | |
2021-07-11T00:40:32.0976456Z "data": { | |
2021-07-11T00:40:32.0976920Z "queries": { | |
2021-07-11T00:40:32.0977463Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.0978043Z "add_name": { | |
2021-07-11T00:40:32.0978645Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.0979210Z "write": True, | |
2021-07-11T00:40:32.0980422Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.0981126Z }, | |
2021-07-11T00:40:32.0981643Z "add_name_specify_id": { | |
2021-07-11T00:40:32.0982310Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.0982967Z "write": True, | |
2021-07-11T00:40:32.0983628Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.0984182Z }, | |
2021-07-11T00:40:32.0984655Z "delete_name": { | |
2021-07-11T00:40:32.0985237Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.0985849Z "write": True, | |
2021-07-11T00:40:32.0986412Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.0987021Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.0987445Z }, | |
2021-07-11T00:40:32.0987916Z "update_name": { | |
2021-07-11T00:40:32.0988561Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.0989217Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.0989793Z "write": True, | |
2021-07-11T00:40:32.0990207Z }, | |
2021-07-11T00:40:32.0990616Z } | |
2021-07-11T00:40:32.0991009Z } | |
2021-07-11T00:40:32.0991404Z } | |
2021-07-11T00:40:32.0991745Z }, | |
2021-07-11T00:40:32.0992161Z ) as client: | |
2021-07-11T00:40:32.0992571Z > yield client | |
2021-07-11T00:40:32.0992865Z | |
2021-07-11T00:40:32.0993462Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.0994083Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.0994844Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.0995523Z next(self.gen) | |
2021-07-11T00:40:32.0996214Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.0996881Z yield TestClient(ds) | |
2021-07-11T00:40:32.0997612Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.0998335Z self.cleanup() | |
2021-07-11T00:40:32.0999026Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.0999781Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1000488Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1001329Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1002089Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1002860Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1003623Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1004466Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1005300Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1005977Z cls._rmtree(path) | |
2021-07-11T00:40:32.1006719Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1007493Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1008282Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1009007Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1009809Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1010584Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1011193Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1011657Z | |
2021-07-11T00:40:32.1012252Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn\\data.db' | |
2021-07-11T00:40:32.1013250Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB98E550> | |
2021-07-11T00:40:32.1013843Z | |
2021-07-11T00:40:32.1014460Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1014922Z try: | |
2021-07-11T00:40:32.1015426Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1016458Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpaeod17nn\\data.db' | |
2021-07-11T00:40:32.1017182Z | |
2021-07-11T00:40:32.1017929Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1018964Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[add_name-True] _ | |
2021-07-11T00:40:32.1019867Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1020456Z | |
2021-07-11T00:40:32.1021041Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap' | |
2021-07-11T00:40:32.1021994Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCCE7F70> | |
2021-07-11T00:40:32.1022598Z | |
2021-07-11T00:40:32.1023045Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1023542Z try: | |
2021-07-11T00:40:32.1024014Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1024621Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1025157Z except OSError: | |
2021-07-11T00:40:32.1025715Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1026288Z entries = [] | |
2021-07-11T00:40:32.1026734Z for entry in entries: | |
2021-07-11T00:40:32.1027278Z fullname = entry.path | |
2021-07-11T00:40:32.1027785Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1028255Z try: | |
2021-07-11T00:40:32.1028701Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1029338Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1030008Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1030706Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1031455Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1032057Z except OSError: | |
2021-07-11T00:40:32.1032740Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1033336Z continue | |
2021-07-11T00:40:32.1033902Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1034394Z else: | |
2021-07-11T00:40:32.1034808Z try: | |
2021-07-11T00:40:32.1035236Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1036381Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap\\data.db' | |
2021-07-11T00:40:32.1037294Z | |
2021-07-11T00:40:32.1037957Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1039190Z | |
2021-07-11T00:40:32.1039876Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1040387Z | |
2021-07-11T00:40:32.1040856Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1041604Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap\\data.db' | |
2021-07-11T00:40:32.1042848Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCB32640>) | |
2021-07-11T00:40:32.1043750Z | |
2021-07-11T00:40:32.1044243Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1044880Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1045527Z def resetperms(path): | |
2021-07-11T00:40:32.1046202Z try: | |
2021-07-11T00:40:32.1046689Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1047225Z except AttributeError: | |
2021-07-11T00:40:32.1047756Z pass | |
2021-07-11T00:40:32.1048227Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1048621Z | |
2021-07-11T00:40:32.1049009Z try: | |
2021-07-11T00:40:32.1049406Z if path != name: | |
2021-07-11T00:40:32.1050011Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1050600Z resetperms(path) | |
2021-07-11T00:40:32.1051087Z | |
2021-07-11T00:40:32.1051432Z try: | |
2021-07-11T00:40:32.1051880Z > _os.unlink(path) | |
2021-07-11T00:40:32.1052947Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap\\data.db' | |
2021-07-11T00:40:32.1053849Z | |
2021-07-11T00:40:32.1054593Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1055211Z | |
2021-07-11T00:40:32.1055808Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1056324Z | |
2021-07-11T00:40:32.1056760Z @pytest.fixture | |
2021-07-11T00:40:32.1057243Z def canned_write_client(): | |
2021-07-11T00:40:32.1057768Z with make_app_client( | |
2021-07-11T00:40:32.1058390Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1059015Z metadata={ | |
2021-07-11T00:40:32.1059451Z "databases": { | |
2021-07-11T00:40:32.1059912Z "data": { | |
2021-07-11T00:40:32.1060328Z "queries": { | |
2021-07-11T00:40:32.1060944Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1061479Z "add_name": { | |
2021-07-11T00:40:32.1062074Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1062686Z "write": True, | |
2021-07-11T00:40:32.1063271Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1063844Z }, | |
2021-07-11T00:40:32.1064295Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1064977Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1065583Z "write": True, | |
2021-07-11T00:40:32.1066236Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1066823Z }, | |
2021-07-11T00:40:32.1067257Z "delete_name": { | |
2021-07-11T00:40:32.1067891Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1068452Z "write": True, | |
2021-07-11T00:40:32.1069051Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1069608Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1070065Z }, | |
2021-07-11T00:40:32.1070487Z "update_name": { | |
2021-07-11T00:40:32.1071163Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1071855Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1072373Z "write": True, | |
2021-07-11T00:40:32.1072836Z }, | |
2021-07-11T00:40:32.1073201Z } | |
2021-07-11T00:40:32.1073601Z } | |
2021-07-11T00:40:32.1073948Z } | |
2021-07-11T00:40:32.1074320Z }, | |
2021-07-11T00:40:32.1074693Z ) as client: | |
2021-07-11T00:40:32.1075136Z > yield client | |
2021-07-11T00:40:32.1075429Z | |
2021-07-11T00:40:32.1076581Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1077268Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1077961Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1078686Z next(self.gen) | |
2021-07-11T00:40:32.1079345Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1080063Z yield TestClient(ds) | |
2021-07-11T00:40:32.1081176Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1082146Z self.cleanup() | |
2021-07-11T00:40:32.1084005Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1084774Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1085486Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1086308Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1087125Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1087863Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1088671Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1089463Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1090299Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1091016Z cls._rmtree(path) | |
2021-07-11T00:40:32.1091726Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1092504Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1093309Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1094079Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1094841Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1096294Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1096837Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1097153Z | |
2021-07-11T00:40:32.1097792Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap\\data.db' | |
2021-07-11T00:40:32.1098744Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCBB9550> | |
2021-07-11T00:40:32.1099342Z | |
2021-07-11T00:40:32.1099842Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1100302Z try: | |
2021-07-11T00:40:32.1100846Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1101844Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpvbzq3hap\\data.db' | |
2021-07-11T00:40:32.1102612Z | |
2021-07-11T00:40:32.1103358Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1104249Z _____________ ERROR at teardown of test_insert_no_cookies_no_csrf _____________ | |
2021-07-11T00:40:32.1105139Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1105697Z | |
2021-07-11T00:40:32.1106258Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg' | |
2021-07-11T00:40:32.1107232Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCD8D790> | |
2021-07-11T00:40:32.1107839Z | |
2021-07-11T00:40:32.1108290Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1108799Z try: | |
2021-07-11T00:40:32.1109283Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1109909Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1110408Z except OSError: | |
2021-07-11T00:40:32.1111063Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1111605Z entries = [] | |
2021-07-11T00:40:32.1112116Z for entry in entries: | |
2021-07-11T00:40:32.1112663Z fullname = entry.path | |
2021-07-11T00:40:32.1113365Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1113940Z try: | |
2021-07-11T00:40:32.1114387Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1115034Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1115706Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1116411Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1117100Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1117760Z except OSError: | |
2021-07-11T00:40:32.1118405Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1119060Z continue | |
2021-07-11T00:40:32.1119655Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1120158Z else: | |
2021-07-11T00:40:32.1120589Z try: | |
2021-07-11T00:40:32.1121063Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1122226Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg\\data.db' | |
2021-07-11T00:40:32.1123141Z | |
2021-07-11T00:40:32.1123817Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1124403Z | |
2021-07-11T00:40:32.1125066Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1125545Z | |
2021-07-11T00:40:32.1126030Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1126737Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg\\data.db' | |
2021-07-11T00:40:32.1128029Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB146580>) | |
2021-07-11T00:40:32.1128916Z | |
2021-07-11T00:40:32.1129371Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1130078Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1130911Z def resetperms(path): | |
2021-07-11T00:40:32.1131387Z try: | |
2021-07-11T00:40:32.1131879Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1132427Z except AttributeError: | |
2021-07-11T00:40:32.1132979Z pass | |
2021-07-11T00:40:32.1133425Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1133878Z | |
2021-07-11T00:40:32.1134219Z try: | |
2021-07-11T00:40:32.1134676Z if path != name: | |
2021-07-11T00:40:32.1135241Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1135879Z resetperms(path) | |
2021-07-11T00:40:32.1136296Z | |
2021-07-11T00:40:32.1136700Z try: | |
2021-07-11T00:40:32.1137169Z > _os.unlink(path) | |
2021-07-11T00:40:32.1138254Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg\\data.db' | |
2021-07-11T00:40:32.1139170Z | |
2021-07-11T00:40:32.1140355Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1141459Z | |
2021-07-11T00:40:32.1142155Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1142688Z | |
2021-07-11T00:40:32.1143100Z @pytest.fixture | |
2021-07-11T00:40:32.1143643Z def canned_write_client(): | |
2021-07-11T00:40:32.1144133Z with make_app_client( | |
2021-07-11T00:40:32.1144819Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1146208Z metadata={ | |
2021-07-11T00:40:32.1146699Z "databases": { | |
2021-07-11T00:40:32.1147172Z "data": { | |
2021-07-11T00:40:32.1147604Z "queries": { | |
2021-07-11T00:40:32.1148204Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1148860Z "add_name": { | |
2021-07-11T00:40:32.1150093Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1150673Z "write": True, | |
2021-07-11T00:40:32.1152371Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1152927Z }, | |
2021-07-11T00:40:32.1153435Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1154122Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1154731Z "write": True, | |
2021-07-11T00:40:32.1155385Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1155945Z }, | |
2021-07-11T00:40:32.1156432Z "delete_name": { | |
2021-07-11T00:40:32.1157017Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1157630Z "write": True, | |
2021-07-11T00:40:32.1158184Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1158793Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1159263Z }, | |
2021-07-11T00:40:32.1159696Z "update_name": { | |
2021-07-11T00:40:32.1160352Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1161040Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1161601Z "write": True, | |
2021-07-11T00:40:32.1162016Z }, | |
2021-07-11T00:40:32.1162424Z } | |
2021-07-11T00:40:32.1162783Z } | |
2021-07-11T00:40:32.1163171Z } | |
2021-07-11T00:40:32.1163555Z }, | |
2021-07-11T00:40:32.1163930Z ) as client: | |
2021-07-11T00:40:32.1164379Z > yield client | |
2021-07-11T00:40:32.1164636Z | |
2021-07-11T00:40:32.1165233Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1165849Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1166580Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1167300Z next(self.gen) | |
2021-07-11T00:40:32.1167939Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1168645Z yield TestClient(ds) | |
2021-07-11T00:40:32.1169341Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1170053Z self.cleanup() | |
2021-07-11T00:40:32.1170738Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1171520Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1172240Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1173059Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1173855Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1174580Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1175380Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1176176Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1177002Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1177673Z cls._rmtree(path) | |
2021-07-11T00:40:32.1178387Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1179355Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1180111Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1180918Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1181791Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1182682Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1183221Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1183527Z | |
2021-07-11T00:40:32.1184924Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg\\data.db' | |
2021-07-11T00:40:32.1185894Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCCBBAF0> | |
2021-07-11T00:40:32.1186505Z | |
2021-07-11T00:40:32.1186995Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1187455Z try: | |
2021-07-11T00:40:32.1188303Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1189321Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdr41pgwg\\data.db' | |
2021-07-11T00:40:32.1190083Z | |
2021-07-11T00:40:32.1191128Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1191999Z ___________________ ERROR at teardown of test_insert_error ____________________ | |
2021-07-11T00:40:32.1192842Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1193387Z | |
2021-07-11T00:40:32.1193930Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_' | |
2021-07-11T00:40:32.1194876Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCEA93A0> | |
2021-07-11T00:40:32.1195480Z | |
2021-07-11T00:40:32.1195927Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1196435Z try: | |
2021-07-11T00:40:32.1196910Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1197504Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1198002Z except OSError: | |
2021-07-11T00:40:32.1198607Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1199137Z entries = [] | |
2021-07-11T00:40:32.1199637Z for entry in entries: | |
2021-07-11T00:40:32.1200184Z fullname = entry.path | |
2021-07-11T00:40:32.1200692Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1201198Z try: | |
2021-07-11T00:40:32.1201643Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1202280Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1202944Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1203623Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1204303Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1204942Z except OSError: | |
2021-07-11T00:40:32.1206416Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1207022Z continue | |
2021-07-11T00:40:32.1207584Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1208074Z else: | |
2021-07-11T00:40:32.1208496Z try: | |
2021-07-11T00:40:32.1208926Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1210053Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_\\data.db' | |
2021-07-11T00:40:32.1210974Z | |
2021-07-11T00:40:32.1211638Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1212211Z | |
2021-07-11T00:40:32.1212846Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1213320Z | |
2021-07-11T00:40:32.1213797Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1214529Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_\\data.db' | |
2021-07-11T00:40:32.1215763Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB4D7040>) | |
2021-07-11T00:40:32.1217263Z | |
2021-07-11T00:40:32.1217777Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1218421Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1219079Z def resetperms(path): | |
2021-07-11T00:40:32.1219518Z try: | |
2021-07-11T00:40:32.1219992Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1220535Z except AttributeError: | |
2021-07-11T00:40:32.1221110Z pass | |
2021-07-11T00:40:32.1221545Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1221984Z | |
2021-07-11T00:40:32.1222330Z try: | |
2021-07-11T00:40:32.1222768Z if path != name: | |
2021-07-11T00:40:32.1223332Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1223963Z resetperms(path) | |
2021-07-11T00:40:32.1224408Z | |
2021-07-11T00:40:32.1224749Z try: | |
2021-07-11T00:40:32.1225954Z > _os.unlink(path) | |
2021-07-11T00:40:32.1227032Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_\\data.db' | |
2021-07-11T00:40:32.1227927Z | |
2021-07-11T00:40:32.1228646Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1229200Z | |
2021-07-11T00:40:32.1229842Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1230355Z | |
2021-07-11T00:40:32.1230783Z @pytest.fixture | |
2021-07-11T00:40:32.1231322Z def canned_write_client(): | |
2021-07-11T00:40:32.1231805Z with make_app_client( | |
2021-07-11T00:40:32.1232467Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1233104Z metadata={ | |
2021-07-11T00:40:32.1233535Z "databases": { | |
2021-07-11T00:40:32.1233989Z "data": { | |
2021-07-11T00:40:32.1234416Z "queries": { | |
2021-07-11T00:40:32.1235001Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1235527Z "add_name": { | |
2021-07-11T00:40:32.1236117Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1236686Z "write": True, | |
2021-07-11T00:40:32.1237317Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1237882Z }, | |
2021-07-11T00:40:32.1238331Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1239009Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1239610Z "write": True, | |
2021-07-11T00:40:32.1240259Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1240839Z }, | |
2021-07-11T00:40:32.1241320Z "delete_name": { | |
2021-07-11T00:40:32.1242504Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1243127Z "write": True, | |
2021-07-11T00:40:32.1243721Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1244282Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1244749Z }, | |
2021-07-11T00:40:32.1245959Z "update_name": { | |
2021-07-11T00:40:32.1246614Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1247267Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1247828Z "write": True, | |
2021-07-11T00:40:32.1248247Z }, | |
2021-07-11T00:40:32.1248653Z } | |
2021-07-11T00:40:32.1249166Z } | |
2021-07-11T00:40:32.1249577Z } | |
2021-07-11T00:40:32.1249962Z }, | |
2021-07-11T00:40:32.1250333Z ) as client: | |
2021-07-11T00:40:32.1250822Z > yield client | |
2021-07-11T00:40:32.1251078Z | |
2021-07-11T00:40:32.1251678Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1252347Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1253040Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1253759Z next(self.gen) | |
2021-07-11T00:40:32.1254398Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1255098Z yield TestClient(ds) | |
2021-07-11T00:40:32.1255796Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1256510Z self.cleanup() | |
2021-07-11T00:40:32.1257200Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1257961Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1258712Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1259487Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1260280Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1261039Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1261843Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1262633Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1263456Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1264175Z cls._rmtree(path) | |
2021-07-11T00:40:32.1264848Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1266329Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1267082Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1267858Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1268615Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1269440Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1269979Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1270287Z | |
2021-07-11T00:40:32.1270947Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_\\data.db' | |
2021-07-11T00:40:32.1273356Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCF40E50> | |
2021-07-11T00:40:32.1273999Z | |
2021-07-11T00:40:32.1274493Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1274953Z try: | |
2021-07-11T00:40:32.1275461Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1276459Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpry729pq_\\data.db' | |
2021-07-11T00:40:32.1277220Z | |
2021-07-11T00:40:32.1277957Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1278886Z ---------------------------- Captured stderr call ----------------------------- | |
2021-07-11T00:40:32.1279636Z UNIQUE constraint failed: names.rowid | |
2021-07-11T00:40:32.1280252Z UNIQUE constraint failed: names.rowid | |
2021-07-11T00:40:32.1283125Z ____________________ ERROR at teardown of test_vary_header ____________________ | |
2021-07-11T00:40:32.1283993Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1284496Z | |
2021-07-11T00:40:32.1285089Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx' | |
2021-07-11T00:40:32.1286032Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCF40700> | |
2021-07-11T00:40:32.1286582Z | |
2021-07-11T00:40:32.1287073Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1287530Z try: | |
2021-07-11T00:40:32.1288249Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1288859Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1289355Z except OSError: | |
2021-07-11T00:40:32.1289959Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1290490Z entries = [] | |
2021-07-11T00:40:32.1291153Z for entry in entries: | |
2021-07-11T00:40:32.1291657Z fullname = entry.path | |
2021-07-11T00:40:32.1293018Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1293452Z try: | |
2021-07-11T00:40:32.1293941Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1294530Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1295230Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1295908Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1296587Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1297230Z except OSError: | |
2021-07-11T00:40:32.1297860Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1298493Z continue | |
2021-07-11T00:40:32.1299010Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1299578Z else: | |
2021-07-11T00:40:32.1299956Z try: | |
2021-07-11T00:40:32.1300431Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1301606Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx\\data.db' | |
2021-07-11T00:40:32.1302466Z | |
2021-07-11T00:40:32.1303170Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1303743Z | |
2021-07-11T00:40:32.1304343Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1304859Z | |
2021-07-11T00:40:32.1305331Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1306024Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx\\data.db' | |
2021-07-11T00:40:32.1307303Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCF53080>) | |
2021-07-11T00:40:32.1308184Z | |
2021-07-11T00:40:32.1308620Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1309296Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1309904Z def resetperms(path): | |
2021-07-11T00:40:32.1310383Z try: | |
2021-07-11T00:40:32.1311513Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1312092Z except AttributeError: | |
2021-07-11T00:40:32.1312619Z pass | |
2021-07-11T00:40:32.1313052Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1313491Z | |
2021-07-11T00:40:32.1313828Z try: | |
2021-07-11T00:40:32.1314274Z if path != name: | |
2021-07-11T00:40:32.1314834Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1315463Z resetperms(path) | |
2021-07-11T00:40:32.1315867Z | |
2021-07-11T00:40:32.1316251Z try: | |
2021-07-11T00:40:32.1316658Z > _os.unlink(path) | |
2021-07-11T00:40:32.1317766Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx\\data.db' | |
2021-07-11T00:40:32.1318654Z | |
2021-07-11T00:40:32.1319338Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1319936Z | |
2021-07-11T00:40:32.1320578Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1321132Z | |
2021-07-11T00:40:32.1321524Z @pytest.fixture | |
2021-07-11T00:40:32.1322056Z def canned_write_client(): | |
2021-07-11T00:40:32.1322635Z with make_app_client( | |
2021-07-11T00:40:32.1323367Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1323953Z metadata={ | |
2021-07-11T00:40:32.1324424Z "databases": { | |
2021-07-11T00:40:32.1324836Z "data": { | |
2021-07-11T00:40:32.1325295Z "queries": { | |
2021-07-11T00:40:32.1325831Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1326395Z "add_name": { | |
2021-07-11T00:40:32.1326987Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1327549Z "write": True, | |
2021-07-11T00:40:32.1328177Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1328706Z }, | |
2021-07-11T00:40:32.1329192Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1329832Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1330482Z "write": True, | |
2021-07-11T00:40:32.1331121Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1331712Z }, | |
2021-07-11T00:40:32.1332183Z "delete_name": { | |
2021-07-11T00:40:32.1332755Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1333358Z "write": True, | |
2021-07-11T00:40:32.1333917Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1334520Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1334944Z }, | |
2021-07-11T00:40:32.1335407Z "update_name": { | |
2021-07-11T00:40:32.1336014Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1336715Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1337274Z "write": True, | |
2021-07-11T00:40:32.1338402Z }, | |
2021-07-11T00:40:32.1338807Z } | |
2021-07-11T00:40:32.1339164Z } | |
2021-07-11T00:40:32.1339548Z } | |
2021-07-11T00:40:32.1339883Z }, | |
2021-07-11T00:40:32.1340290Z ) as client: | |
2021-07-11T00:40:32.1340694Z > yield client | |
2021-07-11T00:40:32.1341191Z | |
2021-07-11T00:40:32.1341797Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1342408Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1343680Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1344925Z next(self.gen) | |
2021-07-11T00:40:32.1345631Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1346344Z yield TestClient(ds) | |
2021-07-11T00:40:32.1347042Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1347754Z self.cleanup() | |
2021-07-11T00:40:32.1348443Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1349192Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1349911Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1350725Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1351519Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1352292Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1353090Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1353882Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1354845Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1355582Z cls._rmtree(path) | |
2021-07-11T00:40:32.1356294Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1357780Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1358581Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1359307Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1360102Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1360953Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1361488Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1361794Z | |
2021-07-11T00:40:32.1362423Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx\\data.db' | |
2021-07-11T00:40:32.1363372Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCF2F040> | |
2021-07-11T00:40:32.1363979Z | |
2021-07-11T00:40:32.1364426Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1364929Z try: | |
2021-07-11T00:40:32.1365435Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1368557Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwwi56vsx\\data.db' | |
2021-07-11T00:40:32.1371683Z | |
2021-07-11T00:40:32.1372531Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1373369Z ______________________ ERROR at teardown of test_insert _______________________ | |
2021-07-11T00:40:32.1374191Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1374733Z | |
2021-07-11T00:40:32.1375264Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g' | |
2021-07-11T00:40:32.1376402Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7F271F0> | |
2021-07-11T00:40:32.1376970Z | |
2021-07-11T00:40:32.1377463Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1377965Z try: | |
2021-07-11T00:40:32.1378435Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1379029Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1379519Z except OSError: | |
2021-07-11T00:40:32.1380119Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1380645Z entries = [] | |
2021-07-11T00:40:32.1381346Z for entry in entries: | |
2021-07-11T00:40:32.1381851Z fullname = entry.path | |
2021-07-11T00:40:32.1382399Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1382831Z try: | |
2021-07-11T00:40:32.1383315Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1383950Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1384610Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1385301Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1385984Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1386621Z except OSError: | |
2021-07-11T00:40:32.1387251Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1387884Z continue | |
2021-07-11T00:40:32.1388402Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1388940Z else: | |
2021-07-11T00:40:32.1389350Z try: | |
2021-07-11T00:40:32.1389779Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1390931Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g\\data.db' | |
2021-07-11T00:40:32.1391806Z | |
2021-07-11T00:40:32.1392467Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1393026Z | |
2021-07-11T00:40:32.1393809Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1394371Z | |
2021-07-11T00:40:32.1394828Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1395506Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g\\data.db' | |
2021-07-11T00:40:32.1396768Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7BBBB80>) | |
2021-07-11T00:40:32.1397653Z | |
2021-07-11T00:40:32.1398090Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1398768Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1399383Z def resetperms(path): | |
2021-07-11T00:40:32.1399864Z try: | |
2021-07-11T00:40:32.1400340Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1400906Z except AttributeError: | |
2021-07-11T00:40:32.1401427Z pass | |
2021-07-11T00:40:32.1401857Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1402289Z | |
2021-07-11T00:40:32.1402632Z try: | |
2021-07-11T00:40:32.1403072Z if path != name: | |
2021-07-11T00:40:32.1403630Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1404256Z resetperms(path) | |
2021-07-11T00:40:32.1404657Z | |
2021-07-11T00:40:32.1405039Z try: | |
2021-07-11T00:40:32.1405446Z > _os.unlink(path) | |
2021-07-11T00:40:32.1406530Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g\\data.db' | |
2021-07-11T00:40:32.1407408Z | |
2021-07-11T00:40:32.1408091Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1408689Z | |
2021-07-11T00:40:32.1409330Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1409844Z | |
2021-07-11T00:40:32.1410245Z @pytest.fixture | |
2021-07-11T00:40:32.1410802Z def canned_write_client(): | |
2021-07-11T00:40:32.1411288Z with make_app_client( | |
2021-07-11T00:40:32.1411949Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1412541Z metadata={ | |
2021-07-11T00:40:32.1413011Z "databases": { | |
2021-07-11T00:40:32.1413422Z "data": { | |
2021-07-11T00:40:32.1413884Z "queries": { | |
2021-07-11T00:40:32.1414462Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1414990Z "add_name": { | |
2021-07-11T00:40:32.1415587Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1416151Z "write": True, | |
2021-07-11T00:40:32.1416777Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1417311Z }, | |
2021-07-11T00:40:32.1417798Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1418439Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1419082Z "write": True, | |
2021-07-11T00:40:32.1419734Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1420281Z }, | |
2021-07-11T00:40:32.1420778Z "delete_name": { | |
2021-07-11T00:40:32.1421356Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1421957Z "write": True, | |
2021-07-11T00:40:32.1422512Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1423114Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1423594Z }, | |
2021-07-11T00:40:32.1424100Z "update_name": { | |
2021-07-11T00:40:32.1424802Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1425454Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1426028Z "write": True, | |
2021-07-11T00:40:32.1426444Z }, | |
2021-07-11T00:40:32.1426855Z } | |
2021-07-11T00:40:32.1427212Z } | |
2021-07-11T00:40:32.1427605Z } | |
2021-07-11T00:40:32.1427946Z }, | |
2021-07-11T00:40:32.1428355Z ) as client: | |
2021-07-11T00:40:32.1428803Z > yield client | |
2021-07-11T00:40:32.1429058Z | |
2021-07-11T00:40:32.1429649Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1430266Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1431030Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1431743Z next(self.gen) | |
2021-07-11T00:40:32.1432378Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1433055Z yield TestClient(ds) | |
2021-07-11T00:40:32.1433746Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1434445Z self.cleanup() | |
2021-07-11T00:40:32.1435133Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1435881Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1436586Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1437402Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1438193Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1438913Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1439704Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1440507Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1441357Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1442028Z cls._rmtree(path) | |
2021-07-11T00:40:32.1442739Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1443503Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1444287Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1446019Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1446826Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1447643Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1448179Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1448483Z | |
2021-07-11T00:40:32.1449093Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g\\data.db' | |
2021-07-11T00:40:32.1450034Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E81E94C0> | |
2021-07-11T00:40:32.1450630Z | |
2021-07-11T00:40:32.1451322Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1451784Z try: | |
2021-07-11T00:40:32.1452292Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1453268Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcwga_x5g\\data.db' | |
2021-07-11T00:40:32.1454010Z | |
2021-07-11T00:40:32.1454746Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1455732Z __ ERROR at teardown of test_json_response[None-name=NameGoesHere-?_json=1] ___ | |
2021-07-11T00:40:32.1456701Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1457242Z | |
2021-07-11T00:40:32.1457781Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz' | |
2021-07-11T00:40:32.1458844Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCC5B040> | |
2021-07-11T00:40:32.1459510Z | |
2021-07-11T00:40:32.1459951Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1460451Z try: | |
2021-07-11T00:40:32.1460952Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1461544Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1462038Z except OSError: | |
2021-07-11T00:40:32.1462636Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1463162Z entries = [] | |
2021-07-11T00:40:32.1463650Z for entry in entries: | |
2021-07-11T00:40:32.1464150Z fullname = entry.path | |
2021-07-11T00:40:32.1464701Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1465143Z try: | |
2021-07-11T00:40:32.1465628Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1466257Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1466924Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1467614Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1468287Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1468922Z except OSError: | |
2021-07-11T00:40:32.1469548Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1470180Z continue | |
2021-07-11T00:40:32.1470724Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1471238Z else: | |
2021-07-11T00:40:32.1471625Z try: | |
2021-07-11T00:40:32.1472049Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1473167Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz\\data.db' | |
2021-07-11T00:40:32.1474055Z | |
2021-07-11T00:40:32.1474718Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1475286Z | |
2021-07-11T00:40:32.1475862Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1476387Z | |
2021-07-11T00:40:32.1476852Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1477536Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz\\data.db' | |
2021-07-11T00:40:32.1478810Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCEF9380>) | |
2021-07-11T00:40:32.1479704Z | |
2021-07-11T00:40:32.1480137Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1480844Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1481492Z def resetperms(path): | |
2021-07-11T00:40:32.1481930Z try: | |
2021-07-11T00:40:32.1482402Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1482940Z except AttributeError: | |
2021-07-11T00:40:32.1483473Z pass | |
2021-07-11T00:40:32.1483905Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1484337Z | |
2021-07-11T00:40:32.1484676Z try: | |
2021-07-11T00:40:32.1485113Z if path != name: | |
2021-07-11T00:40:32.1485672Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1486298Z resetperms(path) | |
2021-07-11T00:40:32.1486700Z | |
2021-07-11T00:40:32.1487117Z try: | |
2021-07-11T00:40:32.1487528Z > _os.unlink(path) | |
2021-07-11T00:40:32.1488633Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz\\data.db' | |
2021-07-11T00:40:32.1489515Z | |
2021-07-11T00:40:32.1490226Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1490810Z | |
2021-07-11T00:40:32.1492119Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1492658Z | |
2021-07-11T00:40:32.1493055Z @pytest.fixture | |
2021-07-11T00:40:32.1493585Z def canned_write_client(): | |
2021-07-11T00:40:32.1494069Z with make_app_client( | |
2021-07-11T00:40:32.1494737Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1495319Z metadata={ | |
2021-07-11T00:40:32.1495789Z "databases": { | |
2021-07-11T00:40:32.1496203Z "data": { | |
2021-07-11T00:40:32.1496661Z "queries": { | |
2021-07-11T00:40:32.1497238Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1497765Z "add_name": { | |
2021-07-11T00:40:32.1498354Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1498915Z "write": True, | |
2021-07-11T00:40:32.1499546Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1500079Z }, | |
2021-07-11T00:40:32.1500572Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1501292Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1501897Z "write": True, | |
2021-07-11T00:40:32.1502548Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1503084Z }, | |
2021-07-11T00:40:32.1503558Z "delete_name": { | |
2021-07-11T00:40:32.1504135Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1504736Z "write": True, | |
2021-07-11T00:40:32.1505285Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1505895Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1506363Z }, | |
2021-07-11T00:40:32.1506793Z "update_name": { | |
2021-07-11T00:40:32.1507434Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1508093Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1508665Z "write": True, | |
2021-07-11T00:40:32.1509083Z }, | |
2021-07-11T00:40:32.1509491Z } | |
2021-07-11T00:40:32.1509848Z } | |
2021-07-11T00:40:32.1510238Z } | |
2021-07-11T00:40:32.1510872Z }, | |
2021-07-11T00:40:32.1511243Z ) as client: | |
2021-07-11T00:40:32.1511699Z > yield client | |
2021-07-11T00:40:32.1511952Z | |
2021-07-11T00:40:32.1512549Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1513174Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1513901Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1514607Z next(self.gen) | |
2021-07-11T00:40:32.1515231Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1515924Z yield TestClient(ds) | |
2021-07-11T00:40:32.1516620Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1517333Z self.cleanup() | |
2021-07-11T00:40:32.1518000Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1518741Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1519454Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1520265Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1521096Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1521899Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1522761Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1523554Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1524384Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1525057Z cls._rmtree(path) | |
2021-07-11T00:40:32.1525764Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1526576Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1527300Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1528063Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1528824Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1529635Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1530169Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1530480Z | |
2021-07-11T00:40:32.1531135Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz\\data.db' | |
2021-07-11T00:40:32.1532075Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCFEF1F0> | |
2021-07-11T00:40:32.1532685Z | |
2021-07-11T00:40:32.1533170Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1533626Z try: | |
2021-07-11T00:40:32.1534134Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1535110Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp712vknwz\\data.db' | |
2021-07-11T00:40:32.1535859Z | |
2021-07-11T00:40:32.1536591Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1537587Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[add_name_specify_id-True] _ | |
2021-07-11T00:40:32.1538549Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1539098Z | |
2021-07-11T00:40:32.1539655Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq' | |
2021-07-11T00:40:32.1540604Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C3DC10> | |
2021-07-11T00:40:32.1541220Z | |
2021-07-11T00:40:32.1541664Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1542167Z try: | |
2021-07-11T00:40:32.1542640Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1543237Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1543729Z except OSError: | |
2021-07-11T00:40:32.1544332Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1544861Z entries = [] | |
2021-07-11T00:40:32.1545350Z for entry in entries: | |
2021-07-11T00:40:32.1545850Z fullname = entry.path | |
2021-07-11T00:40:32.1547462Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1550724Z try: | |
2021-07-11T00:40:32.1551256Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1551901Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1552569Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1553251Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1553927Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1554603Z except OSError: | |
2021-07-11T00:40:32.1555232Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1555884Z continue | |
2021-07-11T00:40:32.1556448Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1556938Z else: | |
2021-07-11T00:40:32.1557354Z try: | |
2021-07-11T00:40:32.1557782Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1559068Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq\\data.db' | |
2021-07-11T00:40:32.1560045Z | |
2021-07-11T00:40:32.1560710Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1561326Z | |
2021-07-11T00:40:32.1561965Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1562442Z | |
2021-07-11T00:40:32.1562908Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1563604Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq\\data.db' | |
2021-07-11T00:40:32.1564889Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E6A47FC0>) | |
2021-07-11T00:40:32.1565766Z | |
2021-07-11T00:40:32.1566242Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1566883Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1567540Z def resetperms(path): | |
2021-07-11T00:40:32.1567984Z try: | |
2021-07-11T00:40:32.1568460Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1568999Z except AttributeError: | |
2021-07-11T00:40:32.1569519Z pass | |
2021-07-11T00:40:32.1569954Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1570392Z | |
2021-07-11T00:40:32.1570735Z try: | |
2021-07-11T00:40:32.1571203Z if path != name: | |
2021-07-11T00:40:32.1571767Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1572396Z resetperms(path) | |
2021-07-11T00:40:32.1572846Z | |
2021-07-11T00:40:32.1573186Z try: | |
2021-07-11T00:40:32.1573640Z > _os.unlink(path) | |
2021-07-11T00:40:32.1574716Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq\\data.db' | |
2021-07-11T00:40:32.1575619Z | |
2021-07-11T00:40:32.1576316Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1576870Z | |
2021-07-11T00:40:32.1577511Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1578025Z | |
2021-07-11T00:40:32.1578412Z @pytest.fixture | |
2021-07-11T00:40:32.1578933Z def canned_write_client(): | |
2021-07-11T00:40:32.1579417Z with make_app_client( | |
2021-07-11T00:40:32.1580073Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1580663Z metadata={ | |
2021-07-11T00:40:32.1581170Z "databases": { | |
2021-07-11T00:40:32.1581647Z "data": { | |
2021-07-11T00:40:32.1582073Z "queries": { | |
2021-07-11T00:40:32.1582738Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1583262Z "add_name": { | |
2021-07-11T00:40:32.1583867Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1584432Z "write": True, | |
2021-07-11T00:40:32.1585066Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1585589Z }, | |
2021-07-11T00:40:32.1586086Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1586765Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1587368Z "write": True, | |
2021-07-11T00:40:32.1588017Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1588569Z }, | |
2021-07-11T00:40:32.1589038Z "delete_name": { | |
2021-07-11T00:40:32.1589611Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1590212Z "write": True, | |
2021-07-11T00:40:32.1590979Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1591536Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1592001Z }, | |
2021-07-11T00:40:32.1592430Z "update_name": { | |
2021-07-11T00:40:32.1593074Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1593729Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1594292Z "write": True, | |
2021-07-11T00:40:32.1594708Z }, | |
2021-07-11T00:40:32.1595117Z } | |
2021-07-11T00:40:32.1595516Z } | |
2021-07-11T00:40:32.1595861Z } | |
2021-07-11T00:40:32.1596244Z }, | |
2021-07-11T00:40:32.1596611Z ) as client: | |
2021-07-11T00:40:32.1597044Z > yield client | |
2021-07-11T00:40:32.1597300Z | |
2021-07-11T00:40:32.1597905Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1598560Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1599246Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1599966Z next(self.gen) | |
2021-07-11T00:40:32.1600615Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1601380Z yield TestClient(ds) | |
2021-07-11T00:40:32.1602075Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1602800Z self.cleanup() | |
2021-07-11T00:40:32.1603491Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1604245Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1604996Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1605768Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1606565Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1607293Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1608092Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1608875Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1609702Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1610380Z cls._rmtree(path) | |
2021-07-11T00:40:32.1611280Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1612117Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1612873Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1613640Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1614401Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1615217Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1615738Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1616040Z | |
2021-07-11T00:40:32.1616659Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq\\data.db' | |
2021-07-11T00:40:32.1617592Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7F18A60> | |
2021-07-11T00:40:32.1618184Z | |
2021-07-11T00:40:32.1618672Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1619121Z try: | |
2021-07-11T00:40:32.1619619Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1620616Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiea9y6nq\\data.db' | |
2021-07-11T00:40:32.1621413Z | |
2021-07-11T00:40:32.1622148Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1623240Z _ ERROR at teardown of test_json_response[None-name=NameGoesHere&_json=1-None] _ | |
2021-07-11T00:40:32.1624281Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1624826Z | |
2021-07-11T00:40:32.1625352Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip' | |
2021-07-11T00:40:32.1626305Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCFEFEE0> | |
2021-07-11T00:40:32.1626908Z | |
2021-07-11T00:40:32.1627352Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1627878Z try: | |
2021-07-11T00:40:32.1628362Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1628968Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1629463Z except OSError: | |
2021-07-11T00:40:32.1630065Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1630597Z entries = [] | |
2021-07-11T00:40:32.1631128Z for entry in entries: | |
2021-07-11T00:40:32.1631678Z fullname = entry.path | |
2021-07-11T00:40:32.1632188Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1632667Z try: | |
2021-07-11T00:40:32.1633109Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1633741Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1634402Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1635070Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1635738Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1636372Z except OSError: | |
2021-07-11T00:40:32.1637045Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1637641Z continue | |
2021-07-11T00:40:32.1638202Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1638695Z else: | |
2021-07-11T00:40:32.1639109Z try: | |
2021-07-11T00:40:32.1639539Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1640669Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip\\data.db' | |
2021-07-11T00:40:32.1641581Z | |
2021-07-11T00:40:32.1642241Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1642814Z | |
2021-07-11T00:40:32.1643456Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1643929Z | |
2021-07-11T00:40:32.1644396Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1645117Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip\\data.db' | |
2021-07-11T00:40:32.1646339Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCF18D80>) | |
2021-07-11T00:40:32.1647233Z | |
2021-07-11T00:40:32.1647716Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1649033Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1649696Z def resetperms(path): | |
2021-07-11T00:40:32.1650138Z try: | |
2021-07-11T00:40:32.1650613Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1651189Z except AttributeError: | |
2021-07-11T00:40:32.1651711Z pass | |
2021-07-11T00:40:32.1652142Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1652577Z | |
2021-07-11T00:40:32.1652918Z try: | |
2021-07-11T00:40:32.1653360Z if path != name: | |
2021-07-11T00:40:32.1653961Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1654548Z resetperms(path) | |
2021-07-11T00:40:32.1654991Z | |
2021-07-11T00:40:32.1655333Z try: | |
2021-07-11T00:40:32.1655784Z > _os.unlink(path) | |
2021-07-11T00:40:32.1656948Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip\\data.db' | |
2021-07-11T00:40:32.1657904Z | |
2021-07-11T00:40:32.1658638Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1659192Z | |
2021-07-11T00:40:32.1659834Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1660353Z | |
2021-07-11T00:40:32.1660748Z @pytest.fixture | |
2021-07-11T00:40:32.1661310Z def canned_write_client(): | |
2021-07-11T00:40:32.1661794Z with make_app_client( | |
2021-07-11T00:40:32.1662430Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1663032Z metadata={ | |
2021-07-11T00:40:32.1663465Z "databases": { | |
2021-07-11T00:40:32.1663920Z "data": { | |
2021-07-11T00:40:32.1664336Z "queries": { | |
2021-07-11T00:40:32.1664915Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1666613Z "add_name": { | |
2021-07-11T00:40:32.1667215Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1667778Z "write": True, | |
2021-07-11T00:40:32.1668386Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1668961Z }, | |
2021-07-11T00:40:32.1669413Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1670100Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1670708Z "write": True, | |
2021-07-11T00:40:32.1672239Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1672800Z }, | |
2021-07-11T00:40:32.1673277Z "delete_name": { | |
2021-07-11T00:40:32.1673866Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1674510Z "write": True, | |
2021-07-11T00:40:32.1675107Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1675666Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1676162Z }, | |
2021-07-11T00:40:32.1676586Z "update_name": { | |
2021-07-11T00:40:32.1677224Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1677877Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1678522Z "write": True, | |
2021-07-11T00:40:32.1678981Z }, | |
2021-07-11T00:40:32.1679336Z } | |
2021-07-11T00:40:32.1679737Z } | |
2021-07-11T00:40:32.1680087Z } | |
2021-07-11T00:40:32.1680473Z }, | |
2021-07-11T00:40:32.1680883Z ) as client: | |
2021-07-11T00:40:32.1681332Z > yield client | |
2021-07-11T00:40:32.1681628Z | |
2021-07-11T00:40:32.1682181Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1682840Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1683524Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1684234Z next(self.gen) | |
2021-07-11T00:40:32.1684869Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1685567Z yield TestClient(ds) | |
2021-07-11T00:40:32.1686268Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1687025Z self.cleanup() | |
2021-07-11T00:40:32.1687765Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1688475Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1689365Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1690751Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1691594Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1692319Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1693146Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1693946Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1694766Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1695475Z cls._rmtree(path) | |
2021-07-11T00:40:32.1696146Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1696968Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1697716Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1698477Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1699237Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1700060Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1700599Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1700936Z | |
2021-07-11T00:40:32.1701536Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip\\data.db' | |
2021-07-11T00:40:32.1702476Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCFDCE50> | |
2021-07-11T00:40:32.1703081Z | |
2021-07-11T00:40:32.1703569Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1704032Z try: | |
2021-07-11T00:40:32.1704549Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1705518Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg_uivyip\\data.db' | |
2021-07-11T00:40:32.1706260Z | |
2021-07-11T00:40:32.1706999Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1707913Z _________ ERROR at teardown of test_insert_with_cookies_requires_csrf _________ | |
2021-07-11T00:40:32.1708808Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1709351Z | |
2021-07-11T00:40:32.1709876Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf' | |
2021-07-11T00:40:32.1710833Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7EF9CA0> | |
2021-07-11T00:40:32.1711419Z | |
2021-07-11T00:40:32.1711853Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1712323Z try: | |
2021-07-11T00:40:32.1712786Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1713380Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1713865Z except OSError: | |
2021-07-11T00:40:32.1714467Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1715037Z entries = [] | |
2021-07-11T00:40:32.1715488Z for entry in entries: | |
2021-07-11T00:40:32.1716018Z fullname = entry.path | |
2021-07-11T00:40:32.1716528Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1716999Z try: | |
2021-07-11T00:40:32.1717438Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1718076Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1718741Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1719423Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1720147Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1720756Z except OSError: | |
2021-07-11T00:40:32.1721462Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1722052Z continue | |
2021-07-11T00:40:32.1722618Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1723198Z else: | |
2021-07-11T00:40:32.1723689Z try: | |
2021-07-11T00:40:32.1724119Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1725267Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf\\fixtures.db' | |
2021-07-11T00:40:32.1726178Z | |
2021-07-11T00:40:32.1726844Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1727426Z | |
2021-07-11T00:40:32.1728072Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1728589Z | |
2021-07-11T00:40:32.1729014Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1729758Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf\\fixtures.db' | |
2021-07-11T00:40:32.1731077Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E803F480>) | |
2021-07-11T00:40:32.1731963Z | |
2021-07-11T00:40:32.1732446Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1733090Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1733746Z def resetperms(path): | |
2021-07-11T00:40:32.1734233Z try: | |
2021-07-11T00:40:32.1734668Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1735252Z except AttributeError: | |
2021-07-11T00:40:32.1735742Z pass | |
2021-07-11T00:40:32.1736217Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1736610Z | |
2021-07-11T00:40:32.1736998Z try: | |
2021-07-11T00:40:32.1737390Z if path != name: | |
2021-07-11T00:40:32.1738009Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1738593Z resetperms(path) | |
2021-07-11T00:40:32.1739045Z | |
2021-07-11T00:40:32.1739392Z try: | |
2021-07-11T00:40:32.1739847Z > _os.unlink(path) | |
2021-07-11T00:40:32.1741028Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf\\fixtures.db' | |
2021-07-11T00:40:32.1741925Z | |
2021-07-11T00:40:32.1742597Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1743190Z | |
2021-07-11T00:40:32.1743835Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1744307Z | |
2021-07-11T00:40:32.1744749Z @pytest.fixture | |
2021-07-11T00:40:32.1745242Z def canned_write_client(): | |
2021-07-11T00:40:32.1745742Z with make_app_client( | |
2021-07-11T00:40:32.1746363Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1746984Z metadata={ | |
2021-07-11T00:40:32.1747451Z "databases": { | |
2021-07-11T00:40:32.1747874Z "data": { | |
2021-07-11T00:40:32.1748316Z "queries": { | |
2021-07-11T00:40:32.1748858Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1749795Z "add_name": { | |
2021-07-11T00:40:32.1751236Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1751890Z "write": True, | |
2021-07-11T00:40:32.1752484Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1753367Z }, | |
2021-07-11T00:40:32.1753851Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1754469Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1755076Z "write": True, | |
2021-07-11T00:40:32.1755670Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1756362Z }, | |
2021-07-11T00:40:32.1756829Z "delete_name": { | |
2021-07-11T00:40:32.1757440Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1758060Z "write": True, | |
2021-07-11T00:40:32.1758623Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1759302Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1759730Z }, | |
2021-07-11T00:40:32.1760251Z "update_name": { | |
2021-07-11T00:40:32.1760980Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1761667Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1762243Z "write": True, | |
2021-07-11T00:40:32.1762667Z }, | |
2021-07-11T00:40:32.1763151Z } | |
2021-07-11T00:40:32.1763535Z } | |
2021-07-11T00:40:32.1763929Z } | |
2021-07-11T00:40:32.1764275Z }, | |
2021-07-11T00:40:32.1764703Z ) as client: | |
2021-07-11T00:40:32.1765191Z > yield client | |
2021-07-11T00:40:32.1765447Z | |
2021-07-11T00:40:32.1807345Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1807988Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1808661Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1809325Z next(self.gen) | |
2021-07-11T00:40:32.1809954Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1810586Z yield TestClient(ds) | |
2021-07-11T00:40:32.1811330Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1811977Z self.cleanup() | |
2021-07-11T00:40:32.1812679Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1814126Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1814854Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1815606Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1816336Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1817047Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1817783Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1818563Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1819322Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1819984Z cls._rmtree(path) | |
2021-07-11T00:40:32.1820628Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1821427Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1822159Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1822876Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1823616Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1824362Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1824886Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1825163Z | |
2021-07-11T00:40:32.1825770Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf\\fixtures.db' | |
2021-07-11T00:40:32.1826676Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E6548670> | |
2021-07-11T00:40:32.1827219Z | |
2021-07-11T00:40:32.1827640Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1828084Z try: | |
2021-07-11T00:40:32.1828518Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1829620Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpq_d06vmf\\fixtures.db' | |
2021-07-11T00:40:32.1830426Z | |
2021-07-11T00:40:32.1831125Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1832058Z _____ ERROR at teardown of test_canned_query_permissions_on_database_page _____ | |
2021-07-11T00:40:32.1832920Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1833434Z | |
2021-07-11T00:40:32.1833974Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph' | |
2021-07-11T00:40:32.1834853Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB4C6E50> | |
2021-07-11T00:40:32.1835421Z | |
2021-07-11T00:40:32.1835852Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1836283Z try: | |
2021-07-11T00:40:32.1836737Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1837254Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1837708Z except OSError: | |
2021-07-11T00:40:32.1838233Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1838746Z entries = [] | |
2021-07-11T00:40:32.1839166Z for entry in entries: | |
2021-07-11T00:40:32.1839651Z fullname = entry.path | |
2021-07-11T00:40:32.1840129Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1841170Z try: | |
2021-07-11T00:40:32.1841601Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1842164Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1842813Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1843421Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1844081Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1844646Z except OSError: | |
2021-07-11T00:40:32.1845262Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1845849Z continue | |
2021-07-11T00:40:32.1848862Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1849364Z else: | |
2021-07-11T00:40:32.1849707Z try: | |
2021-07-11T00:40:32.1850124Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1852155Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph\\data.db' | |
2021-07-11T00:40:32.1853069Z | |
2021-07-11T00:40:32.1853731Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1854288Z | |
2021-07-11T00:40:32.1854863Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1855349Z | |
2021-07-11T00:40:32.1855762Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1856443Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph\\data.db' | |
2021-07-11T00:40:32.1857683Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB832E80>) | |
2021-07-11T00:40:32.1858541Z | |
2021-07-11T00:40:32.1858956Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1860253Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1860875Z def resetperms(path): | |
2021-07-11T00:40:32.1861304Z try: | |
2021-07-11T00:40:32.1861709Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1862252Z except AttributeError: | |
2021-07-11T00:40:32.1862706Z pass | |
2021-07-11T00:40:32.1863115Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1863485Z | |
2021-07-11T00:40:32.1863793Z try: | |
2021-07-11T00:40:32.1864177Z if path != name: | |
2021-07-11T00:40:32.1864708Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1865280Z resetperms(path) | |
2021-07-11T00:40:32.1865843Z | |
2021-07-11T00:40:32.1866176Z try: | |
2021-07-11T00:40:32.1866558Z > _os.unlink(path) | |
2021-07-11T00:40:32.1867617Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph\\data.db' | |
2021-07-11T00:40:32.1868496Z | |
2021-07-11T00:40:32.1869152Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1869725Z | |
2021-07-11T00:40:32.1870310Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1870830Z | |
2021-07-11T00:40:32.1871200Z @pytest.fixture | |
2021-07-11T00:40:32.1871672Z def canned_write_client(): | |
2021-07-11T00:40:32.1872128Z with make_app_client( | |
2021-07-11T00:40:32.1872735Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1873291Z metadata={ | |
2021-07-11T00:40:32.1873711Z "databases": { | |
2021-07-11T00:40:32.1874100Z "data": { | |
2021-07-11T00:40:32.1874492Z "queries": { | |
2021-07-11T00:40:32.1875014Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1875520Z "add_name": { | |
2021-07-11T00:40:32.1876038Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1876576Z "write": True, | |
2021-07-11T00:40:32.1877134Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1877626Z }, | |
2021-07-11T00:40:32.1878619Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1879243Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1879834Z "write": True, | |
2021-07-11T00:40:32.1880419Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1880988Z }, | |
2021-07-11T00:40:32.1881386Z "delete_name": { | |
2021-07-11T00:40:32.1881946Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1882479Z "write": True, | |
2021-07-11T00:40:32.1883015Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1883556Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1883948Z }, | |
2021-07-11T00:40:32.1884353Z "update_name": { | |
2021-07-11T00:40:32.1884921Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1885547Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1886039Z "write": True, | |
2021-07-11T00:40:32.1886425Z }, | |
2021-07-11T00:40:32.1886757Z } | |
2021-07-11T00:40:32.1887093Z } | |
2021-07-11T00:40:32.1887408Z } | |
2021-07-11T00:40:32.1887730Z }, | |
2021-07-11T00:40:32.1888085Z ) as client: | |
2021-07-11T00:40:32.1888461Z > yield client | |
2021-07-11T00:40:32.1888722Z | |
2021-07-11T00:40:32.1889243Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1889835Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1890500Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1891281Z next(self.gen) | |
2021-07-11T00:40:32.1891901Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1892533Z yield TestClient(ds) | |
2021-07-11T00:40:32.1893212Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1893979Z self.cleanup() | |
2021-07-11T00:40:32.1894661Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1895340Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1896011Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1896745Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1897455Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1898143Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1898860Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1899625Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1900482Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1901117Z cls._rmtree(path) | |
2021-07-11T00:40:32.1901711Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1902407Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1903082Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1904267Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1904951Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1905641Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1906122Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1906377Z | |
2021-07-11T00:40:32.1906900Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph\\data.db' | |
2021-07-11T00:40:32.1907764Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCFEFA60> | |
2021-07-11T00:40:32.1908294Z | |
2021-07-11T00:40:32.1908679Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1909088Z try: | |
2021-07-11T00:40:32.1909487Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1910392Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwpoxllph\\data.db' | |
2021-07-11T00:40:32.1911113Z | |
2021-07-11T00:40:32.1911717Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.1912514Z ______________ ERROR at teardown of test_custom_success_message _______________ | |
2021-07-11T00:40:32.1913250Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.1913721Z | |
2021-07-11T00:40:32.1914215Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd' | |
2021-07-11T00:40:32.1915025Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7F6FAF0> | |
2021-07-11T00:40:32.1915556Z | |
2021-07-11T00:40:32.1915953Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.1916347Z try: | |
2021-07-11T00:40:32.1916769Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.1917261Z entries = list(scandir_it) | |
2021-07-11T00:40:32.1917700Z except OSError: | |
2021-07-11T00:40:32.1918192Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1918666Z entries = [] | |
2021-07-11T00:40:32.1919067Z for entry in entries: | |
2021-07-11T00:40:32.1919505Z fullname = entry.path | |
2021-07-11T00:40:32.1919957Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.1920520Z try: | |
2021-07-11T00:40:32.1920972Z if entry.is_symlink(): | |
2021-07-11T00:40:32.1921523Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.1922163Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.1922764Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.1923417Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.1923979Z except OSError: | |
2021-07-11T00:40:32.1924732Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1925315Z continue | |
2021-07-11T00:40:32.1925803Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.1926279Z else: | |
2021-07-11T00:40:32.1926621Z try: | |
2021-07-11T00:40:32.1927033Z > os.unlink(fullname) | |
2021-07-11T00:40:32.1928100Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd\\data.db' | |
2021-07-11T00:40:32.1928967Z | |
2021-07-11T00:40:32.1929651Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.1930199Z | |
2021-07-11T00:40:32.1930767Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1931431Z | |
2021-07-11T00:40:32.1931846Z func = <built-in function unlink> | |
2021-07-11T00:40:32.1932519Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd\\data.db' | |
2021-07-11T00:40:32.1934341Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E838CE40>) | |
2021-07-11T00:40:32.1935185Z | |
2021-07-11T00:40:32.1935591Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.1936196Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.1936776Z def resetperms(path): | |
2021-07-11T00:40:32.1937198Z try: | |
2021-07-11T00:40:32.1937600Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.1938117Z except AttributeError: | |
2021-07-11T00:40:32.1938584Z pass | |
2021-07-11T00:40:32.1938982Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.1939356Z | |
2021-07-11T00:40:32.1939663Z try: | |
2021-07-11T00:40:32.1940041Z if path != name: | |
2021-07-11T00:40:32.1940579Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.1941183Z resetperms(path) | |
2021-07-11T00:40:32.1941555Z | |
2021-07-11T00:40:32.1941879Z try: | |
2021-07-11T00:40:32.1942259Z > _os.unlink(path) | |
2021-07-11T00:40:32.1943308Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd\\data.db' | |
2021-07-11T00:40:32.1944165Z | |
2021-07-11T00:40:32.1944821Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.1945385Z | |
2021-07-11T00:40:32.1945967Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.1946453Z | |
2021-07-11T00:40:32.1946816Z @pytest.fixture | |
2021-07-11T00:40:32.1947283Z def canned_write_client(): | |
2021-07-11T00:40:32.1947734Z with make_app_client( | |
2021-07-11T00:40:32.1948332Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.1948883Z metadata={ | |
2021-07-11T00:40:32.1949285Z "databases": { | |
2021-07-11T00:40:32.1949657Z "data": { | |
2021-07-11T00:40:32.1950054Z "queries": { | |
2021-07-11T00:40:32.1950575Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.1951274Z "add_name": { | |
2021-07-11T00:40:32.1951813Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.1952345Z "write": True, | |
2021-07-11T00:40:32.1953841Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.1955502Z }, | |
2021-07-11T00:40:32.1958045Z "add_name_specify_id": { | |
2021-07-11T00:40:32.1962951Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.1965047Z "write": True, | |
2021-07-11T00:40:32.1973379Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.1973912Z }, | |
2021-07-11T00:40:32.1974323Z "delete_name": { | |
2021-07-11T00:40:32.1974871Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.1975417Z "write": True, | |
2021-07-11T00:40:32.1975952Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.1976486Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.1976884Z }, | |
2021-07-11T00:40:32.1977287Z "update_name": { | |
2021-07-11T00:40:32.1977861Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.1978504Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.1979008Z "write": True, | |
2021-07-11T00:40:32.1979387Z }, | |
2021-07-11T00:40:32.1979732Z } | |
2021-07-11T00:40:32.1980050Z } | |
2021-07-11T00:40:32.1980364Z } | |
2021-07-11T00:40:32.1980664Z }, | |
2021-07-11T00:40:32.1981112Z ) as client: | |
2021-07-11T00:40:32.1981482Z > yield client | |
2021-07-11T00:40:32.1981742Z | |
2021-07-11T00:40:32.1982268Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.1982850Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1983516Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.1984167Z next(self.gen) | |
2021-07-11T00:40:32.1984789Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.1985426Z yield TestClient(ds) | |
2021-07-11T00:40:32.1986117Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.1986774Z self.cleanup() | |
2021-07-11T00:40:32.1987436Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.1988123Z self._rmtree(self.name) | |
2021-07-11T00:40:32.1988799Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1989561Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1990285Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1991158Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1991897Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.1992674Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.1993438Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.1994077Z cls._rmtree(path) | |
2021-07-11T00:40:32.1994826Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.1995731Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.1996462Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.1997155Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.1997901Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.1998646Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.1999165Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.1999438Z | |
2021-07-11T00:40:32.1999994Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd\\data.db' | |
2021-07-11T00:40:32.2000965Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7FECEE0> | |
2021-07-11T00:40:32.2001541Z | |
2021-07-11T00:40:32.2001952Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2002600Z try: | |
2021-07-11T00:40:32.2003040Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2004011Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3pra3smd\\data.db' | |
2021-07-11T00:40:32.2004747Z | |
2021-07-11T00:40:32.2005410Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2006248Z ___________________ ERROR at teardown of test_custom_params ___________________ | |
2021-07-11T00:40:32.2007029Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2007528Z | |
2021-07-11T00:40:32.2008055Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o' | |
2021-07-11T00:40:32.2008926Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E94838B0> | |
2021-07-11T00:40:32.2009575Z | |
2021-07-11T00:40:32.2010000Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2010434Z try: | |
2021-07-11T00:40:32.2010919Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2011459Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2011916Z except OSError: | |
2021-07-11T00:40:32.2012460Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2012962Z entries = [] | |
2021-07-11T00:40:32.2013391Z for entry in entries: | |
2021-07-11T00:40:32.2013861Z fullname = entry.path | |
2021-07-11T00:40:32.2014352Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2014753Z try: | |
2021-07-11T00:40:32.2015177Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2015736Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2017080Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2017706Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2018357Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2018946Z except OSError: | |
2021-07-11T00:40:32.2019545Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2020123Z continue | |
2021-07-11T00:40:32.2020613Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2021124Z else: | |
2021-07-11T00:40:32.2021467Z try: | |
2021-07-11T00:40:32.2021881Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2022951Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o\\data.db' | |
2021-07-11T00:40:32.2023796Z | |
2021-07-11T00:40:32.2024444Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2027673Z | |
2021-07-11T00:40:32.2028305Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2028799Z | |
2021-07-11T00:40:32.2029738Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2030410Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o\\data.db' | |
2021-07-11T00:40:32.2031671Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E845E3C0>) | |
2021-07-11T00:40:32.2032524Z | |
2021-07-11T00:40:32.2032935Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2033559Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2034157Z def resetperms(path): | |
2021-07-11T00:40:32.2034565Z try: | |
2021-07-11T00:40:32.2034982Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2035492Z except AttributeError: | |
2021-07-11T00:40:32.2035961Z pass | |
2021-07-11T00:40:32.2036362Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2036739Z | |
2021-07-11T00:40:32.2037250Z try: | |
2021-07-11T00:40:32.2037638Z if path != name: | |
2021-07-11T00:40:32.2038172Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2038743Z resetperms(path) | |
2021-07-11T00:40:32.2039131Z | |
2021-07-11T00:40:32.2039443Z try: | |
2021-07-11T00:40:32.2039837Z > _os.unlink(path) | |
2021-07-11T00:40:32.2040897Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o\\data.db' | |
2021-07-11T00:40:32.2042732Z | |
2021-07-11T00:40:32.2043422Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2043992Z | |
2021-07-11T00:40:32.2044562Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2045054Z | |
2021-07-11T00:40:32.2045422Z @pytest.fixture | |
2021-07-11T00:40:32.2045904Z def canned_write_client(): | |
2021-07-11T00:40:32.2046375Z with make_app_client( | |
2021-07-11T00:40:32.2046970Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.2047563Z metadata={ | |
2021-07-11T00:40:32.2047962Z "databases": { | |
2021-07-11T00:40:32.2048359Z "data": { | |
2021-07-11T00:40:32.2048746Z "queries": { | |
2021-07-11T00:40:32.2049270Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.2049767Z "add_name": { | |
2021-07-11T00:40:32.2051068Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.2051607Z "write": True, | |
2021-07-11T00:40:32.2052182Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.2052698Z }, | |
2021-07-11T00:40:32.2053122Z "add_name_specify_id": { | |
2021-07-11T00:40:32.2053748Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.2054328Z "write": True, | |
2021-07-11T00:40:32.2054921Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.2055776Z }, | |
2021-07-11T00:40:32.2056522Z "delete_name": { | |
2021-07-11T00:40:32.2057091Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.2057625Z "write": True, | |
2021-07-11T00:40:32.2058170Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.2058699Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.2059106Z }, | |
2021-07-11T00:40:32.2059506Z "update_name": { | |
2021-07-11T00:40:32.2060100Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.2060790Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.2061317Z "write": True, | |
2021-07-11T00:40:32.2062332Z }, | |
2021-07-11T00:40:32.2062670Z } | |
2021-07-11T00:40:32.2063016Z } | |
2021-07-11T00:40:32.2063336Z } | |
2021-07-11T00:40:32.2063660Z }, | |
2021-07-11T00:40:32.2064001Z ) as client: | |
2021-07-11T00:40:32.2064394Z > yield client | |
2021-07-11T00:40:32.2064665Z | |
2021-07-11T00:40:32.2065191Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.2065799Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2066459Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2067121Z next(self.gen) | |
2021-07-11T00:40:32.2068480Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2069150Z yield TestClient(ds) | |
2021-07-11T00:40:32.2069840Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2070489Z self.cleanup() | |
2021-07-11T00:40:32.2071213Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2071886Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2073188Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2073935Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2074672Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2075364Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2076113Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2076873Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2077633Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2078281Z cls._rmtree(path) | |
2021-07-11T00:40:32.2078927Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2079685Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2080398Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2081135Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2081864Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2082622Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2083145Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2083979Z | |
2021-07-11T00:40:32.2084556Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o\\data.db' | |
2021-07-11T00:40:32.2085471Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E9483B80> | |
2021-07-11T00:40:32.2086019Z | |
2021-07-11T00:40:32.2086450Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2086883Z try: | |
2021-07-11T00:40:32.2087335Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2088299Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdl9rxu_o\\data.db' | |
2021-07-11T00:40:32.2089008Z | |
2021-07-11T00:40:32.2089688Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2090524Z __________________ ERROR at teardown of test_json_post_body ___________________ | |
2021-07-11T00:40:32.2091625Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2092144Z | |
2021-07-11T00:40:32.2092686Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln' | |
2021-07-11T00:40:32.2093568Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E81E94C0> | |
2021-07-11T00:40:32.2094129Z | |
2021-07-11T00:40:32.2094560Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2095644Z try: | |
2021-07-11T00:40:32.2096099Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2096620Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2097088Z except OSError: | |
2021-07-11T00:40:32.2097619Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2098128Z entries = [] | |
2021-07-11T00:40:32.2098545Z for entry in entries: | |
2021-07-11T00:40:32.2099030Z fullname = entry.path | |
2021-07-11T00:40:32.2099511Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2099919Z try: | |
2021-07-11T00:40:32.2100330Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2100931Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2101577Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2102349Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2103013Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2103575Z except OSError: | |
2021-07-11T00:40:32.2104187Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2104753Z continue | |
2021-07-11T00:40:32.2105827Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2106299Z else: | |
2021-07-11T00:40:32.2106654Z try: | |
2021-07-11T00:40:32.2107073Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2108144Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln\\data.db' | |
2021-07-11T00:40:32.2109012Z | |
2021-07-11T00:40:32.2109663Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2110217Z | |
2021-07-11T00:40:32.2110817Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2111306Z | |
2021-07-11T00:40:32.2111702Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2112388Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln\\data.db' | |
2021-07-11T00:40:32.2113612Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7E0FA00>) | |
2021-07-11T00:40:32.2114458Z | |
2021-07-11T00:40:32.2114877Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2115493Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2116625Z def resetperms(path): | |
2021-07-11T00:40:32.2117050Z try: | |
2021-07-11T00:40:32.2117454Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2117977Z except AttributeError: | |
2021-07-11T00:40:32.2118434Z pass | |
2021-07-11T00:40:32.2118853Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2119215Z | |
2021-07-11T00:40:32.2119541Z try: | |
2021-07-11T00:40:32.2119907Z if path != name: | |
2021-07-11T00:40:32.2120450Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2121055Z resetperms(path) | |
2021-07-11T00:40:32.2121431Z | |
2021-07-11T00:40:32.2121757Z try: | |
2021-07-11T00:40:32.2122134Z > _os.unlink(path) | |
2021-07-11T00:40:32.2123180Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln\\data.db' | |
2021-07-11T00:40:32.2124054Z | |
2021-07-11T00:40:32.2124705Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2125276Z | |
2021-07-11T00:40:32.2125864Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2126353Z | |
2021-07-11T00:40:32.2127279Z @pytest.fixture | |
2021-07-11T00:40:32.2127766Z def canned_write_client(): | |
2021-07-11T00:40:32.2128218Z with make_app_client( | |
2021-07-11T00:40:32.2128821Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.2129375Z metadata={ | |
2021-07-11T00:40:32.2129787Z "databases": { | |
2021-07-11T00:40:32.2130171Z "data": { | |
2021-07-11T00:40:32.2130566Z "queries": { | |
2021-07-11T00:40:32.2131104Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.2131603Z "add_name": { | |
2021-07-11T00:40:32.2132138Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.2132674Z "write": True, | |
2021-07-11T00:40:32.2133321Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.2133878Z }, | |
2021-07-11T00:40:32.2134317Z "add_name_specify_id": { | |
2021-07-11T00:40:32.2134922Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.2135512Z "write": True, | |
2021-07-11T00:40:32.2136108Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.2136628Z }, | |
2021-07-11T00:40:32.2137043Z "delete_name": { | |
2021-07-11T00:40:32.2138154Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.2138703Z "write": True, | |
2021-07-11T00:40:32.2139232Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.2139781Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.2140177Z }, | |
2021-07-11T00:40:32.2140586Z "update_name": { | |
2021-07-11T00:40:32.2141207Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.2141828Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.2142334Z "write": True, | |
2021-07-11T00:40:32.2142719Z }, | |
2021-07-11T00:40:32.2143069Z } | |
2021-07-11T00:40:32.2143399Z } | |
2021-07-11T00:40:32.2143731Z } | |
2021-07-11T00:40:32.2144039Z }, | |
2021-07-11T00:40:32.2144389Z ) as client: | |
2021-07-11T00:40:32.2144768Z > yield client | |
2021-07-11T00:40:32.2145035Z | |
2021-07-11T00:40:32.2145575Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.2146153Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2146821Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2147479Z next(self.gen) | |
2021-07-11T00:40:32.2148651Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2149304Z yield TestClient(ds) | |
2021-07-11T00:40:32.2149974Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2150634Z self.cleanup() | |
2021-07-11T00:40:32.2151332Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2152025Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2152702Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2153454Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2154178Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2154888Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2155634Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2156432Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2158297Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2159629Z cls._rmtree(path) | |
2021-07-11T00:40:32.2160294Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2161073Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2161806Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2162514Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2163241Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2163999Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2164511Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2164788Z | |
2021-07-11T00:40:32.2165476Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln\\data.db' | |
2021-07-11T00:40:32.2166431Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E9481040> | |
2021-07-11T00:40:32.2166992Z | |
2021-07-11T00:40:32.2167420Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2167853Z try: | |
2021-07-11T00:40:32.2168299Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2169806Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnkhjipln\\data.db' | |
2021-07-11T00:40:32.2170552Z | |
2021-07-11T00:40:32.2171269Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2172283Z __ ERROR at teardown of test_json_response[headers1-name=NameGoesHere-None] ___ | |
2021-07-11T00:40:32.2173756Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2174287Z | |
2021-07-11T00:40:32.2174825Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod' | |
2021-07-11T00:40:32.2175711Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E80F4820> | |
2021-07-11T00:40:32.2176268Z | |
2021-07-11T00:40:32.2176685Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2177121Z try: | |
2021-07-11T00:40:32.2177564Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2178946Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2179414Z except OSError: | |
2021-07-11T00:40:32.2181493Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2182016Z entries = [] | |
2021-07-11T00:40:32.2182450Z for entry in entries: | |
2021-07-11T00:40:32.2182928Z fullname = entry.path | |
2021-07-11T00:40:32.2183421Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2183847Z try: | |
2021-07-11T00:40:32.2184262Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2184845Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2185482Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2186109Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2186750Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2187325Z except OSError: | |
2021-07-11T00:40:32.2187929Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2188503Z continue | |
2021-07-11T00:40:32.2189008Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2189475Z else: | |
2021-07-11T00:40:32.2189837Z try: | |
2021-07-11T00:40:32.2190241Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2192523Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod\\data.db' | |
2021-07-11T00:40:32.2193422Z | |
2021-07-11T00:40:32.2194063Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2194607Z | |
2021-07-11T00:40:32.2195195Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2195680Z | |
2021-07-11T00:40:32.2196079Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2196765Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod\\data.db' | |
2021-07-11T00:40:32.2197965Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E81896C0>) | |
2021-07-11T00:40:32.2198819Z | |
2021-07-11T00:40:32.2199244Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2199853Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2200453Z def resetperms(path): | |
2021-07-11T00:40:32.2200899Z try: | |
2021-07-11T00:40:32.2202020Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2202600Z except AttributeError: | |
2021-07-11T00:40:32.2203075Z pass | |
2021-07-11T00:40:32.2203495Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2203860Z | |
2021-07-11T00:40:32.2204188Z try: | |
2021-07-11T00:40:32.2204557Z if path != name: | |
2021-07-11T00:40:32.2205104Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2205663Z resetperms(path) | |
2021-07-11T00:40:32.2206052Z | |
2021-07-11T00:40:32.2206364Z try: | |
2021-07-11T00:40:32.2206889Z > _os.unlink(path) | |
2021-07-11T00:40:32.2207930Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod\\data.db' | |
2021-07-11T00:40:32.2208804Z | |
2021-07-11T00:40:32.2209480Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2210052Z | |
2021-07-11T00:40:32.2210623Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2211143Z | |
2021-07-11T00:40:32.2212096Z @pytest.fixture | |
2021-07-11T00:40:32.2212569Z def canned_write_client(): | |
2021-07-11T00:40:32.2213035Z with make_app_client( | |
2021-07-11T00:40:32.2213634Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.2214207Z metadata={ | |
2021-07-11T00:40:32.2214612Z "databases": { | |
2021-07-11T00:40:32.2215015Z "data": { | |
2021-07-11T00:40:32.2215417Z "queries": { | |
2021-07-11T00:40:32.2215921Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.2216435Z "add_name": { | |
2021-07-11T00:40:32.2216960Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.2217522Z "write": True, | |
2021-07-11T00:40:32.2218083Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.2218594Z }, | |
2021-07-11T00:40:32.2219016Z "add_name_specify_id": { | |
2021-07-11T00:40:32.2219641Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.2220229Z "write": True, | |
2021-07-11T00:40:32.2220839Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.2221375Z }, | |
2021-07-11T00:40:32.2221772Z "delete_name": { | |
2021-07-11T00:40:32.2222886Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.2223420Z "write": True, | |
2021-07-11T00:40:32.2223959Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.2224512Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.2224904Z }, | |
2021-07-11T00:40:32.2225311Z "update_name": { | |
2021-07-11T00:40:32.2225882Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.2226517Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.2227008Z "write": True, | |
2021-07-11T00:40:32.2227403Z }, | |
2021-07-11T00:40:32.2227744Z } | |
2021-07-11T00:40:32.2228083Z } | |
2021-07-11T00:40:32.2228414Z } | |
2021-07-11T00:40:32.2228725Z }, | |
2021-07-11T00:40:32.2229077Z ) as client: | |
2021-07-11T00:40:32.2229456Z > yield client | |
2021-07-11T00:40:32.2229720Z | |
2021-07-11T00:40:32.2230243Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.2231011Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2231693Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2232921Z next(self.gen) | |
2021-07-11T00:40:32.2233551Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2234189Z yield TestClient(ds) | |
2021-07-11T00:40:32.2234870Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2235511Z self.cleanup() | |
2021-07-11T00:40:32.2236187Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2236878Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2237621Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2238372Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2239094Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2239807Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2240540Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2241348Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2242110Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2243331Z cls._rmtree(path) | |
2021-07-11T00:40:32.2243992Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2244731Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2245471Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2246159Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2246897Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2247644Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2248169Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2248445Z | |
2021-07-11T00:40:32.2249002Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod\\data.db' | |
2021-07-11T00:40:32.2249918Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E80F4550> | |
2021-07-11T00:40:32.2250483Z | |
2021-07-11T00:40:32.2250930Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2251375Z try: | |
2021-07-11T00:40:32.2251809Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2252780Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpyh4gxyod\\data.db' | |
2021-07-11T00:40:32.2254139Z | |
2021-07-11T00:40:32.2254807Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2255785Z _ ERROR at teardown of test_json_response[None-{"name": "NameGoesHere", "_json": 1}-None] _ | |
2021-07-11T00:40:32.2256687Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2257211Z | |
2021-07-11T00:40:32.2257740Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig' | |
2021-07-11T00:40:32.2258606Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E81ADD30> | |
2021-07-11T00:40:32.2259850Z | |
2021-07-11T00:40:32.2260302Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2260736Z try: | |
2021-07-11T00:40:32.2261235Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2261762Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2262230Z except OSError: | |
2021-07-11T00:40:32.2262775Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2263274Z entries = [] | |
2021-07-11T00:40:32.2264356Z for entry in entries: | |
2021-07-11T00:40:32.2264835Z fullname = entry.path | |
2021-07-11T00:40:32.2265844Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2266258Z try: | |
2021-07-11T00:40:32.2267403Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2267967Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2268613Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2269222Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2269888Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2270474Z except OSError: | |
2021-07-11T00:40:32.2271124Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2271703Z continue | |
2021-07-11T00:40:32.2272196Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2272670Z else: | |
2021-07-11T00:40:32.2273009Z try: | |
2021-07-11T00:40:32.2273421Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2275141Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig\\data.db' | |
2021-07-11T00:40:32.2276022Z | |
2021-07-11T00:40:32.2276673Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2277226Z | |
2021-07-11T00:40:32.2277798Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2278289Z | |
2021-07-11T00:40:32.2278700Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2279359Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig\\data.db' | |
2021-07-11T00:40:32.2280574Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7BE2E00>) | |
2021-07-11T00:40:32.2281477Z | |
2021-07-11T00:40:32.2281889Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2282515Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2283101Z def resetperms(path): | |
2021-07-11T00:40:32.2283532Z try: | |
2021-07-11T00:40:32.2283952Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2284466Z except AttributeError: | |
2021-07-11T00:40:32.2285525Z pass | |
2021-07-11T00:40:32.2285931Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2286314Z | |
2021-07-11T00:40:32.2286633Z try: | |
2021-07-11T00:40:32.2287018Z if path != name: | |
2021-07-11T00:40:32.2287554Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2288128Z resetperms(path) | |
2021-07-11T00:40:32.2288506Z | |
2021-07-11T00:40:32.2288839Z try: | |
2021-07-11T00:40:32.2289221Z > _os.unlink(path) | |
2021-07-11T00:40:32.2290278Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig\\data.db' | |
2021-07-11T00:40:32.2291189Z | |
2021-07-11T00:40:32.2291869Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2292426Z | |
2021-07-11T00:40:32.2293014Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2293513Z | |
2021-07-11T00:40:32.2293877Z @pytest.fixture | |
2021-07-11T00:40:32.2294355Z def canned_write_client(): | |
2021-07-11T00:40:32.2294807Z with make_app_client( | |
2021-07-11T00:40:32.2296010Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.2296585Z metadata={ | |
2021-07-11T00:40:32.2296993Z "databases": { | |
2021-07-11T00:40:32.2297395Z "data": { | |
2021-07-11T00:40:32.2297783Z "queries": { | |
2021-07-11T00:40:32.2298304Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.2298798Z "add_name": { | |
2021-07-11T00:40:32.2299416Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.2300012Z "write": True, | |
2021-07-11T00:40:32.2300584Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.2301120Z }, | |
2021-07-11T00:40:32.2301553Z "add_name_specify_id": { | |
2021-07-11T00:40:32.2302176Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.2302752Z "write": True, | |
2021-07-11T00:40:32.2303348Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.2303873Z }, | |
2021-07-11T00:40:32.2304281Z "delete_name": { | |
2021-07-11T00:40:32.2304824Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.2305942Z "write": True, | |
2021-07-11T00:40:32.2306488Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.2307017Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.2307424Z }, | |
2021-07-11T00:40:32.2307821Z "update_name": { | |
2021-07-11T00:40:32.2308408Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.2309036Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.2309540Z "write": True, | |
2021-07-11T00:40:32.2309937Z }, | |
2021-07-11T00:40:32.2310268Z } | |
2021-07-11T00:40:32.2311145Z } | |
2021-07-11T00:40:32.2311503Z } | |
2021-07-11T00:40:32.2311833Z }, | |
2021-07-11T00:40:32.2312175Z ) as client: | |
2021-07-11T00:40:32.2312575Z > yield client | |
2021-07-11T00:40:32.2312845Z | |
2021-07-11T00:40:32.2313742Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.2314347Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2315002Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2315660Z next(self.gen) | |
2021-07-11T00:40:32.2316920Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2317572Z yield TestClient(ds) | |
2021-07-11T00:40:32.2318244Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2318906Z self.cleanup() | |
2021-07-11T00:40:32.2319582Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2320260Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2320993Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2321748Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2322488Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2323181Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2323919Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2324675Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2325438Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2326095Z cls._rmtree(path) | |
2021-07-11T00:40:32.2327310Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2328073Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2328791Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2329495Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2330221Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2331189Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2331700Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2331977Z | |
2021-07-11T00:40:32.2332542Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig\\data.db' | |
2021-07-11T00:40:32.2333446Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E801F3A0> | |
2021-07-11T00:40:32.2334009Z | |
2021-07-11T00:40:32.2334444Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2334870Z try: | |
2021-07-11T00:40:32.2335315Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2336259Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpub794sig\\data.db' | |
2021-07-11T00:40:32.2336993Z | |
2021-07-11T00:40:32.2338239Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2339131Z _____________ ERROR at teardown of test_canned_query_permissions ______________ | |
2021-07-11T00:40:32.2339951Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2340460Z | |
2021-07-11T00:40:32.2341018Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8' | |
2021-07-11T00:40:32.2341893Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E8386550> | |
2021-07-11T00:40:32.2342440Z | |
2021-07-11T00:40:32.2342851Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2343290Z try: | |
2021-07-11T00:40:32.2343728Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2344262Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2344742Z except OSError: | |
2021-07-11T00:40:32.2345273Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2346280Z entries = [] | |
2021-07-11T00:40:32.2346712Z for entry in entries: | |
2021-07-11T00:40:32.2347206Z fullname = entry.path | |
2021-07-11T00:40:32.2348359Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2348781Z try: | |
2021-07-11T00:40:32.2349194Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2349802Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2350438Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2351104Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2351768Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2352331Z except OSError: | |
2021-07-11T00:40:32.2352949Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2353515Z continue | |
2021-07-11T00:40:32.2354019Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2354481Z else: | |
2021-07-11T00:40:32.2354835Z try: | |
2021-07-11T00:40:32.2355236Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2356327Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8\\data.db' | |
2021-07-11T00:40:32.2357202Z | |
2021-07-11T00:40:32.2357844Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2358954Z | |
2021-07-11T00:40:32.2359542Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2360030Z | |
2021-07-11T00:40:32.2360835Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2363080Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8\\data.db' | |
2021-07-11T00:40:32.2364311Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E95AFA40>) | |
2021-07-11T00:40:32.2365173Z | |
2021-07-11T00:40:32.2365726Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2366411Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2366996Z def resetperms(path): | |
2021-07-11T00:40:32.2367424Z try: | |
2021-07-11T00:40:32.2367827Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2368351Z except AttributeError: | |
2021-07-11T00:40:32.2369461Z pass | |
2021-07-11T00:40:32.2369885Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2370248Z | |
2021-07-11T00:40:32.2370576Z try: | |
2021-07-11T00:40:32.2370986Z if path != name: | |
2021-07-11T00:40:32.2371534Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2372088Z resetperms(path) | |
2021-07-11T00:40:32.2372479Z | |
2021-07-11T00:40:32.2372802Z try: | |
2021-07-11T00:40:32.2373181Z > _os.unlink(path) | |
2021-07-11T00:40:32.2374244Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8\\data.db' | |
2021-07-11T00:40:32.2375128Z | |
2021-07-11T00:40:32.2375783Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2376350Z | |
2021-07-11T00:40:32.2376941Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2377419Z | |
2021-07-11T00:40:32.2377793Z @pytest.fixture | |
2021-07-11T00:40:32.2378252Z def canned_write_client(): | |
2021-07-11T00:40:32.2378720Z with make_app_client( | |
2021-07-11T00:40:32.2379888Z extra_databases={"data.db": "create table names (name text)"}, | |
2021-07-11T00:40:32.2380447Z metadata={ | |
2021-07-11T00:40:32.2380896Z "databases": { | |
2021-07-11T00:40:32.2381282Z "data": { | |
2021-07-11T00:40:32.2381680Z "queries": { | |
2021-07-11T00:40:32.2382188Z "canned_read": {"sql": "select * from names"}, | |
2021-07-11T00:40:32.2382705Z "add_name": { | |
2021-07-11T00:40:32.2383232Z "sql": "insert into names (name) values (:name)", | |
2021-07-11T00:40:32.2383779Z "write": True, | |
2021-07-11T00:40:32.2384358Z "on_success_redirect": "/data/add_name?success", | |
2021-07-11T00:40:32.2384854Z }, | |
2021-07-11T00:40:32.2385290Z "add_name_specify_id": { | |
2021-07-11T00:40:32.2385901Z "sql": "insert into names (rowid, name) values (:rowid, :name)", | |
2021-07-11T00:40:32.2386493Z "write": True, | |
2021-07-11T00:40:32.2387072Z "on_error_redirect": "/data/add_name_specify_id?error", | |
2021-07-11T00:40:32.2387607Z }, | |
2021-07-11T00:40:32.2388019Z "delete_name": { | |
2021-07-11T00:40:32.2388565Z "sql": "delete from names where rowid = :rowid", | |
2021-07-11T00:40:32.2389111Z "write": True, | |
2021-07-11T00:40:32.2389634Z "on_success_message": "Name deleted", | |
2021-07-11T00:40:32.2390780Z "allow": {"id": "root"}, | |
2021-07-11T00:40:32.2391176Z }, | |
2021-07-11T00:40:32.2391587Z "update_name": { | |
2021-07-11T00:40:32.2392161Z "sql": "update names set name = :name where rowid = :rowid", | |
2021-07-11T00:40:32.2392796Z "params": ["rowid", "name", "extra"], | |
2021-07-11T00:40:32.2393303Z "write": True, | |
2021-07-11T00:40:32.2393686Z }, | |
2021-07-11T00:40:32.2394037Z } | |
2021-07-11T00:40:32.2394367Z } | |
2021-07-11T00:40:32.2394695Z } | |
2021-07-11T00:40:32.2395149Z }, | |
2021-07-11T00:40:32.2395506Z ) as client: | |
2021-07-11T00:40:32.2395891Z > yield client | |
2021-07-11T00:40:32.2396160Z | |
2021-07-11T00:40:32.2396698Z D:\a\datasette\datasette\tests\test_canned_queries.py:43: | |
2021-07-11T00:40:32.2397282Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2397950Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2398592Z next(self.gen) | |
2021-07-11T00:40:32.2399212Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2399850Z yield TestClient(ds) | |
2021-07-11T00:40:32.2401149Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2401803Z self.cleanup() | |
2021-07-11T00:40:32.2402462Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2403151Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2403833Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2404592Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2405310Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2406012Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2406751Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2407507Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2408273Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2408915Z cls._rmtree(path) | |
2021-07-11T00:40:32.2409573Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2410310Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2411640Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2412342Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2413087Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2413845Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2414354Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2414629Z | |
2021-07-11T00:40:32.2415194Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8\\data.db' | |
2021-07-11T00:40:32.2416133Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E81ADE50> | |
2021-07-11T00:40:32.2416704Z | |
2021-07-11T00:40:32.2417115Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2417561Z try: | |
2021-07-11T00:40:32.2417993Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2418968Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsfgpfl8\\data.db' | |
2021-07-11T00:40:32.2419703Z | |
2021-07-11T00:40:32.2420384Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2421922Z _____ ERROR at setup of test_view_classes_are_documented[AllowDebugView] ______ | |
2021-07-11T00:40:32.2422814Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2423325Z | |
2021-07-11T00:40:32.2423762Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2424299Z def documented_views(): | |
2021-07-11T00:40:32.2424738Z view_labels = set() | |
2021-07-11T00:40:32.2425242Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2425781Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2426114Z | |
2021-07-11T00:40:32.2426596Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2427123Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2427717Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2428453Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2429257Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2429884Z return f.read() | |
2021-07-11T00:40:32.2430298Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2430568Z | |
2021-07-11T00:40:32.2431316Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2433467Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2434643Z final = True | |
2021-07-11T00:40:32.2434883Z | |
2021-07-11T00:40:32.2435315Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2436125Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2437233Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2437880Z | |
2021-07-11T00:40:32.2438593Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2439569Z ______ ERROR at setup of test_view_classes_are_documented[AuthTokenView] ______ | |
2021-07-11T00:40:32.2440457Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2441001Z | |
2021-07-11T00:40:32.2441431Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2441964Z def documented_views(): | |
2021-07-11T00:40:32.2442975Z view_labels = set() | |
2021-07-11T00:40:32.2443478Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2444021Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2444357Z | |
2021-07-11T00:40:32.2444838Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2445366Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2445993Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2446657Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2447394Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2448032Z return f.read() | |
2021-07-11T00:40:32.2448434Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2448704Z | |
2021-07-11T00:40:32.2449433Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2451029Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2452182Z final = True | |
2021-07-11T00:40:32.2453001Z | |
2021-07-11T00:40:32.2453429Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2454243Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2455337Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2455976Z | |
2021-07-11T00:40:32.2456691Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2457651Z ______ ERROR at setup of test_view_classes_are_documented[DatabaseView] _______ | |
2021-07-11T00:40:32.2458526Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2459033Z | |
2021-07-11T00:40:32.2460435Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2461061Z def documented_views(): | |
2021-07-11T00:40:32.2461507Z view_labels = set() | |
2021-07-11T00:40:32.2462012Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2463881Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2464352Z | |
2021-07-11T00:40:32.2464899Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2465424Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2466017Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2466698Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2467438Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2468082Z return f.read() | |
2021-07-11T00:40:32.2468486Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2468758Z | |
2021-07-11T00:40:32.2469490Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2471167Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2472326Z final = True | |
2021-07-11T00:40:32.2472576Z | |
2021-07-11T00:40:32.2472993Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2474377Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2475469Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2476111Z | |
2021-07-11T00:40:32.2476821Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2477771Z ________ ERROR at setup of test_view_classes_are_documented[IndexView] ________ | |
2021-07-11T00:40:32.2478628Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2479139Z | |
2021-07-11T00:40:32.2479573Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2480115Z def documented_views(): | |
2021-07-11T00:40:32.2480553Z view_labels = set() | |
2021-07-11T00:40:32.2481100Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2481646Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2481982Z | |
2021-07-11T00:40:32.2482460Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2482992Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2483580Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2484808Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2485551Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2486190Z return f.read() | |
2021-07-11T00:40:32.2486596Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2486868Z | |
2021-07-11T00:40:32.2487581Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2489145Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2490299Z final = True | |
2021-07-11T00:40:32.2490532Z | |
2021-07-11T00:40:32.2491036Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2491851Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2492948Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2493586Z | |
2021-07-11T00:40:32.2494866Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2495830Z ______ ERROR at setup of test_view_classes_are_documented[JsonDataView] _______ | |
2021-07-11T00:40:32.2496700Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2497209Z | |
2021-07-11T00:40:32.2497713Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2498312Z def documented_views(): | |
2021-07-11T00:40:32.2498749Z view_labels = set() | |
2021-07-11T00:40:32.2499255Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2499801Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2500138Z | |
2021-07-11T00:40:32.2500620Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2501212Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2501797Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2502456Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2503196Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2503819Z return f.read() | |
2021-07-11T00:40:32.2504233Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2505066Z | |
2021-07-11T00:40:32.2505796Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2507374Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2508522Z final = True | |
2021-07-11T00:40:32.2508756Z | |
2021-07-11T00:40:32.2509186Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2509982Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2511127Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2511768Z | |
2021-07-11T00:40:32.2512466Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2513434Z _______ ERROR at setup of test_view_classes_are_documented[LogoutView] ________ | |
2021-07-11T00:40:32.2514296Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2514797Z | |
2021-07-11T00:40:32.2515799Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2516323Z def documented_views(): | |
2021-07-11T00:40:32.2516775Z view_labels = set() | |
2021-07-11T00:40:32.2517278Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2517824Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2518158Z | |
2021-07-11T00:40:32.2518623Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2519165Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2519759Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2520422Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2521196Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2521822Z return f.read() | |
2021-07-11T00:40:32.2522244Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2522512Z | |
2021-07-11T00:40:32.2523224Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2524794Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2526494Z final = True | |
2021-07-11T00:40:32.2526744Z | |
2021-07-11T00:40:32.2527176Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2527970Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2529088Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2529726Z | |
2021-07-11T00:40:32.2530493Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2531612Z ____ ERROR at setup of test_view_classes_are_documented[MessagesDebugView] ____ | |
2021-07-11T00:40:32.2532522Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2533032Z | |
2021-07-11T00:40:32.2533482Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2534004Z def documented_views(): | |
2021-07-11T00:40:32.2534462Z view_labels = set() | |
2021-07-11T00:40:32.2534952Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2535512Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2536426Z | |
2021-07-11T00:40:32.2536897Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2537434Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2538010Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2538686Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2539431Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2540056Z return f.read() | |
2021-07-11T00:40:32.2540471Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2540741Z | |
2021-07-11T00:40:32.2541486Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2543106Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2544247Z final = True | |
2021-07-11T00:40:32.2544496Z | |
2021-07-11T00:40:32.2544925Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2545715Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2547399Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2548044Z | |
2021-07-11T00:40:32.2548743Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2549795Z __ ERROR at setup of test_view_classes_are_documented[PatternPortfolioView] ___ | |
2021-07-11T00:40:32.2550733Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2551275Z | |
2021-07-11T00:40:32.2551722Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2552245Z def documented_views(): | |
2021-07-11T00:40:32.2552698Z view_labels = set() | |
2021-07-11T00:40:32.2553194Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2553754Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2554088Z | |
2021-07-11T00:40:32.2554552Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2555096Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2555675Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2556352Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2557645Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2558294Z return f.read() | |
2021-07-11T00:40:32.2558708Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2558964Z | |
2021-07-11T00:40:32.2559696Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2561303Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2562447Z final = True | |
2021-07-11T00:40:32.2562696Z | |
2021-07-11T00:40:32.2563423Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2565028Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2568123Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2568781Z | |
2021-07-11T00:40:32.2569487Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2570548Z __ ERROR at setup of test_view_classes_are_documented[PermissionsDebugView] ___ | |
2021-07-11T00:40:32.2571538Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2572049Z | |
2021-07-11T00:40:32.2572500Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2573028Z def documented_views(): | |
2021-07-11T00:40:32.2573489Z view_labels = set() | |
2021-07-11T00:40:32.2573977Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2574534Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2574883Z | |
2021-07-11T00:40:32.2575352Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2575894Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2576470Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2577145Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2578446Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2579094Z return f.read() | |
2021-07-11T00:40:32.2579498Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2579769Z | |
2021-07-11T00:40:32.2580500Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2582092Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2583249Z final = True | |
2021-07-11T00:40:32.2583495Z | |
2021-07-11T00:40:32.2583913Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2584723Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2585840Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2586469Z | |
2021-07-11T00:40:32.2587179Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2588124Z _________ ERROR at setup of test_view_classes_are_documented[RowView] _________ | |
2021-07-11T00:40:32.2589526Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2590036Z | |
2021-07-11T00:40:32.2590535Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2591101Z def documented_views(): | |
2021-07-11T00:40:32.2591558Z view_labels = set() | |
2021-07-11T00:40:32.2592055Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2592616Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2592939Z | |
2021-07-11T00:40:32.2593418Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2593960Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2594558Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2595231Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2595962Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2596599Z return f.read() | |
2021-07-11T00:40:32.2596996Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2597269Z | |
2021-07-11T00:40:32.2597993Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2600827Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2602067Z final = True | |
2021-07-11T00:40:32.2602318Z | |
2021-07-11T00:40:32.2602737Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2603548Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2604645Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2605284Z | |
2021-07-11T00:40:32.2605999Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2606950Z ________ ERROR at setup of test_view_classes_are_documented[TableView] ________ | |
2021-07-11T00:40:32.2607799Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2608307Z | |
2021-07-11T00:40:32.2608744Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2609878Z def documented_views(): | |
2021-07-11T00:40:32.2610322Z view_labels = set() | |
2021-07-11T00:40:32.2610858Z for filename in docs_path.glob("*.rst"): | |
2021-07-11T00:40:32.2611401Z > for label in get_labels(filename): | |
2021-07-11T00:40:32.2611739Z | |
2021-07-11T00:40:32.2612216Z D:\a\datasette\datasette\tests\test_docs.py:80: | |
2021-07-11T00:40:32.2612738Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2613356Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels | |
2021-07-11T00:40:32.2614033Z content = (docs_path / filename).read_text() | |
2021-07-11T00:40:32.2614767Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\pathlib.py:1237: in read_text | |
2021-07-11T00:40:32.2615404Z return f.read() | |
2021-07-11T00:40:32.2615806Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2616076Z | |
2021-07-11T00:40:32.2616809Z self = <encodings.cp1252.IncrementalDecoder object at 0x00000213E8426AC0> | |
2021-07-11T00:40:32.2618382Z input = b'.. _contributing:\r\n\r\nContributing\r\n============\r\n\r\nDatasette is an open source project. We welcome contrib... ``_codemirror.html`` template to reference the new files\r\n* ``git rm`` the old files, ``git add`` the new files\r\n' | |
2021-07-11T00:40:32.2619539Z final = True | |
2021-07-11T00:40:32.2619791Z | |
2021-07-11T00:40:32.2620806Z def decode(self, input, final=False): | |
2021-07-11T00:40:32.2621618Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0] | |
2021-07-11T00:40:32.2622717Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined> | |
2021-07-11T00:40:32.2623354Z | |
2021-07-11T00:40:32.2624068Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError | |
2021-07-11T00:40:32.2624988Z ________ ERROR at teardown of test_initial_path_for_datasette[dbs2-/] _________ | |
2021-07-11T00:40:32.2625834Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2626349Z | |
2021-07-11T00:40:32.2626875Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2' | |
2021-07-11T00:40:32.2627771Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF7DD4C0> | |
2021-07-11T00:40:32.2628343Z | |
2021-07-11T00:40:32.2628757Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2629199Z try: | |
2021-07-11T00:40:32.2629643Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2630179Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2631418Z except OSError: | |
2021-07-11T00:40:32.2632014Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2632672Z entries = [] | |
2021-07-11T00:40:32.2633185Z for entry in entries: | |
2021-07-11T00:40:32.2633739Z fullname = entry.path | |
2021-07-11T00:40:32.2634324Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2634860Z try: | |
2021-07-11T00:40:32.2635323Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2635966Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2636628Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2637317Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2638037Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2638695Z except OSError: | |
2021-07-11T00:40:32.2639379Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2639981Z continue | |
2021-07-11T00:40:32.2640552Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2642996Z else: | |
2021-07-11T00:40:32.2643428Z try: | |
2021-07-11T00:40:32.2643863Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2645059Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2\\fixtures.db' | |
2021-07-11T00:40:32.2646021Z | |
2021-07-11T00:40:32.2646695Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2647277Z | |
2021-07-11T00:40:32.2647923Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2648443Z | |
2021-07-11T00:40:32.2648874Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2649665Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2\\fixtures.db' | |
2021-07-11T00:40:32.2650985Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FBA5FC80>) | |
2021-07-11T00:40:32.2869120Z | |
2021-07-11T00:40:32.2869637Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2870281Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2870945Z def resetperms(path): | |
2021-07-11T00:40:32.2871364Z try: | |
2021-07-11T00:40:32.2871786Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2872299Z except AttributeError: | |
2021-07-11T00:40:32.2872772Z pass | |
2021-07-11T00:40:32.2873866Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2874234Z | |
2021-07-11T00:40:32.2874561Z try: | |
2021-07-11T00:40:32.2874929Z if path != name: | |
2021-07-11T00:40:32.2875480Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2876044Z resetperms(path) | |
2021-07-11T00:40:32.2876435Z | |
2021-07-11T00:40:32.2876750Z try: | |
2021-07-11T00:40:32.2877136Z > _os.unlink(path) | |
2021-07-11T00:40:32.2878218Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2\\fixtures.db' | |
2021-07-11T00:40:32.2879125Z | |
2021-07-11T00:40:32.2879789Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2880360Z | |
2021-07-11T00:40:32.2880962Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2881451Z | |
2021-07-11T00:40:32.2881896Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2882389Z def app_client(): | |
2021-07-11T00:40:32.2882865Z with make_app_client() as client: | |
2021-07-11T00:40:32.2883876Z > yield client | |
2021-07-11T00:40:32.2884144Z | |
2021-07-11T00:40:32.2884630Z D:\a\datasette\datasette\tests\fixtures.py:162: | |
2021-07-11T00:40:32.2885192Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2885865Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2886511Z next(self.gen) | |
2021-07-11T00:40:32.2887454Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2888099Z yield TestClient(ds) | |
2021-07-11T00:40:32.2888782Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2889431Z self.cleanup() | |
2021-07-11T00:40:32.2890108Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2890846Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2891528Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2892287Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2893007Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2894277Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2895012Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2895787Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2896544Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2897204Z cls._rmtree(path) | |
2021-07-11T00:40:32.2897864Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2898601Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2899338Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2900029Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2900802Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2901550Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2902068Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2902341Z | |
2021-07-11T00:40:32.2902930Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2\\fixtures.db' | |
2021-07-11T00:40:32.2903899Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCA13A0> | |
2021-07-11T00:40:32.2905039Z | |
2021-07-11T00:40:32.2905460Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2905909Z try: | |
2021-07-11T00:40:32.2906346Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2907358Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4mncmfe2\\fixtures.db' | |
2021-07-11T00:40:32.2908125Z | |
2021-07-11T00:40:32.2908779Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2909654Z __________ ERROR at teardown of test_publish_cloudrun_memory[4-True] __________ | |
2021-07-11T00:40:32.2910457Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2910994Z | |
2021-07-11T00:40:32.2911528Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi' | |
2021-07-11T00:40:32.2912399Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EC244310> | |
2021-07-11T00:40:32.2912959Z | |
2021-07-11T00:40:32.2913387Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2913817Z try: | |
2021-07-11T00:40:32.2914271Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2915357Z entries = list(scandir_it) | |
2021-07-11T00:40:32.2915838Z except OSError: | |
2021-07-11T00:40:32.2916372Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2916889Z entries = [] | |
2021-07-11T00:40:32.2917322Z for entry in entries: | |
2021-07-11T00:40:32.2917793Z fullname = entry.path | |
2021-07-11T00:40:32.2918285Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.2918685Z try: | |
2021-07-11T00:40:32.2919111Z if entry.is_symlink(): | |
2021-07-11T00:40:32.2919671Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.2920319Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.2921124Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.2921785Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.2922366Z except OSError: | |
2021-07-11T00:40:32.2922971Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2923551Z continue | |
2021-07-11T00:40:32.2924044Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.2924527Z else: | |
2021-07-11T00:40:32.2924868Z try: | |
2021-07-11T00:40:32.2925884Z > os.unlink(fullname) | |
2021-07-11T00:40:32.2926990Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi\\fixtures.db' | |
2021-07-11T00:40:32.2927892Z | |
2021-07-11T00:40:32.2928546Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.2929095Z | |
2021-07-11T00:40:32.2929668Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2930157Z | |
2021-07-11T00:40:32.2930556Z func = <built-in function unlink> | |
2021-07-11T00:40:32.2931312Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi\\fixtures.db' | |
2021-07-11T00:40:32.2932551Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E65FBD40>) | |
2021-07-11T00:40:32.2933402Z | |
2021-07-11T00:40:32.2933805Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.2934420Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.2935001Z def resetperms(path): | |
2021-07-11T00:40:32.2935990Z try: | |
2021-07-11T00:40:32.2936397Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.2936924Z except AttributeError: | |
2021-07-11T00:40:32.2937399Z pass | |
2021-07-11T00:40:32.2937805Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.2938183Z | |
2021-07-11T00:40:32.2938495Z try: | |
2021-07-11T00:40:32.2938880Z if path != name: | |
2021-07-11T00:40:32.2939412Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.2951239Z resetperms(path) | |
2021-07-11T00:40:32.2951715Z | |
2021-07-11T00:40:32.2952531Z try: | |
2021-07-11T00:40:32.2953006Z > _os.unlink(path) | |
2021-07-11T00:40:32.2954110Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi\\fixtures.db' | |
2021-07-11T00:40:32.2955365Z | |
2021-07-11T00:40:32.2956031Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.2957202Z | |
2021-07-11T00:40:32.2957805Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.2958300Z | |
2021-07-11T00:40:32.2958734Z @pytest.fixture(scope="session") | |
2021-07-11T00:40:32.2959239Z def app_client(): | |
2021-07-11T00:40:32.2959701Z with make_app_client() as client: | |
2021-07-11T00:40:32.2960160Z > yield client | |
2021-07-11T00:40:32.2960424Z | |
2021-07-11T00:40:32.2960942Z D:\a\datasette\datasette\tests\fixtures.py:162: | |
2021-07-11T00:40:32.2961502Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2962163Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.2962819Z next(self.gen) | |
2021-07-11T00:40:32.2963428Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.2964079Z yield TestClient(ds) | |
2021-07-11T00:40:32.2964761Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.2965410Z self.cleanup() | |
2021-07-11T00:40:32.2966253Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.2967615Z self._rmtree(self.name) | |
2021-07-11T00:40:32.2968313Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2969057Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2970135Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2971541Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2972315Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.2973086Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.2973843Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.2974500Z cls._rmtree(path) | |
2021-07-11T00:40:32.2975148Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.2975900Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.2976628Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.2977988Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.2978712Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.2979465Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.2979984Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.2980246Z | |
2021-07-11T00:40:32.2982410Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi\\fixtures.db' | |
2021-07-11T00:40:32.2983369Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EC161670> | |
2021-07-11T00:40:32.2983916Z | |
2021-07-11T00:40:32.2984346Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.2984770Z try: | |
2021-07-11T00:40:32.2985217Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.2986226Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpkzgahnmi\\fixtures.db' | |
2021-07-11T00:40:32.2986982Z | |
2021-07-11T00:40:32.2988269Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.2989032Z ================================== FAILURES =================================== | |
2021-07-11T00:40:32.2989513Z ________________________________ test_package _________________________________ | |
2021-07-11T00:40:32.2990219Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.2990734Z | |
2021-07-11T00:40:32.2991188Z mock_call = <MagicMock name='call' id='2826006652864'> | |
2021-07-11T00:40:32.2991754Z mock_which = <MagicMock name='which' id='2826013758128'> | |
2021-07-11T00:40:32.2992089Z | |
2021-07-11T00:40:32.2992507Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.2993093Z @mock.patch("datasette.cli.call") | |
2021-07-11T00:40:32.2993705Z def test_package(mock_call, mock_which): | |
2021-07-11T00:40:32.2994265Z mock_which.return_value = True | |
2021-07-11T00:40:32.2994756Z runner = CliRunner() | |
2021-07-11T00:40:32.2995302Z capture = CaptureDockerfile() | |
2021-07-11T00:40:32.2995875Z mock_call.side_effect = capture | |
2021-07-11T00:40:32.2996469Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.2997019Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.2997487Z fp.write("data") | |
2021-07-11T00:40:32.2998688Z result = runner.invoke(cli.cli, ["package", "test.db", "--secret", "sekrit"]) | |
2021-07-11T00:40:32.2999379Z > assert 0 == result.exit_code | |
2021-07-11T00:40:32.2999919Z E AssertionError: assert 0 == 1 | |
2021-07-11T00:40:32.3000803Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.3001444Z | |
2021-07-11T00:40:32.3001913Z tests\test_package.py:38: AssertionError | |
2021-07-11T00:40:32.3002665Z ___________________________ test_package_with_port ____________________________ | |
2021-07-11T00:40:32.3003475Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3003969Z | |
2021-07-11T00:40:32.3004398Z mock_call = <MagicMock name='call' id='2284497054256'> | |
2021-07-11T00:40:32.3004965Z mock_which = <MagicMock name='which' id='2284497139792'> | |
2021-07-11T00:40:32.3005301Z | |
2021-07-11T00:40:32.3005717Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.3006298Z @mock.patch("datasette.cli.call") | |
2021-07-11T00:40:32.3006941Z def test_package_with_port(mock_call, mock_which): | |
2021-07-11T00:40:32.3007529Z mock_which.return_value = True | |
2021-07-11T00:40:32.3008677Z capture = CaptureDockerfile() | |
2021-07-11T00:40:32.3009272Z mock_call.side_effect = capture | |
2021-07-11T00:40:32.3009763Z runner = CliRunner() | |
2021-07-11T00:40:32.3010311Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.3010900Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.3011371Z fp.write("data") | |
2021-07-11T00:40:32.3011837Z result = runner.invoke( | |
2021-07-11T00:40:32.3012458Z cli.cli, ["package", "test.db", "-p", "8080", "--secret", "sekrit"] | |
2021-07-11T00:40:32.3012955Z ) | |
2021-07-11T00:40:32.3013381Z > assert 0 == result.exit_code | |
2021-07-11T00:40:32.3013924Z E AssertionError: assert 0 == 1 | |
2021-07-11T00:40:32.3014776Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.3015413Z | |
2021-07-11T00:40:32.3025442Z tests\test_package.py:56: AssertionError | |
2021-07-11T00:40:32.3026062Z _____________________________ test_serve_with_get _____________________________ | |
2021-07-11T00:40:32.3027351Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3027873Z | |
2021-07-11T00:40:32.3029387Z tmp_path_factory = TempPathFactory(_given_basetemp=WindowsPath('C:/Users/runneradmin/AppData/Local/Temp/pytest-of-runneradmin/pytest-0/po...13E4950940>, _basetemp=WindowsPath('C:/Users/runneradmin/AppData/Local/Temp/pytest-of-runneradmin/pytest-0/popen-gw0')) | |
2021-07-11T00:40:32.3031730Z | |
2021-07-11T00:40:32.3032180Z def test_serve_with_get(tmp_path_factory): | |
2021-07-11T00:40:32.3032894Z plugins_dir = tmp_path_factory.mktemp("plugins_for_serve_with_get") | |
2021-07-11T00:40:32.3033646Z (plugins_dir / "init_for_serve_with_get.py").write_text( | |
2021-07-11T00:40:32.3034227Z textwrap.dedent( | |
2021-07-11T00:40:32.3034650Z """ | |
2021-07-11T00:40:32.3035090Z from datasette import hookimpl | |
2021-07-11T00:40:32.3035524Z | |
2021-07-11T00:40:32.3035859Z @hookimpl | |
2021-07-11T00:40:32.3036310Z def startup(datasette): | |
2021-07-11T00:40:32.3036783Z with open("{}", "w") as fp: | |
2021-07-11T00:40:32.3037245Z fp.write("hello") | |
2021-07-11T00:40:32.3037647Z """.format( | |
2021-07-11T00:40:32.3038107Z str(plugins_dir / "hello.txt") | |
2021-07-11T00:40:32.3038538Z ), | |
2021-07-11T00:40:32.3038847Z ), | |
2021-07-11T00:40:32.3039189Z "utf-8", | |
2021-07-11T00:40:32.3039507Z ) | |
2021-07-11T00:40:32.3039886Z runner = CliRunner() | |
2021-07-11T00:40:32.3040364Z result = runner.invoke( | |
2021-07-11T00:40:32.3041458Z cli, | |
2021-07-11T00:40:32.3041778Z [ | |
2021-07-11T00:40:32.3042127Z "serve", | |
2021-07-11T00:40:32.3042503Z "--memory", | |
2021-07-11T00:40:32.3042937Z "--plugins-dir", | |
2021-07-11T00:40:32.3043379Z str(plugins_dir), | |
2021-07-11T00:40:32.3043782Z "--get", | |
2021-07-11T00:40:32.3044316Z "/_memory.json?sql=select+sqlite_version()", | |
2021-07-11T00:40:32.3044804Z ], | |
2021-07-11T00:40:32.3045117Z ) | |
2021-07-11T00:40:32.3045732Z > assert 0 == result.exit_code, result.output | |
2021-07-11T00:40:32.3047049Z E AssertionError: | |
2021-07-11T00:40:32.3047468Z E assert 0 == 1 | |
2021-07-11T00:40:32.3048861Z E + where 1 = <Result SyntaxError("(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \\UXXXXXXXX e...ta\\Local\\Temp\\pytest-of-runneradmin\\pytest-0\\popen-gw0\\plugins_for_serve_with_get0\\hello.txt", "w") as fp:\n'))>.exit_code | |
2021-07-11T00:40:32.3050088Z | |
2021-07-11T00:40:32.3050682Z D:\a\datasette\datasette\tests\test_cli_serve_get.py:37: AssertionError | |
2021-07-11T00:40:32.3052300Z _ test_searchable[/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw-expected_rows3] _ | |
2021-07-11T00:40:32.3053309Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3053822Z | |
2021-07-11T00:40:32.3054598Z app_client = <datasette.utils.testing.TestClient object at 0x00000291FB500490> | |
2021-07-11T00:40:32.3055638Z path = '/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw' | |
2021-07-11T00:40:32.3056502Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']] | |
2021-07-11T00:40:32.3056982Z | |
2021-07-11T00:40:32.3057454Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3058041Z "path,expected_rows", | |
2021-07-11T00:40:32.3058437Z [ | |
2021-07-11T00:40:32.3058748Z ( | |
2021-07-11T00:40:32.3059241Z "/fixtures/searchable.json?_search=dog", | |
2021-07-11T00:40:32.3059737Z [ | |
2021-07-11T00:40:32.3060179Z [1, "barry cat", "terry dog", "panther"], | |
2021-07-11T00:40:32.3060715Z [2, "terry dog", "sara weasel", "puma"], | |
2021-07-11T00:40:32.3061180Z ], | |
2021-07-11T00:40:32.3061488Z ), | |
2021-07-11T00:40:32.3061803Z ( | |
2021-07-11T00:40:32.3062275Z # Special keyword shouldn't break FTS query | |
2021-07-11T00:40:32.3063456Z "/fixtures/searchable.json?_search=AND", | |
2021-07-11T00:40:32.3063948Z [], | |
2021-07-11T00:40:32.3064271Z ), | |
2021-07-11T00:40:32.3064574Z ( | |
2021-07-11T00:40:32.3065101Z # Without _searchmode=raw this should return no results | |
2021-07-11T00:40:32.3065827Z "/fixtures/searchable.json?_search=te*+AND+do*", | |
2021-07-11T00:40:32.3066331Z [], | |
2021-07-11T00:40:32.3066654Z ), | |
2021-07-11T00:40:32.3066956Z ( | |
2021-07-11T00:40:32.3067344Z # _searchmode=raw | |
2021-07-11T00:40:32.3067989Z "/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3068570Z [ | |
2021-07-11T00:40:32.3069007Z [1, "barry cat", "terry dog", "panther"], | |
2021-07-11T00:40:32.3069551Z [2, "terry dog", "sara weasel", "puma"], | |
2021-07-11T00:40:32.3069965Z ], | |
2021-07-11T00:40:32.3070285Z ), | |
2021-07-11T00:40:32.3070611Z ( | |
2021-07-11T00:40:32.3071140Z # _searchmode=raw combined with _search_COLUMN | |
2021-07-11T00:40:32.3071902Z "/fixtures/searchable.json?_search_text2=te*&_searchmode=raw", | |
2021-07-11T00:40:32.3074225Z [ | |
2021-07-11T00:40:32.3074690Z [1, "barry cat", "terry dog", "panther"], | |
2021-07-11T00:40:32.3075107Z ], | |
2021-07-11T00:40:32.3075426Z ), | |
2021-07-11T00:40:32.3075729Z ( | |
2021-07-11T00:40:32.3076252Z "/fixtures/searchable.json?_search=weasel", | |
2021-07-11T00:40:32.3076871Z [[2, "terry dog", "sara weasel", "puma"]], | |
2021-07-11T00:40:32.3077289Z ), | |
2021-07-11T00:40:32.3077603Z ( | |
2021-07-11T00:40:32.3078112Z "/fixtures/searchable.json?_search_text2=dog", | |
2021-07-11T00:40:32.3078747Z [[1, "barry cat", "terry dog", "panther"]], | |
2021-07-11T00:40:32.3079164Z ), | |
2021-07-11T00:40:32.3079614Z ( | |
2021-07-11T00:40:32.3080281Z "/fixtures/searchable.json?_search_name%20with%20.%20and%20spaces=panther", | |
2021-07-11T00:40:32.3081042Z [[1, "barry cat", "terry dog", "panther"]], | |
2021-07-11T00:40:32.3081455Z ), | |
2021-07-11T00:40:32.3081771Z ], | |
2021-07-11T00:40:32.3082065Z ) | |
2021-07-11T00:40:32.3082587Z def test_searchable(app_client, path, expected_rows): | |
2021-07-11T00:40:32.3083233Z response = app_client.get(path) | |
2021-07-11T00:40:32.3083849Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3085067Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == [] | |
2021-07-11T00:40:32.3085826Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther'] | |
2021-07-11T00:40:32.3086483Z E Use -v to get the full diff | |
2021-07-11T00:40:32.3086789Z | |
2021-07-11T00:40:32.3087344Z D:\a\datasette\datasette\tests\test_api.py:1062: AssertionError | |
2021-07-11T00:40:32.3088202Z _____ test_searchmode[table_metadata1-_search=te*+AND+do*-expected_rows1] _____ | |
2021-07-11T00:40:32.3089081Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3089596Z | |
2021-07-11T00:40:32.3090143Z sql_time_limit_ms = None, max_returned_rows = None, cors = False, memory = False | |
2021-07-11T00:40:32.3090997Z config = {'default_page_size': 50, 'max_returned_rows': 100, 'num_sql_threads': 1, 'sql_time_limit_ms': 200} | |
2021-07-11T00:40:32.3091839Z filename = 'fixtures.db', is_immutable = False, extra_databases = None | |
2021-07-11T00:40:32.3092594Z inspect_data = None, static_mounts = None, template_dir = None | |
2021-07-11T00:40:32.3093383Z metadata = {'databases': {'fixtures': {'tables': {'searchable': {'searchmode': 'raw'}}}}} | |
2021-07-11T00:40:32.3094008Z crossdb = False | |
2021-07-11T00:40:32.3094258Z | |
2021-07-11T00:40:32.3094760Z @contextlib.contextmanager | |
2021-07-11T00:40:32.3095814Z def make_app_client( | |
2021-07-11T00:40:32.3096272Z sql_time_limit_ms=None, | |
2021-07-11T00:40:32.3096730Z max_returned_rows=None, | |
2021-07-11T00:40:32.3097159Z cors=False, | |
2021-07-11T00:40:32.3097556Z memory=False, | |
2021-07-11T00:40:32.3097939Z config=None, | |
2021-07-11T00:40:32.3098393Z filename="fixtures.db", | |
2021-07-11T00:40:32.3098862Z is_immutable=False, | |
2021-07-11T00:40:32.3099333Z extra_databases=None, | |
2021-07-11T00:40:32.3099782Z inspect_data=None, | |
2021-07-11T00:40:32.3100225Z static_mounts=None, | |
2021-07-11T00:40:32.3100655Z template_dir=None, | |
2021-07-11T00:40:32.3101123Z metadata=None, | |
2021-07-11T00:40:32.3101526Z crossdb=False, | |
2021-07-11T00:40:32.3101886Z ): | |
2021-07-11T00:40:32.3102488Z with tempfile.TemporaryDirectory() as tmpdir: | |
2021-07-11T00:40:32.3103281Z filepath = os.path.join(tmpdir, filename) | |
2021-07-11T00:40:32.3103834Z if is_immutable: | |
2021-07-11T00:40:32.3104229Z files = [] | |
2021-07-11T00:40:32.3104686Z immutables = [filepath] | |
2021-07-11T00:40:32.3105114Z else: | |
2021-07-11T00:40:32.3105524Z files = [filepath] | |
2021-07-11T00:40:32.3106456Z immutables = [] | |
2021-07-11T00:40:32.3106978Z conn = sqlite3.connect(filepath) | |
2021-07-11T00:40:32.3107581Z conn.executescript(TABLES) | |
2021-07-11T00:40:32.3108225Z for sql, params in TABLE_PARAMETERIZED_SQL: | |
2021-07-11T00:40:32.3108733Z with conn: | |
2021-07-11T00:40:32.3109209Z conn.execute(sql, params) | |
2021-07-11T00:40:32.3109758Z if extra_databases is not None: | |
2021-07-11T00:40:32.3110413Z for extra_filename, extra_sql in extra_databases.items(): | |
2021-07-11T00:40:32.3111242Z extra_filepath = os.path.join(tmpdir, extra_filename) | |
2021-07-11T00:40:32.3112050Z sqlite3.connect(extra_filepath).executescript(extra_sql) | |
2021-07-11T00:40:32.3112915Z # Insert at start to help test /-/databases ordering: | |
2021-07-11T00:40:32.3113615Z files.insert(0, extra_filepath) | |
2021-07-11T00:40:32.3114238Z os.chdir(os.path.dirname(filepath)) | |
2021-07-11T00:40:32.3114761Z config = config or {} | |
2021-07-11T00:40:32.3115197Z for key, value in { | |
2021-07-11T00:40:32.3115648Z "default_page_size": 50, | |
2021-07-11T00:40:32.3116184Z "max_returned_rows": max_returned_rows or 100, | |
2021-07-11T00:40:32.3117292Z "sql_time_limit_ms": sql_time_limit_ms or 200, | |
2021-07-11T00:40:32.3117930Z # Default is 3 but this results in "too many open files" | |
2021-07-11T00:40:32.3118569Z # errors when running the full test suite: | |
2021-07-11T00:40:32.3119077Z "num_sql_threads": 1, | |
2021-07-11T00:40:32.3119481Z }.items(): | |
2021-07-11T00:40:32.3119880Z if key not in config: | |
2021-07-11T00:40:32.3120341Z config[key] = value | |
2021-07-11T00:40:32.3120816Z ds = Datasette( | |
2021-07-11T00:40:32.3121204Z files, | |
2021-07-11T00:40:32.3121661Z immutables=immutables, | |
2021-07-11T00:40:32.3122131Z memory=memory, | |
2021-07-11T00:40:32.3122539Z cors=cors, | |
2021-07-11T00:40:32.3123010Z metadata=metadata or METADATA, | |
2021-07-11T00:40:32.3123554Z plugins_dir=PLUGINS_DIR, | |
2021-07-11T00:40:32.3124010Z config=config, | |
2021-07-11T00:40:32.3124490Z inspect_data=inspect_data, | |
2021-07-11T00:40:32.3124999Z static_mounts=static_mounts, | |
2021-07-11T00:40:32.3125532Z template_dir=template_dir, | |
2021-07-11T00:40:32.3126021Z crossdb=crossdb, | |
2021-07-11T00:40:32.3126389Z ) | |
2021-07-11T00:40:32.3127002Z ds.sqlite_functions.append(("sleep", 1, lambda n: time.sleep(float(n)))) | |
2021-07-11T00:40:32.3128153Z > yield TestClient(ds) | |
2021-07-11T00:40:32.3128461Z | |
2021-07-11T00:40:32.3128953Z D:\a\datasette\datasette\tests\fixtures.py:156: | |
2021-07-11T00:40:32.3129497Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3129769Z | |
2021-07-11T00:40:32.3130312Z table_metadata = {'searchmode': 'raw'}, querystring = '_search=te*+AND+do*' | |
2021-07-11T00:40:32.3131176Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']] | |
2021-07-11T00:40:32.3131658Z | |
2021-07-11T00:40:32.3132126Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3132921Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3133523Z [ | |
2021-07-11T00:40:32.3133839Z ( | |
2021-07-11T00:40:32.3134160Z {}, | |
2021-07-11T00:40:32.3134541Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3134930Z [], | |
2021-07-11T00:40:32.3135238Z ), | |
2021-07-11T00:40:32.3135555Z ( | |
2021-07-11T00:40:32.3135940Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3136394Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3136871Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3137287Z ), | |
2021-07-11T00:40:32.3137587Z ( | |
2021-07-11T00:40:32.3138418Z {}, | |
2021-07-11T00:40:32.3138867Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3139415Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3139825Z ), | |
2021-07-11T00:40:32.3140325Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3140861Z ( | |
2021-07-11T00:40:32.3141242Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3141799Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3142266Z [], | |
2021-07-11T00:40:32.3142586Z ), | |
2021-07-11T00:40:32.3142889Z ], | |
2021-07-11T00:40:32.3143272Z ) | |
2021-07-11T00:40:32.3143912Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3144566Z with make_app_client( | |
2021-07-11T00:40:32.3145222Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3145839Z ) as client: | |
2021-07-11T00:40:32.3146496Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3156532Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3157309Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == [] | |
2021-07-11T00:40:32.3158583Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther'] | |
2021-07-11T00:40:32.3159293Z E Use -v to get the full diff | |
2021-07-11T00:40:32.3160228Z | |
2021-07-11T00:40:32.3160835Z D:\a\datasette\datasette\tests\test_api.py:1102: AssertionError | |
2021-07-11T00:40:32.3161516Z | |
2021-07-11T00:40:32.3162218Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3162702Z | |
2021-07-11T00:40:32.3163239Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_' | |
2021-07-11T00:40:32.3164134Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB7EF5E0> | |
2021-07-11T00:40:32.3164692Z | |
2021-07-11T00:40:32.3165121Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3165549Z try: | |
2021-07-11T00:40:32.3166000Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3166536Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3166998Z except OSError: | |
2021-07-11T00:40:32.3167542Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3168047Z entries = [] | |
2021-07-11T00:40:32.3168475Z for entry in entries: | |
2021-07-11T00:40:32.3168948Z fullname = entry.path | |
2021-07-11T00:40:32.3169440Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3169842Z try: | |
2021-07-11T00:40:32.3170833Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3171398Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3172046Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3172667Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3173310Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3174239Z except OSError: | |
2021-07-11T00:40:32.3174868Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3175799Z continue | |
2021-07-11T00:40:32.3176294Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3176774Z else: | |
2021-07-11T00:40:32.3177118Z try: | |
2021-07-11T00:40:32.3177529Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3178645Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_\\fixtures.db' | |
2021-07-11T00:40:32.3179537Z | |
2021-07-11T00:40:32.3180187Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3180739Z | |
2021-07-11T00:40:32.3181353Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3181838Z | |
2021-07-11T00:40:32.3182247Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3182939Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_\\fixtures.db' | |
2021-07-11T00:40:32.3184185Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB465740>) | |
2021-07-11T00:40:32.3185034Z | |
2021-07-11T00:40:32.3185439Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3186199Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3186859Z def resetperms(path): | |
2021-07-11T00:40:32.3187286Z try: | |
2021-07-11T00:40:32.3187691Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3188213Z except AttributeError: | |
2021-07-11T00:40:32.3188682Z pass | |
2021-07-11T00:40:32.3189082Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3189464Z | |
2021-07-11T00:40:32.3189772Z try: | |
2021-07-11T00:40:32.3190152Z if path != name: | |
2021-07-11T00:40:32.3190684Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3191293Z resetperms(path) | |
2021-07-11T00:40:32.3191668Z | |
2021-07-11T00:40:32.3191995Z try: | |
2021-07-11T00:40:32.3192373Z > _os.unlink(path) | |
2021-07-11T00:40:32.3193451Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_\\fixtures.db' | |
2021-07-11T00:40:32.3194347Z | |
2021-07-11T00:40:32.3194997Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3195570Z | |
2021-07-11T00:40:32.3196154Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3196642Z | |
2021-07-11T00:40:32.3197183Z table_metadata = {'searchmode': 'raw'}, querystring = '_search=te*+AND+do*' | |
2021-07-11T00:40:32.3198600Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']] | |
2021-07-11T00:40:32.3199070Z | |
2021-07-11T00:40:32.3199555Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3200352Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3200985Z [ | |
2021-07-11T00:40:32.3201302Z ( | |
2021-07-11T00:40:32.3201616Z {}, | |
2021-07-11T00:40:32.3202010Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3202387Z [], | |
2021-07-11T00:40:32.3202711Z ), | |
2021-07-11T00:40:32.3203022Z ( | |
2021-07-11T00:40:32.3203417Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3203860Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3204348Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3204752Z ), | |
2021-07-11T00:40:32.3205070Z ( | |
2021-07-11T00:40:32.3205392Z {}, | |
2021-07-11T00:40:32.3205837Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3206386Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3206787Z ), | |
2021-07-11T00:40:32.3207302Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3207793Z ( | |
2021-07-11T00:40:32.3208187Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3208731Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3209210Z [], | |
2021-07-11T00:40:32.3209520Z ), | |
2021-07-11T00:40:32.3209835Z ], | |
2021-07-11T00:40:32.3210132Z ) | |
2021-07-11T00:40:32.3210716Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3211398Z with make_app_client( | |
2021-07-11T00:40:32.3212060Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3212677Z ) as client: | |
2021-07-11T00:40:32.3213315Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3214105Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3214505Z | |
2021-07-11T00:40:32.3214970Z D:\a\datasette\datasette\tests\test_api.py:1102: | |
2021-07-11T00:40:32.3215551Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3216206Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:131: in __exit__ | |
2021-07-11T00:40:32.3216983Z self.gen.throw(type, value, traceback) | |
2021-07-11T00:40:32.3217794Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3218505Z yield TestClient(ds) | |
2021-07-11T00:40:32.3219767Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3220417Z self.cleanup() | |
2021-07-11T00:40:32.3221119Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3221799Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3222490Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3223227Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3223964Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3224654Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3225401Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3226178Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3226939Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3227596Z cls._rmtree(path) | |
2021-07-11T00:40:32.3228241Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3228991Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3230261Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3231003Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3231729Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3232483Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3233003Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3233260Z | |
2021-07-11T00:40:32.3233861Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_\\fixtures.db' | |
2021-07-11T00:40:32.3234811Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB7EF820> | |
2021-07-11T00:40:32.3235377Z | |
2021-07-11T00:40:32.3235802Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3236230Z try: | |
2021-07-11T00:40:32.3236673Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3237670Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0ghf05_\\fixtures.db' | |
2021-07-11T00:40:32.3238412Z | |
2021-07-11T00:40:32.3239084Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3240152Z _ test_searchmode[table_metadata3-_search=te*+AND+do*&_searchmode=escaped-expected_rows3] _ | |
2021-07-11T00:40:32.3241734Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3242252Z | |
2021-07-11T00:40:32.3242783Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4' | |
2021-07-11T00:40:32.3243680Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB4F88B0> | |
2021-07-11T00:40:32.3244256Z | |
2021-07-11T00:40:32.3244673Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3245118Z try: | |
2021-07-11T00:40:32.3245559Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3246094Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3246563Z except OSError: | |
2021-07-11T00:40:32.3247091Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3247605Z entries = [] | |
2021-07-11T00:40:32.3248024Z for entry in entries: | |
2021-07-11T00:40:32.3248509Z fullname = entry.path | |
2021-07-11T00:40:32.3248985Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3249401Z try: | |
2021-07-11T00:40:32.3249812Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3250387Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3252327Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3253242Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3253989Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3254572Z except OSError: | |
2021-07-11T00:40:32.3255215Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3255824Z continue | |
2021-07-11T00:40:32.3256331Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3256799Z else: | |
2021-07-11T00:40:32.3257154Z try: | |
2021-07-11T00:40:32.3257554Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3258686Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4\\fixtures.db' | |
2021-07-11T00:40:32.3259609Z | |
2021-07-11T00:40:32.3260259Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3260890Z | |
2021-07-11T00:40:32.3261481Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3261973Z | |
2021-07-11T00:40:32.3262377Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3263107Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4\\fixtures.db' | |
2021-07-11T00:40:32.3264967Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB825040>) | |
2021-07-11T00:40:32.3265826Z | |
2021-07-11T00:40:32.3266256Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3266864Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3267465Z def resetperms(path): | |
2021-07-11T00:40:32.3267880Z try: | |
2021-07-11T00:40:32.3268298Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3268816Z except AttributeError: | |
2021-07-11T00:40:32.3269285Z pass | |
2021-07-11T00:40:32.3269710Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3270084Z | |
2021-07-11T00:40:32.3270411Z try: | |
2021-07-11T00:40:32.3270844Z if path != name: | |
2021-07-11T00:40:32.3271400Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3271960Z resetperms(path) | |
2021-07-11T00:40:32.3272354Z | |
2021-07-11T00:40:32.3272668Z try: | |
2021-07-11T00:40:32.3273062Z > _os.unlink(path) | |
2021-07-11T00:40:32.3274163Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4\\fixtures.db' | |
2021-07-11T00:40:32.3285501Z | |
2021-07-11T00:40:32.3286230Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3286814Z | |
2021-07-11T00:40:32.3288629Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3289136Z | |
2021-07-11T00:40:32.3289569Z table_metadata = {'searchmode': 'raw'} | |
2021-07-11T00:40:32.3290528Z querystring = '_search=te*+AND+do*&_searchmode=escaped', expected_rows = [] | |
2021-07-11T00:40:32.3291822Z | |
2021-07-11T00:40:32.3292325Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3293116Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3293738Z [ | |
2021-07-11T00:40:32.3294044Z ( | |
2021-07-11T00:40:32.3294372Z {}, | |
2021-07-11T00:40:32.3294755Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3295149Z [], | |
2021-07-11T00:40:32.3295462Z ), | |
2021-07-11T00:40:32.3295782Z ( | |
2021-07-11T00:40:32.3296165Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3296626Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3297105Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3297522Z ), | |
2021-07-11T00:40:32.3298492Z ( | |
2021-07-11T00:40:32.3299011Z {}, | |
2021-07-11T00:40:32.3299480Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3300019Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3300437Z ), | |
2021-07-11T00:40:32.3300980Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3301492Z ( | |
2021-07-11T00:40:32.3301875Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3302429Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3302894Z [], | |
2021-07-11T00:40:32.3303217Z ), | |
2021-07-11T00:40:32.3303524Z ], | |
2021-07-11T00:40:32.3303828Z ) | |
2021-07-11T00:40:32.3304413Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3305059Z with make_app_client( | |
2021-07-11T00:40:32.3305735Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3306353Z ) as client: | |
2021-07-11T00:40:32.3307018Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3307802Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3308206Z | |
2021-07-11T00:40:32.3309246Z D:\a\datasette\datasette\tests\test_api.py:1102: | |
2021-07-11T00:40:32.3309775Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3310450Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3311133Z next(self.gen) | |
2021-07-11T00:40:32.3311762Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3312400Z yield TestClient(ds) | |
2021-07-11T00:40:32.3313082Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3313777Z self.cleanup() | |
2021-07-11T00:40:32.3314439Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3315145Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3315820Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3316582Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3317308Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3318015Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3319304Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3320086Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3320885Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3321528Z cls._rmtree(path) | |
2021-07-11T00:40:32.3322181Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3322929Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3323670Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3324366Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3325107Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3325869Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3326373Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3326647Z | |
2021-07-11T00:40:32.3327247Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4\\fixtures.db' | |
2021-07-11T00:40:32.3328219Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCAA7DC0> | |
2021-07-11T00:40:32.3328799Z | |
2021-07-11T00:40:32.3329217Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3330222Z try: | |
2021-07-11T00:40:32.3330656Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3331783Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpmgyepde4\\fixtures.db' | |
2021-07-11T00:40:32.3332621Z | |
2021-07-11T00:40:32.3333282Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3334242Z _____ test_searchmode[table_metadata0-_search=te*+AND+do*-expected_rows0] _____ | |
2021-07-11T00:40:32.3335132Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3335632Z | |
2021-07-11T00:40:32.3336162Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj' | |
2021-07-11T00:40:32.3337056Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7D6DE50> | |
2021-07-11T00:40:32.3337607Z | |
2021-07-11T00:40:32.3338040Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3338472Z try: | |
2021-07-11T00:40:32.3338925Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3339462Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3340497Z except OSError: | |
2021-07-11T00:40:32.3341081Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3341588Z entries = [] | |
2021-07-11T00:40:32.3342018Z for entry in entries: | |
2021-07-11T00:40:32.3342491Z fullname = entry.path | |
2021-07-11T00:40:32.3342983Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3343383Z try: | |
2021-07-11T00:40:32.3343809Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3344368Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3345017Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3345637Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3346279Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3346856Z except OSError: | |
2021-07-11T00:40:32.3348056Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3348648Z continue | |
2021-07-11T00:40:32.3349153Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3349629Z else: | |
2021-07-11T00:40:32.3349973Z try: | |
2021-07-11T00:40:32.3351063Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3352181Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj\\fixtures.db' | |
2021-07-11T00:40:32.3353071Z | |
2021-07-11T00:40:32.3353715Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3354268Z | |
2021-07-11T00:40:32.3354841Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3355334Z | |
2021-07-11T00:40:32.3364133Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3364868Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj\\fixtures.db' | |
2021-07-11T00:40:32.3366656Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7E21AC0>) | |
2021-07-11T00:40:32.3367532Z | |
2021-07-11T00:40:32.3367947Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3368570Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3369158Z def resetperms(path): | |
2021-07-11T00:40:32.3369777Z try: | |
2021-07-11T00:40:32.3370185Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3370710Z except AttributeError: | |
2021-07-11T00:40:32.3371219Z pass | |
2021-07-11T00:40:32.3371624Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3372000Z | |
2021-07-11T00:40:32.3372309Z try: | |
2021-07-11T00:40:32.3373361Z if path != name: | |
2021-07-11T00:40:32.3373900Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3374471Z resetperms(path) | |
2021-07-11T00:40:32.3374844Z | |
2021-07-11T00:40:32.3375367Z try: | |
2021-07-11T00:40:32.3375752Z > _os.unlink(path) | |
2021-07-11T00:40:32.3376838Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj\\fixtures.db' | |
2021-07-11T00:40:32.3381250Z | |
2021-07-11T00:40:32.3381940Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3382506Z | |
2021-07-11T00:40:32.3383777Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3384270Z | |
2021-07-11T00:40:32.3384816Z table_metadata = {}, querystring = '_search=te*+AND+do*', expected_rows = [] | |
2021-07-11T00:40:32.3385283Z | |
2021-07-11T00:40:32.3385758Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3386556Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3387177Z [ | |
2021-07-11T00:40:32.3387482Z ( | |
2021-07-11T00:40:32.3387821Z {}, | |
2021-07-11T00:40:32.3388210Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3388602Z [], | |
2021-07-11T00:40:32.3388913Z ), | |
2021-07-11T00:40:32.3389236Z ( | |
2021-07-11T00:40:32.3389619Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3390078Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3390557Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3391015Z ), | |
2021-07-11T00:40:32.3391323Z ( | |
2021-07-11T00:40:32.3391648Z {}, | |
2021-07-11T00:40:32.3392098Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3392655Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3393068Z ), | |
2021-07-11T00:40:32.3394135Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3394644Z ( | |
2021-07-11T00:40:32.3395026Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3395591Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3396059Z [], | |
2021-07-11T00:40:32.3396384Z ), | |
2021-07-11T00:40:32.3396685Z ], | |
2021-07-11T00:40:32.3396990Z ) | |
2021-07-11T00:40:32.3397563Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3398219Z with make_app_client( | |
2021-07-11T00:40:32.3398891Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3399497Z ) as client: | |
2021-07-11T00:40:32.3400155Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3400977Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3401383Z | |
2021-07-11T00:40:32.3401866Z D:\a\datasette\datasette\tests\test_api.py:1102: | |
2021-07-11T00:40:32.3402402Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3403077Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3403726Z next(self.gen) | |
2021-07-11T00:40:32.3404893Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3405537Z yield TestClient(ds) | |
2021-07-11T00:40:32.3406221Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3406876Z self.cleanup() | |
2021-07-11T00:40:32.3407553Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3408255Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3408934Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3409696Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3410425Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3411163Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3412641Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3413510Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3414322Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3415568Z cls._rmtree(path) | |
2021-07-11T00:40:32.3416231Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3416975Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3417715Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3418411Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3419155Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3419904Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3420423Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3420701Z | |
2021-07-11T00:40:32.3421331Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj\\fixtures.db' | |
2021-07-11T00:40:32.3422283Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C30040> | |
2021-07-11T00:40:32.3422846Z | |
2021-07-11T00:40:32.3423263Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3423704Z try: | |
2021-07-11T00:40:32.3424144Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3425694Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxsrfhhnj\\fixtures.db' | |
2021-07-11T00:40:32.3426464Z | |
2021-07-11T00:40:32.3427128Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3428008Z __________ test_table_filter_extra_where_disabled_if_no_sql_allowed ___________ | |
2021-07-11T00:40:32.3428832Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3429331Z | |
2021-07-11T00:40:32.3429864Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn' | |
2021-07-11T00:40:32.3430742Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB919CA0> | |
2021-07-11T00:40:32.3431339Z | |
2021-07-11T00:40:32.3431768Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3432198Z try: | |
2021-07-11T00:40:32.3432653Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3433181Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3433654Z except OSError: | |
2021-07-11T00:40:32.3434196Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3434696Z entries = [] | |
2021-07-11T00:40:32.3435127Z for entry in entries: | |
2021-07-11T00:40:32.3435599Z fullname = entry.path | |
2021-07-11T00:40:32.3436651Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3437051Z try: | |
2021-07-11T00:40:32.3437472Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3438036Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3443304Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3443931Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3444594Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3445177Z except OSError: | |
2021-07-11T00:40:32.3445782Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3446992Z continue | |
2021-07-11T00:40:32.3447492Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3447972Z else: | |
2021-07-11T00:40:32.3448320Z try: | |
2021-07-11T00:40:32.3448734Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3449830Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn\\fixtures.db' | |
2021-07-11T00:40:32.3450905Z | |
2021-07-11T00:40:32.3451562Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3452114Z | |
2021-07-11T00:40:32.3452686Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3453175Z | |
2021-07-11T00:40:32.3453589Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3454285Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn\\fixtures.db' | |
2021-07-11T00:40:32.3455552Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB50A3C0>) | |
2021-07-11T00:40:32.3456409Z | |
2021-07-11T00:40:32.3457378Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3458011Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3458593Z def resetperms(path): | |
2021-07-11T00:40:32.3459016Z try: | |
2021-07-11T00:40:32.3459423Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3459956Z except AttributeError: | |
2021-07-11T00:40:32.3460415Z pass | |
2021-07-11T00:40:32.3460859Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3461239Z | |
2021-07-11T00:40:32.3461549Z try: | |
2021-07-11T00:40:32.3461929Z if path != name: | |
2021-07-11T00:40:32.3462461Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3463029Z resetperms(path) | |
2021-07-11T00:40:32.3463406Z | |
2021-07-11T00:40:32.3463733Z try: | |
2021-07-11T00:40:32.3464111Z > _os.unlink(path) | |
2021-07-11T00:40:32.3465189Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn\\fixtures.db' | |
2021-07-11T00:40:32.3466074Z | |
2021-07-11T00:40:32.3466733Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3467307Z | |
2021-07-11T00:40:32.3468446Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3468917Z | |
2021-07-11T00:40:32.3469439Z def test_table_filter_extra_where_disabled_if_no_sql_allowed(): | |
2021-07-11T00:40:32.3470153Z with make_app_client(metadata={"allow_sql": {}}) as client: | |
2021-07-11T00:40:32.3471041Z response = client.get("/fixtures/facetable.json?_where=neighborhood='Dogpatch'") | |
2021-07-11T00:40:32.3471839Z assert 403 == response.status | |
2021-07-11T00:40:32.3472474Z > assert "_where= is not allowed" == response.json["error"] | |
2021-07-11T00:40:32.3472904Z | |
2021-07-11T00:40:32.3473382Z D:\a\datasette\datasette\tests\test_api.py:1249: | |
2021-07-11T00:40:32.3473913Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3474582Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3475232Z next(self.gen) | |
2021-07-11T00:40:32.3475859Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3476494Z yield TestClient(ds) | |
2021-07-11T00:40:32.3477170Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3477825Z self.cleanup() | |
2021-07-11T00:40:32.3481962Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3482734Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3483411Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3484173Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3484900Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3485608Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3486337Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3487247Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3488085Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3489382Z cls._rmtree(path) | |
2021-07-11T00:40:32.3490043Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3490818Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3491553Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3492247Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3492994Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3493740Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3494264Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3494540Z | |
2021-07-11T00:40:32.3495131Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn\\fixtures.db' | |
2021-07-11T00:40:32.3496092Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCA7E4C0> | |
2021-07-11T00:40:32.3496671Z | |
2021-07-11T00:40:32.3497088Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3497536Z try: | |
2021-07-11T00:40:32.3497975Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3499559Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptyh356wn\\fixtures.db' | |
2021-07-11T00:40:32.3500334Z | |
2021-07-11T00:40:32.3501031Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3502067Z _ test_searchmode[table_metadata2-_search=te*+AND+do*&_searchmode=raw-expected_rows2] _ | |
2021-07-11T00:40:32.3503032Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3503532Z | |
2021-07-11T00:40:32.3504084Z sql_time_limit_ms = None, max_returned_rows = None, cors = False, memory = False | |
2021-07-11T00:40:32.3504922Z config = {'default_page_size': 50, 'max_returned_rows': 100, 'num_sql_threads': 1, 'sql_time_limit_ms': 200} | |
2021-07-11T00:40:32.3505764Z filename = 'fixtures.db', is_immutable = False, extra_databases = None | |
2021-07-11T00:40:32.3506529Z inspect_data = None, static_mounts = None, template_dir = None | |
2021-07-11T00:40:32.3507234Z metadata = {'databases': {'fixtures': {'tables': {'searchable': {}}}}} | |
2021-07-11T00:40:32.3507794Z crossdb = False | |
2021-07-11T00:40:32.3509227Z | |
2021-07-11T00:40:32.3510379Z @contextlib.contextmanager | |
2021-07-11T00:40:32.3510997Z def make_app_client( | |
2021-07-11T00:40:32.3511438Z sql_time_limit_ms=None, | |
2021-07-11T00:40:32.3511905Z max_returned_rows=None, | |
2021-07-11T00:40:32.3512322Z cors=False, | |
2021-07-11T00:40:32.3512718Z memory=False, | |
2021-07-11T00:40:32.3513103Z config=None, | |
2021-07-11T00:40:32.3513559Z filename="fixtures.db", | |
2021-07-11T00:40:32.3514029Z is_immutable=False, | |
2021-07-11T00:40:32.3514509Z extra_databases=None, | |
2021-07-11T00:40:32.3515007Z inspect_data=None, | |
2021-07-11T00:40:32.3515444Z static_mounts=None, | |
2021-07-11T00:40:32.3515895Z template_dir=None, | |
2021-07-11T00:40:32.3516321Z metadata=None, | |
2021-07-11T00:40:32.3516735Z crossdb=False, | |
2021-07-11T00:40:32.3517082Z ): | |
2021-07-11T00:40:32.3517700Z with tempfile.TemporaryDirectory() as tmpdir: | |
2021-07-11T00:40:32.3518484Z filepath = os.path.join(tmpdir, filename) | |
2021-07-11T00:40:32.3519045Z if is_immutable: | |
2021-07-11T00:40:32.3519438Z files = [] | |
2021-07-11T00:40:32.3519890Z immutables = [filepath] | |
2021-07-11T00:40:32.3520907Z else: | |
2021-07-11T00:40:32.3521321Z files = [filepath] | |
2021-07-11T00:40:32.3521767Z immutables = [] | |
2021-07-11T00:40:32.3522286Z conn = sqlite3.connect(filepath) | |
2021-07-11T00:40:32.3522907Z conn.executescript(TABLES) | |
2021-07-11T00:40:32.3523650Z for sql, params in TABLE_PARAMETERIZED_SQL: | |
2021-07-11T00:40:32.3524238Z with conn: | |
2021-07-11T00:40:32.3524708Z conn.execute(sql, params) | |
2021-07-11T00:40:32.3525257Z if extra_databases is not None: | |
2021-07-11T00:40:32.3525918Z for extra_filename, extra_sql in extra_databases.items(): | |
2021-07-11T00:40:32.3526711Z extra_filepath = os.path.join(tmpdir, extra_filename) | |
2021-07-11T00:40:32.3527535Z sqlite3.connect(extra_filepath).executescript(extra_sql) | |
2021-07-11T00:40:32.3528316Z # Insert at start to help test /-/databases ordering: | |
2021-07-11T00:40:32.3528974Z files.insert(0, extra_filepath) | |
2021-07-11T00:40:32.3529586Z os.chdir(os.path.dirname(filepath)) | |
2021-07-11T00:40:32.3530135Z config = config or {} | |
2021-07-11T00:40:32.3530553Z for key, value in { | |
2021-07-11T00:40:32.3531613Z "default_page_size": 50, | |
2021-07-11T00:40:32.3532155Z "max_returned_rows": max_returned_rows or 100, | |
2021-07-11T00:40:32.3532746Z "sql_time_limit_ms": sql_time_limit_ms or 200, | |
2021-07-11T00:40:32.3533364Z # Default is 3 but this results in "too many open files" | |
2021-07-11T00:40:32.3533998Z # errors when running the full test suite: | |
2021-07-11T00:40:32.3534522Z "num_sql_threads": 1, | |
2021-07-11T00:40:32.3534908Z }.items(): | |
2021-07-11T00:40:32.3535321Z if key not in config: | |
2021-07-11T00:40:32.3535760Z config[key] = value | |
2021-07-11T00:40:32.3536203Z ds = Datasette( | |
2021-07-11T00:40:32.3536596Z files, | |
2021-07-11T00:40:32.3537055Z immutables=immutables, | |
2021-07-11T00:40:32.3537526Z memory=memory, | |
2021-07-11T00:40:32.3537936Z cors=cors, | |
2021-07-11T00:40:32.3538429Z metadata=metadata or METADATA, | |
2021-07-11T00:40:32.3538971Z plugins_dir=PLUGINS_DIR, | |
2021-07-11T00:40:32.3539441Z config=config, | |
2021-07-11T00:40:32.3539905Z inspect_data=inspect_data, | |
2021-07-11T00:40:32.3540430Z static_mounts=static_mounts, | |
2021-07-11T00:40:32.3540983Z template_dir=template_dir, | |
2021-07-11T00:40:32.3542032Z crossdb=crossdb, | |
2021-07-11T00:40:32.3542403Z ) | |
2021-07-11T00:40:32.3543016Z ds.sqlite_functions.append(("sleep", 1, lambda n: time.sleep(float(n)))) | |
2021-07-11T00:40:32.3543682Z > yield TestClient(ds) | |
2021-07-11T00:40:32.3543989Z | |
2021-07-11T00:40:32.3544487Z D:\a\datasette\datasette\tests\fixtures.py:156: | |
2021-07-11T00:40:32.3545030Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3545301Z | |
2021-07-11T00:40:32.3545856Z table_metadata = {}, querystring = '_search=te*+AND+do*&_searchmode=raw' | |
2021-07-11T00:40:32.3546680Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']] | |
2021-07-11T00:40:32.3547175Z | |
2021-07-11T00:40:32.3547656Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3548442Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3549055Z [ | |
2021-07-11T00:40:32.3549356Z ( | |
2021-07-11T00:40:32.3549677Z {}, | |
2021-07-11T00:40:32.3550058Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3550448Z [], | |
2021-07-11T00:40:32.3550757Z ), | |
2021-07-11T00:40:32.3554974Z ( | |
2021-07-11T00:40:32.3555383Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3555851Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3556346Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3556753Z ), | |
2021-07-11T00:40:32.3557073Z ( | |
2021-07-11T00:40:32.3557385Z {}, | |
2021-07-11T00:40:32.3557987Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3558591Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3559005Z ), | |
2021-07-11T00:40:32.3559510Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3560015Z ( | |
2021-07-11T00:40:32.3560394Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3560993Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3561490Z [], | |
2021-07-11T00:40:32.3561802Z ), | |
2021-07-11T00:40:32.3562117Z ], | |
2021-07-11T00:40:32.3562407Z ) | |
2021-07-11T00:40:32.3562996Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3563638Z with make_app_client( | |
2021-07-11T00:40:32.3564966Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3565580Z ) as client: | |
2021-07-11T00:40:32.3566247Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3567038Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3567731Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == [] | |
2021-07-11T00:40:32.3568511Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther'] | |
2021-07-11T00:40:32.3569161Z E Use -v to get the full diff | |
2021-07-11T00:40:32.3569468Z | |
2021-07-11T00:40:32.3570038Z D:\a\datasette\datasette\tests\test_api.py:1102: AssertionError | |
2021-07-11T00:40:32.3570503Z | |
2021-07-11T00:40:32.3571115Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3571607Z | |
2021-07-11T00:40:32.3572129Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60' | |
2021-07-11T00:40:32.3573027Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7F7FAF0> | |
2021-07-11T00:40:32.3573599Z | |
2021-07-11T00:40:32.3574012Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3575021Z try: | |
2021-07-11T00:40:32.3575467Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3576007Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3576471Z except OSError: | |
2021-07-11T00:40:32.3577012Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3577513Z entries = [] | |
2021-07-11T00:40:32.3577946Z for entry in entries: | |
2021-07-11T00:40:32.3578438Z fullname = entry.path | |
2021-07-11T00:40:32.3578915Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3579330Z try: | |
2021-07-11T00:40:32.3579743Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3580751Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3581717Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3582363Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3583017Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3583605Z except OSError: | |
2021-07-11T00:40:32.3584207Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3585384Z continue | |
2021-07-11T00:40:32.3585900Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3586364Z else: | |
2021-07-11T00:40:32.3586720Z try: | |
2021-07-11T00:40:32.3587119Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3588232Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60\\fixtures.db' | |
2021-07-11T00:40:32.3589140Z | |
2021-07-11T00:40:32.3589777Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3590326Z | |
2021-07-11T00:40:32.3591048Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3591592Z | |
2021-07-11T00:40:32.3592002Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3592722Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60\\fixtures.db' | |
2021-07-11T00:40:32.3593968Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7DB6780>) | |
2021-07-11T00:40:32.3594824Z | |
2021-07-11T00:40:32.3595245Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3596422Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3597022Z def resetperms(path): | |
2021-07-11T00:40:32.3597432Z try: | |
2021-07-11T00:40:32.3597848Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3598357Z except AttributeError: | |
2021-07-11T00:40:32.3598832Z pass | |
2021-07-11T00:40:32.3599232Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3599612Z | |
2021-07-11T00:40:32.3599926Z try: | |
2021-07-11T00:40:32.3600306Z if path != name: | |
2021-07-11T00:40:32.3600933Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3601578Z resetperms(path) | |
2021-07-11T00:40:32.3602085Z | |
2021-07-11T00:40:32.3602434Z try: | |
2021-07-11T00:40:32.3602897Z > _os.unlink(path) | |
2021-07-11T00:40:32.3604061Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60\\fixtures.db' | |
2021-07-11T00:40:32.3604945Z | |
2021-07-11T00:40:32.3605686Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3607005Z | |
2021-07-11T00:40:32.3607616Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3608136Z | |
2021-07-11T00:40:32.3608780Z table_metadata = {}, querystring = '_search=te*+AND+do*&_searchmode=raw' | |
2021-07-11T00:40:32.3609632Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']] | |
2021-07-11T00:40:32.3610150Z | |
2021-07-11T00:40:32.3610695Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.3611551Z "table_metadata,querystring,expected_rows", | |
2021-07-11T00:40:32.3612242Z [ | |
2021-07-11T00:40:32.3612623Z ( | |
2021-07-11T00:40:32.3613012Z {}, | |
2021-07-11T00:40:32.3613427Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3613881Z [], | |
2021-07-11T00:40:32.3614221Z ), | |
2021-07-11T00:40:32.3614620Z ( | |
2021-07-11T00:40:32.3615039Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3615562Z "_search=te*+AND+do*", | |
2021-07-11T00:40:32.3616119Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3617259Z ), | |
2021-07-11T00:40:32.3617645Z ( | |
2021-07-11T00:40:32.3617997Z {}, | |
2021-07-11T00:40:32.3618532Z "_search=te*+AND+do*&_searchmode=raw", | |
2021-07-11T00:40:32.3619115Z _SEARCHMODE_RAW_RESULTS, | |
2021-07-11T00:40:32.3619601Z ), | |
2021-07-11T00:40:32.3620137Z # Can be over-ridden with _searchmode=escaped | |
2021-07-11T00:40:32.3620703Z ( | |
2021-07-11T00:40:32.3621155Z {"searchmode": "raw"}, | |
2021-07-11T00:40:32.3621792Z "_search=te*+AND+do*&_searchmode=escaped", | |
2021-07-11T00:40:32.3622346Z [], | |
2021-07-11T00:40:32.3622693Z ), | |
2021-07-11T00:40:32.3623076Z ], | |
2021-07-11T00:40:32.3623402Z ) | |
2021-07-11T00:40:32.3624079Z def test_searchmode(table_metadata, querystring, expected_rows): | |
2021-07-11T00:40:32.3624756Z with make_app_client( | |
2021-07-11T00:40:32.3625500Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}} | |
2021-07-11T00:40:32.3626140Z ) as client: | |
2021-07-11T00:40:32.3627685Z response = client.get("/fixtures/searchable.json?" + querystring) | |
2021-07-11T00:40:32.3629180Z > assert expected_rows == response.json["rows"] | |
2021-07-11T00:40:32.3629618Z | |
2021-07-11T00:40:32.3630168Z D:\a\datasette\datasette\tests\test_api.py:1102: | |
2021-07-11T00:40:32.3630735Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3631531Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:131: in __exit__ | |
2021-07-11T00:40:32.3632333Z self.gen.throw(type, value, traceback) | |
2021-07-11T00:40:32.3633155Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3633869Z yield TestClient(ds) | |
2021-07-11T00:40:32.3635543Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3636334Z self.cleanup() | |
2021-07-11T00:40:32.3637037Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3638649Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3639371Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3640215Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3641013Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3641791Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3642612Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3643423Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3644266Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3644943Z cls._rmtree(path) | |
2021-07-11T00:40:32.3645673Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3646445Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3647273Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3648835Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3649607Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3650446Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3651022Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3651333Z | |
2021-07-11T00:40:32.3652005Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60\\fixtures.db' | |
2021-07-11T00:40:32.3653009Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7F7FE50> | |
2021-07-11T00:40:32.3653615Z | |
2021-07-11T00:40:32.3654115Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3654579Z try: | |
2021-07-11T00:40:32.3655097Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3656126Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp4fyueb60\\fixtures.db' | |
2021-07-11T00:40:32.3656965Z | |
2021-07-11T00:40:32.3657706Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3659211Z ___________________________ test_suggest_facets_off ___________________________ | |
2021-07-11T00:40:32.3660029Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3660576Z | |
2021-07-11T00:40:32.3661159Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd' | |
2021-07-11T00:40:32.3662126Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCDA5C10> | |
2021-07-11T00:40:32.3662732Z | |
2021-07-11T00:40:32.3663184Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3663704Z try: | |
2021-07-11T00:40:32.3664181Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3664788Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3665287Z except OSError: | |
2021-07-11T00:40:32.3666011Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3666633Z entries = [] | |
2021-07-11T00:40:32.3667136Z for entry in entries: | |
2021-07-11T00:40:32.3667648Z fullname = entry.path | |
2021-07-11T00:40:32.3668212Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3669370Z try: | |
2021-07-11T00:40:32.3669863Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3670504Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3671206Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3671913Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3672587Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3673238Z except OSError: | |
2021-07-11T00:40:32.3673877Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3674525Z continue | |
2021-07-11T00:40:32.3675072Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3675618Z else: | |
2021-07-11T00:40:32.3676046Z try: | |
2021-07-11T00:40:32.3676483Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3677682Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd\\fixtures.db' | |
2021-07-11T00:40:32.3679385Z | |
2021-07-11T00:40:32.3680061Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3680642Z | |
2021-07-11T00:40:32.3682720Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3683292Z | |
2021-07-11T00:40:32.3683771Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3684505Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd\\fixtures.db' | |
2021-07-11T00:40:32.3685847Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB5C4100>) | |
2021-07-11T00:40:32.3686749Z | |
2021-07-11T00:40:32.3687192Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3687902Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3688522Z def resetperms(path): | |
2021-07-11T00:40:32.3689015Z try: | |
2021-07-11T00:40:32.3690322Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3690907Z except AttributeError: | |
2021-07-11T00:40:32.3691449Z pass | |
2021-07-11T00:40:32.3691887Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3692351Z | |
2021-07-11T00:40:32.3692691Z try: | |
2021-07-11T00:40:32.3693139Z if path != name: | |
2021-07-11T00:40:32.3693711Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3694350Z resetperms(path) | |
2021-07-11T00:40:32.3694758Z | |
2021-07-11T00:40:32.3695169Z try: | |
2021-07-11T00:40:32.3695590Z > _os.unlink(path) | |
2021-07-11T00:40:32.3696739Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd\\fixtures.db' | |
2021-07-11T00:40:32.3698506Z | |
2021-07-11T00:40:32.3699250Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3700694Z | |
2021-07-11T00:40:32.3701387Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3701922Z | |
2021-07-11T00:40:32.3702348Z def test_suggest_facets_off(): | |
2021-07-11T00:40:32.3703069Z with make_app_client(config={"suggest_facets": False}) as client: | |
2021-07-11T00:40:32.3703744Z # Now suggested_facets should be [] | |
2021-07-11T00:40:32.3704550Z > assert [] == client.get("/fixtures/facetable.json").json["suggested_facets"] | |
2021-07-11T00:40:32.3705234Z | |
2021-07-11T00:40:32.3705803Z D:\a\datasette\datasette\tests\test_api.py:1696: | |
2021-07-11T00:40:32.3706427Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3707123Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3707853Z next(self.gen) | |
2021-07-11T00:40:32.3708498Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3709216Z yield TestClient(ds) | |
2021-07-11T00:40:32.3709984Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3713398Z self.cleanup() | |
2021-07-11T00:40:32.3714159Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3714903Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3715664Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3716443Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3717269Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3718003Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3718830Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3719677Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3720464Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3786996Z cls._rmtree(path) | |
2021-07-11T00:40:32.3787694Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3788454Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3789199Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3789904Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3790646Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3791514Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3792044Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3792329Z | |
2021-07-11T00:40:32.3792918Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd\\fixtures.db' | |
2021-07-11T00:40:32.3793891Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCDA59D0> | |
2021-07-11T00:40:32.3794468Z | |
2021-07-11T00:40:32.3794885Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3795333Z try: | |
2021-07-11T00:40:32.3795767Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3796769Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplo81qhcd\\fixtures.db' | |
2021-07-11T00:40:32.3798243Z | |
2021-07-11T00:40:32.3798899Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3799665Z ____________________________ test_allow_facet_off _____________________________ | |
2021-07-11T00:40:32.3800393Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3800964Z | |
2021-07-11T00:40:32.3801482Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i' | |
2021-07-11T00:40:32.3802337Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7BF6F70> | |
2021-07-11T00:40:32.3802904Z | |
2021-07-11T00:40:32.3803331Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3803763Z try: | |
2021-07-11T00:40:32.3804215Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3804741Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3805217Z except OSError: | |
2021-07-11T00:40:32.3805750Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3806266Z entries = [] | |
2021-07-11T00:40:32.3806685Z for entry in entries: | |
2021-07-11T00:40:32.3807172Z fullname = entry.path | |
2021-07-11T00:40:32.3808360Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3808829Z try: | |
2021-07-11T00:40:32.3809254Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3809814Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3810458Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3811128Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3811801Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3812405Z except OSError: | |
2021-07-11T00:40:32.3813025Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3813602Z continue | |
2021-07-11T00:40:32.3814112Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3814624Z else: | |
2021-07-11T00:40:32.3814968Z try: | |
2021-07-11T00:40:32.3815378Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3816463Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i\\fixtures.db' | |
2021-07-11T00:40:32.3817343Z | |
2021-07-11T00:40:32.3818030Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3819129Z | |
2021-07-11T00:40:32.3819702Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3820226Z | |
2021-07-11T00:40:32.3820641Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3821402Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i\\fixtures.db' | |
2021-07-11T00:40:32.3822666Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E677E100>) | |
2021-07-11T00:40:32.3823529Z | |
2021-07-11T00:40:32.3823938Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3824562Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3825146Z def resetperms(path): | |
2021-07-11T00:40:32.3825567Z try: | |
2021-07-11T00:40:32.3825984Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3826535Z except AttributeError: | |
2021-07-11T00:40:32.3826985Z pass | |
2021-07-11T00:40:32.3827385Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3827750Z | |
2021-07-11T00:40:32.3828095Z try: | |
2021-07-11T00:40:32.3828461Z if path != name: | |
2021-07-11T00:40:32.3829617Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3830186Z resetperms(path) | |
2021-07-11T00:40:32.3830560Z | |
2021-07-11T00:40:32.3830938Z try: | |
2021-07-11T00:40:32.3831314Z > _os.unlink(path) | |
2021-07-11T00:40:32.3832378Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i\\fixtures.db' | |
2021-07-11T00:40:32.3833261Z | |
2021-07-11T00:40:32.3833913Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3834478Z | |
2021-07-11T00:40:32.3835062Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3835536Z | |
2021-07-11T00:40:32.3835915Z def test_allow_facet_off(): | |
2021-07-11T00:40:32.3836511Z with make_app_client(config={"allow_facet": False}) as client: | |
2021-07-11T00:40:32.3837326Z assert 400 == client.get("/fixtures/facetable.json?_facet=planet_int").status | |
2021-07-11T00:40:32.3838077Z # Should not suggest any facets either: | |
2021-07-11T00:40:32.3838833Z > assert [] == client.get("/fixtures/facetable.json").json["suggested_facets"] | |
2021-07-11T00:40:32.3839911Z | |
2021-07-11T00:40:32.3840381Z D:\a\datasette\datasette\tests\test_api.py:1690: | |
2021-07-11T00:40:32.3841068Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3841838Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3842501Z next(self.gen) | |
2021-07-11T00:40:32.3843155Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3843788Z yield TestClient(ds) | |
2021-07-11T00:40:32.3844471Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3845116Z self.cleanup() | |
2021-07-11T00:40:32.3845795Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3846482Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3847183Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3847973Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3848693Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3849406Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3850681Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3851518Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3852292Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3852941Z cls._rmtree(path) | |
2021-07-11T00:40:32.3853597Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3854347Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3855083Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3855779Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3856526Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3857273Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3857800Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3858086Z | |
2021-07-11T00:40:32.3858658Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i\\fixtures.db' | |
2021-07-11T00:40:32.3859622Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C1D550> | |
2021-07-11T00:40:32.3864318Z | |
2021-07-11T00:40:32.3864785Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3865236Z try: | |
2021-07-11T00:40:32.3865664Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3866643Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8lu_x44i\\fixtures.db' | |
2021-07-11T00:40:32.3867423Z | |
2021-07-11T00:40:32.3868102Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3869024Z ______________________________ test_trace[False] ______________________________ | |
2021-07-11T00:40:32.3869736Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3870253Z | |
2021-07-11T00:40:32.3871438Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr' | |
2021-07-11T00:40:32.3872322Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB7AEA60> | |
2021-07-11T00:40:32.3872894Z | |
2021-07-11T00:40:32.3873316Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3873768Z try: | |
2021-07-11T00:40:32.3874261Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3874783Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3875248Z except OSError: | |
2021-07-11T00:40:32.3875770Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3876273Z entries = [] | |
2021-07-11T00:40:32.3876701Z for entry in entries: | |
2021-07-11T00:40:32.3877177Z fullname = entry.path | |
2021-07-11T00:40:32.3877670Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3878072Z try: | |
2021-07-11T00:40:32.3878599Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3879224Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3879872Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3880486Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3881799Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3882397Z except OSError: | |
2021-07-11T00:40:32.3883015Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3883593Z continue | |
2021-07-11T00:40:32.3884099Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3884598Z else: | |
2021-07-11T00:40:32.3884959Z try: | |
2021-07-11T00:40:32.3885372Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3886478Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr\\fixtures.db' | |
2021-07-11T00:40:32.3887432Z | |
2021-07-11T00:40:32.3888068Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3888610Z | |
2021-07-11T00:40:32.3889173Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3889659Z | |
2021-07-11T00:40:32.3890076Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3890830Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr\\fixtures.db' | |
2021-07-11T00:40:32.3892086Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB9927C0>) | |
2021-07-11T00:40:32.3893508Z | |
2021-07-11T00:40:32.3893919Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3894542Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3895132Z def resetperms(path): | |
2021-07-11T00:40:32.3895561Z try: | |
2021-07-11T00:40:32.3895969Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3896491Z except AttributeError: | |
2021-07-11T00:40:32.3896947Z pass | |
2021-07-11T00:40:32.3897367Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3897726Z | |
2021-07-11T00:40:32.3898036Z try: | |
2021-07-11T00:40:32.3898395Z if path != name: | |
2021-07-11T00:40:32.3898951Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3899523Z resetperms(path) | |
2021-07-11T00:40:32.3899897Z | |
2021-07-11T00:40:32.3900224Z try: | |
2021-07-11T00:40:32.3900602Z > _os.unlink(path) | |
2021-07-11T00:40:32.3901751Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr\\fixtures.db' | |
2021-07-11T00:40:32.3902651Z | |
2021-07-11T00:40:32.3903878Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3904449Z | |
2021-07-11T00:40:32.3905037Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3905513Z | |
2021-07-11T00:40:32.3905893Z trace_debug = False | |
2021-07-11T00:40:32.3906167Z | |
2021-07-11T00:40:32.3906731Z @pytest.mark.parametrize("trace_debug", (True, False)) | |
2021-07-11T00:40:32.3907393Z def test_trace(trace_debug): | |
2021-07-11T00:40:32.3908006Z with make_app_client(config={"trace_debug": trace_debug}) as client: | |
2021-07-11T00:40:32.3908805Z response = client.get("/fixtures/simple_primary_key.json?_trace=1") | |
2021-07-11T00:40:32.3909497Z > assert response.status == 200 | |
2021-07-11T00:40:32.3909845Z | |
2021-07-11T00:40:32.3910321Z D:\a\datasette\datasette\tests\test_api.py:1899: | |
2021-07-11T00:40:32.3910986Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3911708Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3912360Z next(self.gen) | |
2021-07-11T00:40:32.3912961Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3913610Z yield TestClient(ds) | |
2021-07-11T00:40:32.3914851Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3915521Z self.cleanup() | |
2021-07-11T00:40:32.3916185Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3916878Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3917555Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3918304Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3919037Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3919728Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3920474Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3921316Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3922091Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3922733Z cls._rmtree(path) | |
2021-07-11T00:40:32.3923395Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3927901Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3928691Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3929420Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3930152Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.3931021Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3931530Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3931802Z | |
2021-07-11T00:40:32.3932413Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr\\fixtures.db' | |
2021-07-11T00:40:32.3933410Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FB7AE820> | |
2021-07-11T00:40:32.3933984Z | |
2021-07-11T00:40:32.3935046Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3935483Z try: | |
2021-07-11T00:40:32.3935929Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3936918Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp6jk31wpr\\fixtures.db' | |
2021-07-11T00:40:32.3937681Z | |
2021-07-11T00:40:32.3938357Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.3939155Z ________________________ test_config_force_https_urls _________________________ | |
2021-07-11T00:40:32.3939902Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.3940439Z | |
2021-07-11T00:40:32.3941028Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w' | |
2021-07-11T00:40:32.3941901Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E691C310> | |
2021-07-11T00:40:32.3942452Z | |
2021-07-11T00:40:32.3942866Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.3943309Z try: | |
2021-07-11T00:40:32.3943753Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.3944295Z entries = list(scandir_it) | |
2021-07-11T00:40:32.3944763Z except OSError: | |
2021-07-11T00:40:32.3945891Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.3946395Z entries = [] | |
2021-07-11T00:40:32.3946825Z for entry in entries: | |
2021-07-11T00:40:32.3947301Z fullname = entry.path | |
2021-07-11T00:40:32.3947795Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.3948211Z try: | |
2021-07-11T00:40:32.3948625Z if entry.is_symlink(): | |
2021-07-11T00:40:32.3949395Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.3950032Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.3950661Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.3951531Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.3952136Z except OSError: | |
2021-07-11T00:40:32.3952734Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3953299Z continue | |
2021-07-11T00:40:32.3953794Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.3954258Z else: | |
2021-07-11T00:40:32.3954613Z try: | |
2021-07-11T00:40:32.3955017Z > os.unlink(fullname) | |
2021-07-11T00:40:32.3956745Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w\\fixtures.db' | |
2021-07-11T00:40:32.3957642Z | |
2021-07-11T00:40:32.3958274Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.3958839Z | |
2021-07-11T00:40:32.3959438Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3959912Z | |
2021-07-11T00:40:32.3960323Z func = <built-in function unlink> | |
2021-07-11T00:40:32.3961080Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w\\fixtures.db' | |
2021-07-11T00:40:32.3962331Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7C06740>) | |
2021-07-11T00:40:32.3963177Z | |
2021-07-11T00:40:32.3963589Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.3964208Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.3964804Z def resetperms(path): | |
2021-07-11T00:40:32.3965219Z try: | |
2021-07-11T00:40:32.3966210Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.3966716Z except AttributeError: | |
2021-07-11T00:40:32.3967186Z pass | |
2021-07-11T00:40:32.3967585Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.3967964Z | |
2021-07-11T00:40:32.3968274Z try: | |
2021-07-11T00:40:32.3968693Z if path != name: | |
2021-07-11T00:40:32.3969229Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.3969813Z resetperms(path) | |
2021-07-11T00:40:32.3970193Z | |
2021-07-11T00:40:32.3970521Z try: | |
2021-07-11T00:40:32.3970966Z > _os.unlink(path) | |
2021-07-11T00:40:32.3972035Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w\\fixtures.db' | |
2021-07-11T00:40:32.3972931Z | |
2021-07-11T00:40:32.3973590Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.3974149Z | |
2021-07-11T00:40:32.3974735Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.3975225Z | |
2021-07-11T00:40:32.3975641Z def test_config_force_https_urls(): | |
2021-07-11T00:40:32.3976862Z with make_app_client(config={"force_https_urls": True}) as client: | |
2021-07-11T00:40:32.3977674Z response = client.get("/fixtures/facetable.json?_size=3&_facet=state") | |
2021-07-11T00:40:32.3978509Z assert response.json["next_url"].startswith("https://") | |
2021-07-11T00:40:32.3979286Z assert response.json["facet_results"]["state"]["results"][0][ | |
2021-07-11T00:40:32.3979853Z "toggle_url" | |
2021-07-11T00:40:32.3980303Z ].startswith("https://") | |
2021-07-11T00:40:32.3981052Z assert response.json["suggested_facets"][0]["toggle_url"].startswith("https://") | |
2021-07-11T00:40:32.3982030Z # Also confirm that request.url and request.scheme are set correctly | |
2021-07-11T00:40:32.3982779Z response = client.get("/") | |
2021-07-11T00:40:32.3983508Z assert client.ds._last_request.url.startswith("https://") | |
2021-07-11T00:40:32.3984301Z > assert client.ds._last_request.scheme == "https" | |
2021-07-11T00:40:32.3984741Z | |
2021-07-11T00:40:32.3985235Z D:\a\datasette\datasette\tests\test_api.py:1869: | |
2021-07-11T00:40:32.3985762Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.3987014Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.3987682Z next(self.gen) | |
2021-07-11T00:40:32.3988295Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.3988944Z yield TestClient(ds) | |
2021-07-11T00:40:32.3989612Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.3990276Z self.cleanup() | |
2021-07-11T00:40:32.3992582Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.3993319Z self._rmtree(self.name) | |
2021-07-11T00:40:32.3993999Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.3994756Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.3995477Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.3996189Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.3996930Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.3997684Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.3998455Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.3999098Z cls._rmtree(path) | |
2021-07-11T00:40:32.3999756Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4001337Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4002085Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4002812Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4003544Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4004307Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4004815Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4005089Z | |
2021-07-11T00:40:32.4005688Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w\\fixtures.db' | |
2021-07-11T00:40:32.4006628Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C3DC10> | |
2021-07-11T00:40:32.4007197Z | |
2021-07-11T00:40:32.4007628Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4008059Z try: | |
2021-07-11T00:40:32.4008509Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4009506Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpd4x4yl4w\\fixtures.db' | |
2021-07-11T00:40:32.4010279Z | |
2021-07-11T00:40:32.4011614Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4012377Z ______________________________ test_trace[True] _______________________________ | |
2021-07-11T00:40:32.4013098Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4013607Z | |
2021-07-11T00:40:32.4014126Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85' | |
2021-07-11T00:40:32.4015008Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C65280> | |
2021-07-11T00:40:32.4015571Z | |
2021-07-11T00:40:32.4016008Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4016469Z try: | |
2021-07-11T00:40:32.4016912Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4017562Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4018081Z except OSError: | |
2021-07-11T00:40:32.4042048Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4042569Z entries = [] | |
2021-07-11T00:40:32.4043003Z for entry in entries: | |
2021-07-11T00:40:32.4043478Z fullname = entry.path | |
2021-07-11T00:40:32.4043969Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4044385Z try: | |
2021-07-11T00:40:32.4044797Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4045375Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4046066Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4046691Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4047339Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4047939Z except OSError: | |
2021-07-11T00:40:32.4048585Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4049171Z continue | |
2021-07-11T00:40:32.4049677Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4050142Z else: | |
2021-07-11T00:40:32.4050505Z try: | |
2021-07-11T00:40:32.4050981Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4052102Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85\\fixtures.db' | |
2021-07-11T00:40:32.4053005Z | |
2021-07-11T00:40:32.4053636Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4054204Z | |
2021-07-11T00:40:32.4054823Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4055296Z | |
2021-07-11T00:40:32.4055708Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4056453Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85\\fixtures.db' | |
2021-07-11T00:40:32.4057734Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7EC2600>) | |
2021-07-11T00:40:32.4058611Z | |
2021-07-11T00:40:32.4059036Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4059663Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4060263Z def resetperms(path): | |
2021-07-11T00:40:32.4060678Z try: | |
2021-07-11T00:40:32.4061209Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4061740Z except AttributeError: | |
2021-07-11T00:40:32.4062219Z pass | |
2021-07-11T00:40:32.4062622Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4063008Z | |
2021-07-11T00:40:32.4063319Z try: | |
2021-07-11T00:40:32.4063696Z if path != name: | |
2021-07-11T00:40:32.4064233Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4064798Z resetperms(path) | |
2021-07-11T00:40:32.4065175Z | |
2021-07-11T00:40:32.4065508Z try: | |
2021-07-11T00:40:32.4065904Z > _os.unlink(path) | |
2021-07-11T00:40:32.4066986Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85\\fixtures.db' | |
2021-07-11T00:40:32.4067912Z | |
2021-07-11T00:40:32.4068581Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4069134Z | |
2021-07-11T00:40:32.4069719Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4070207Z | |
2021-07-11T00:40:32.4070545Z trace_debug = True | |
2021-07-11T00:40:32.4070875Z | |
2021-07-11T00:40:32.4071451Z @pytest.mark.parametrize("trace_debug", (True, False)) | |
2021-07-11T00:40:32.4072102Z def test_trace(trace_debug): | |
2021-07-11T00:40:32.4073487Z with make_app_client(config={"trace_debug": trace_debug}) as client: | |
2021-07-11T00:40:32.4074365Z response = client.get("/fixtures/simple_primary_key.json?_trace=1") | |
2021-07-11T00:40:32.4075064Z > assert response.status == 200 | |
2021-07-11T00:40:32.4075412Z | |
2021-07-11T00:40:32.4075878Z D:\a\datasette\datasette\tests\test_api.py:1899: | |
2021-07-11T00:40:32.4076415Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4077074Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4077730Z next(self.gen) | |
2021-07-11T00:40:32.4078340Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4078983Z yield TestClient(ds) | |
2021-07-11T00:40:32.4079662Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4080303Z self.cleanup() | |
2021-07-11T00:40:32.4081067Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4081752Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4082443Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4083185Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4083921Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4084616Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4085357Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4086130Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4086887Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4087539Z cls._rmtree(path) | |
2021-07-11T00:40:32.4088181Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4088926Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4089644Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4090349Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4091141Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4091897Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4092411Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4092673Z | |
2021-07-11T00:40:32.4093277Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85\\fixtures.db' | |
2021-07-11T00:40:32.4094225Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E7C65B80> | |
2021-07-11T00:40:32.4094798Z | |
2021-07-11T00:40:32.4095227Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4095653Z try: | |
2021-07-11T00:40:32.4096096Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4097125Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmphullrt85\\fixtures.db' | |
2021-07-11T00:40:32.4097881Z | |
2021-07-11T00:40:32.4098553Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4099426Z _______________ test_generated_columns_are_visible_in_datasette _______________ | |
2021-07-11T00:40:32.4100230Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4100741Z | |
2021-07-11T00:40:32.4101338Z sql_time_limit_ms = None, max_returned_rows = None, cors = False, memory = False | |
2021-07-11T00:40:32.4102115Z config = None, filename = 'fixtures.db', is_immutable = False | |
2021-07-11T00:40:32.4103237Z extra_databases = {'generated.db': '\n CREATE TABLE generated_columns (\n body TEXT,\n ...ated_columns (body) VALUES (\n \'{"number": 1, "string": "This is a string"}\'\n );'} | |
2021-07-11T00:40:32.4104442Z inspect_data = None, static_mounts = None, template_dir = None, metadata = None | |
2021-07-11T00:40:32.4105103Z crossdb = False | |
2021-07-11T00:40:32.4105366Z | |
2021-07-11T00:40:32.4105851Z @contextlib.contextmanager | |
2021-07-11T00:40:32.4106424Z def make_app_client( | |
2021-07-11T00:40:32.4106863Z sql_time_limit_ms=None, | |
2021-07-11T00:40:32.4107323Z max_returned_rows=None, | |
2021-07-11T00:40:32.4107737Z cors=False, | |
2021-07-11T00:40:32.4108136Z memory=False, | |
2021-07-11T00:40:32.4108521Z config=None, | |
2021-07-11T00:40:32.4108976Z filename="fixtures.db", | |
2021-07-11T00:40:32.4109454Z is_immutable=False, | |
2021-07-11T00:40:32.4109915Z extra_databases=None, | |
2021-07-11T00:40:32.4110377Z inspect_data=None, | |
2021-07-11T00:40:32.4110871Z static_mounts=None, | |
2021-07-11T00:40:32.4111322Z template_dir=None, | |
2021-07-11T00:40:32.4111748Z metadata=None, | |
2021-07-11T00:40:32.4112167Z crossdb=False, | |
2021-07-11T00:40:32.4112514Z ): | |
2021-07-11T00:40:32.4113134Z with tempfile.TemporaryDirectory() as tmpdir: | |
2021-07-11T00:40:32.4113918Z filepath = os.path.join(tmpdir, filename) | |
2021-07-11T00:40:32.4114470Z if is_immutable: | |
2021-07-11T00:40:32.4114864Z files = [] | |
2021-07-11T00:40:32.4115333Z immutables = [filepath] | |
2021-07-11T00:40:32.4115807Z else: | |
2021-07-11T00:40:32.4116205Z files = [filepath] | |
2021-07-11T00:40:32.4116648Z immutables = [] | |
2021-07-11T00:40:32.4117161Z conn = sqlite3.connect(filepath) | |
2021-07-11T00:40:32.4117833Z conn.executescript(TABLES) | |
2021-07-11T00:40:32.4118464Z for sql, params in TABLE_PARAMETERIZED_SQL: | |
2021-07-11T00:40:32.4118985Z with conn: | |
2021-07-11T00:40:32.4119455Z conn.execute(sql, params) | |
2021-07-11T00:40:32.4120018Z if extra_databases is not None: | |
2021-07-11T00:40:32.4120680Z for extra_filename, extra_sql in extra_databases.items(): | |
2021-07-11T00:40:32.4121540Z extra_filepath = os.path.join(tmpdir, extra_filename) | |
2021-07-11T00:40:32.4122388Z > sqlite3.connect(extra_filepath).executescript(extra_sql) | |
2021-07-11T00:40:32.4123291Z E sqlite3.OperationalError: no such function: json_extract | |
2021-07-11T00:40:32.4123807Z | |
2021-07-11T00:40:32.4124408Z D:\a\datasette\datasette\tests\fixtures.py:127: OperationalError | |
2021-07-11T00:40:32.4124944Z | |
2021-07-11T00:40:32.4125539Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4126022Z | |
2021-07-11T00:40:32.4126522Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin' | |
2021-07-11T00:40:32.4127409Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E8391F70> | |
2021-07-11T00:40:32.4127965Z | |
2021-07-11T00:40:32.4128379Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4128819Z try: | |
2021-07-11T00:40:32.4129265Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4129811Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4130268Z except OSError: | |
2021-07-11T00:40:32.4130868Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4131368Z entries = [] | |
2021-07-11T00:40:32.4131797Z for entry in entries: | |
2021-07-11T00:40:32.4132287Z fullname = entry.path | |
2021-07-11T00:40:32.4132764Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4133175Z try: | |
2021-07-11T00:40:32.4133581Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4134151Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4134784Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4135404Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4136066Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4136781Z except OSError: | |
2021-07-11T00:40:32.4137398Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4137957Z continue | |
2021-07-11T00:40:32.4138462Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4138921Z else: | |
2021-07-11T00:40:32.4139271Z try: | |
2021-07-11T00:40:32.4139669Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4140871Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin\\fixtures.db' | |
2021-07-11T00:40:32.4141758Z | |
2021-07-11T00:40:32.4142392Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4142939Z | |
2021-07-11T00:40:32.4143519Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4144010Z | |
2021-07-11T00:40:32.4144422Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4145120Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin\\fixtures.db' | |
2021-07-11T00:40:32.4146363Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E81EEF00>) | |
2021-07-11T00:40:32.4147218Z | |
2021-07-11T00:40:32.4147659Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4148267Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4148858Z def resetperms(path): | |
2021-07-11T00:40:32.4149269Z try: | |
2021-07-11T00:40:32.4149701Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4150227Z except AttributeError: | |
2021-07-11T00:40:32.4150693Z pass | |
2021-07-11T00:40:32.4151157Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4151534Z | |
2021-07-11T00:40:32.4151845Z try: | |
2021-07-11T00:40:32.4152227Z if path != name: | |
2021-07-11T00:40:32.4152765Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4153332Z resetperms(path) | |
2021-07-11T00:40:32.4153721Z | |
2021-07-11T00:40:32.4154068Z try: | |
2021-07-11T00:40:32.4154476Z > _os.unlink(path) | |
2021-07-11T00:40:32.4155528Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin\\fixtures.db' | |
2021-07-11T00:40:32.4156449Z | |
2021-07-11T00:40:32.4157136Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4157694Z | |
2021-07-11T00:40:32.4158326Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4158811Z | |
2021-07-11T00:40:32.4159219Z @pytest.mark.skipif( | |
2021-07-11T00:40:32.4159722Z sqlite_version() < (3, 31, 0), | |
2021-07-11T00:40:32.4160307Z reason="generated columns were added in SQLite 3.31.0", | |
2021-07-11T00:40:32.4160863Z ) | |
2021-07-11T00:40:32.4161381Z def test_generated_columns_are_visible_in_datasette(): | |
2021-07-11T00:40:32.4161967Z > with make_app_client( | |
2021-07-11T00:40:32.4162444Z extra_databases={ | |
2021-07-11T00:40:32.4162923Z "generated.db": """ | |
2021-07-11T00:40:32.4163464Z CREATE TABLE generated_columns ( | |
2021-07-11T00:40:32.4163951Z body TEXT, | |
2021-07-11T00:40:32.4164553Z id INT GENERATED ALWAYS AS (json_extract(body, '$.number')) STORED, | |
2021-07-11T00:40:32.4165383Z consideration INT GENERATED ALWAYS AS (json_extract(body, '$.string')) STORED | |
2021-07-11T00:40:32.4165994Z ); | |
2021-07-11T00:40:32.4166500Z INSERT INTO generated_columns (body) VALUES ( | |
2021-07-11T00:40:32.4167106Z '{"number": 1, "string": "This is a string"}' | |
2021-07-11T00:40:32.4167686Z );""" | |
2021-07-11T00:40:32.4168007Z } | |
2021-07-11T00:40:32.4168356Z ) as client: | |
2021-07-11T00:40:32.4168595Z | |
2021-07-11T00:40:32.4169079Z D:\a\datasette\datasette\tests\test_api.py:2062: | |
2021-07-11T00:40:32.4169622Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4170284Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:113: in __enter__ | |
2021-07-11T00:40:32.4171046Z return next(self.gen) | |
2021-07-11T00:40:32.4171680Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4172327Z yield TestClient(ds) | |
2021-07-11T00:40:32.4172987Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4173643Z self.cleanup() | |
2021-07-11T00:40:32.4174300Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4174992Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4175690Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4176449Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4177206Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4177893Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4178631Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4179387Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4180155Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4180879Z cls._rmtree(path) | |
2021-07-11T00:40:32.4181523Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4182292Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4183012Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4183719Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4184473Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4185232Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4185743Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4186015Z | |
2021-07-11T00:40:32.4186604Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin\\fixtures.db' | |
2021-07-11T00:40:32.4187525Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E81A80D0> | |
2021-07-11T00:40:32.4188083Z | |
2021-07-11T00:40:32.4188529Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4188991Z try: | |
2021-07-11T00:40:32.4189437Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4190408Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_xgrdvin\\fixtures.db' | |
2021-07-11T00:40:32.4191212Z | |
2021-07-11T00:40:32.4191889Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4192802Z ________ test_serve_with_inspect_file_prepopulates_table_counts_cache _________ | |
2021-07-11T00:40:32.4193660Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4194174Z | |
2021-07-11T00:40:32.4194698Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j' | |
2021-07-11T00:40:32.4195587Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FD27A430> | |
2021-07-11T00:40:32.4196151Z | |
2021-07-11T00:40:32.4196568Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4197012Z try: | |
2021-07-11T00:40:32.4197453Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4197991Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4198451Z except OSError: | |
2021-07-11T00:40:32.4198994Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4199578Z entries = [] | |
2021-07-11T00:40:32.4200058Z for entry in entries: | |
2021-07-11T00:40:32.4200544Z fullname = entry.path | |
2021-07-11T00:40:32.4201086Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4201553Z try: | |
2021-07-11T00:40:32.4201963Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4202541Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4203175Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4203815Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4204492Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4205072Z except OSError: | |
2021-07-11T00:40:32.4205688Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4206256Z continue | |
2021-07-11T00:40:32.4206762Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4207227Z else: | |
2021-07-11T00:40:32.4207581Z try: | |
2021-07-11T00:40:32.4207981Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4209094Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j\\fixtures.db' | |
2021-07-11T00:40:32.4209993Z | |
2021-07-11T00:40:32.4210625Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4211252Z | |
2021-07-11T00:40:32.4211834Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4212319Z | |
2021-07-11T00:40:32.4212713Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4213462Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j\\fixtures.db' | |
2021-07-11T00:40:32.4214724Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FD278D40>) | |
2021-07-11T00:40:32.4215586Z | |
2021-07-11T00:40:32.4216012Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4216621Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4217216Z def resetperms(path): | |
2021-07-11T00:40:32.4217628Z try: | |
2021-07-11T00:40:32.4218042Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4218550Z except AttributeError: | |
2021-07-11T00:40:32.4219018Z pass | |
2021-07-11T00:40:32.4219416Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4219795Z | |
2021-07-11T00:40:32.4220132Z try: | |
2021-07-11T00:40:32.4220513Z if path != name: | |
2021-07-11T00:40:32.4221120Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4221676Z resetperms(path) | |
2021-07-11T00:40:32.4222059Z | |
2021-07-11T00:40:32.4222372Z try: | |
2021-07-11T00:40:32.4222769Z > _os.unlink(path) | |
2021-07-11T00:40:32.4223840Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j\\fixtures.db' | |
2021-07-11T00:40:32.4224733Z | |
2021-07-11T00:40:32.4225397Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4225961Z | |
2021-07-11T00:40:32.4226527Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4227011Z | |
2021-07-11T00:40:32.4227554Z def test_serve_with_inspect_file_prepopulates_table_counts_cache(): | |
2021-07-11T00:40:32.4228316Z inspect_data = {"fixtures": {"tables": {"hithere": {"count": 44}}}} | |
2021-07-11T00:40:32.4229094Z with make_app_client(inspect_data=inspect_data, is_immutable=True) as client: | |
2021-07-11T00:40:32.4229877Z assert inspect_data == client.ds.inspect_data | |
2021-07-11T00:40:32.4230645Z db = client.ds.databases["fixtures"] | |
2021-07-11T00:40:32.4231395Z > assert {"hithere": 44} == db.cached_table_counts | |
2021-07-11T00:40:32.4231766Z | |
2021-07-11T00:40:32.4232240Z D:\a\datasette\datasette\tests\test_cli.py:62: | |
2021-07-11T00:40:32.4232766Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4233437Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4234084Z next(self.gen) | |
2021-07-11T00:40:32.4234705Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4235356Z yield TestClient(ds) | |
2021-07-11T00:40:32.4236035Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4236690Z self.cleanup() | |
2021-07-11T00:40:32.4237369Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4238059Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4238758Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4239518Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4240235Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4241005Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4241733Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4242509Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4243274Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4243911Z cls._rmtree(path) | |
2021-07-11T00:40:32.4244565Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4245301Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4246039Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4246744Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4247528Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4248272Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4248795Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4249067Z | |
2021-07-11T00:40:32.4249712Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j\\fixtures.db' | |
2021-07-11T00:40:32.4250663Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FD27A550> | |
2021-07-11T00:40:32.4251352Z | |
2021-07-11T00:40:32.4251767Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4252210Z try: | |
2021-07-11T00:40:32.4252644Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4253667Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpiyotyg7j\\fixtures.db' | |
2021-07-11T00:40:32.4254466Z | |
2021-07-11T00:40:32.4255129Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4256116Z _ test_spatialite_error_if_attempt_to_open_spatialite[spatialite_paths1-True] _ | |
2021-07-11T00:40:32.4257058Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4257563Z | |
2021-07-11T00:40:32.4258058Z ensure_eventloop = None, spatialite_paths = ['/tmp'] | |
2021-07-11T00:40:32.4258668Z should_suggest_load_extension = True | |
2021-07-11T00:40:32.4259011Z | |
2021-07-11T00:40:32.4259493Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.4260187Z "spatialite_paths,should_suggest_load_extension", | |
2021-07-11T00:40:32.4260710Z ( | |
2021-07-11T00:40:32.4261112Z ([], False), | |
2021-07-11T00:40:32.4261496Z (["/tmp"], True), | |
2021-07-11T00:40:32.4261833Z ), | |
2021-07-11T00:40:32.4262137Z ) | |
2021-07-11T00:40:32.4262663Z def test_spatialite_error_if_attempt_to_open_spatialite( | |
2021-07-11T00:40:32.4263540Z ensure_eventloop, spatialite_paths, should_suggest_load_extension | |
2021-07-11T00:40:32.4264777Z ): | |
2021-07-11T00:40:32.4265475Z with mock.patch("datasette.utils.SPATIALITE_PATHS", spatialite_paths): | |
2021-07-11T00:40:32.4266256Z runner = CliRunner() | |
2021-07-11T00:40:32.4266744Z result = runner.invoke( | |
2021-07-11T00:40:32.4267435Z cli, ["serve", str(pathlib.Path(__file__).parent / "spatialite.db")] | |
2021-07-11T00:40:32.4267997Z ) | |
2021-07-11T00:40:32.4268429Z assert result.exit_code != 0 | |
2021-07-11T00:40:32.4269130Z assert "It looks like you're trying to load a SpatiaLite" in result.output | |
2021-07-11T00:40:32.4269930Z suggestion = "--load-extension=spatialite" | |
2021-07-11T00:40:32.4270576Z if should_suggest_load_extension: | |
2021-07-11T00:40:32.4271240Z > assert suggestion in result.output | |
2021-07-11T00:40:32.4272901Z E assert '--load-extension=spatialite' in "Usage: cli serve [OPTIONS] [FILES]...\nTry 'cli serve --help' for help.\n\nError: It looks like you're trying to load...abase without first loading the SpatiaLite module.\n\nRead more: https://docs.datasette.io/en/stable/spatialite.html\n" | |
2021-07-11T00:40:32.4275452Z E + where "Usage: cli serve [OPTIONS] [FILES]...\nTry 'cli serve --help' for help.\n\nError: It looks like you're trying to load...abase without first loading the SpatiaLite module.\n\nRead more: https://docs.datasette.io/en/stable/spatialite.html\n" = <Result SystemExit(2)>.output | |
2021-07-11T00:40:32.4276742Z | |
2021-07-11T00:40:32.4277333Z D:\a\datasette\datasette\tests\test_cli.py:84: AssertionError | |
2021-07-11T00:40:32.4277989Z _________________________________ test_static _________________________________ | |
2021-07-11T00:40:32.4278676Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4279193Z | |
2021-07-11T00:40:32.4280039Z config_dir_client = <datasette.utils.testing.TestClient object at 0x00000291FD297A30> | |
2021-07-11T00:40:32.4280727Z | |
2021-07-11T00:40:32.4281207Z def test_static(config_dir_client): | |
2021-07-11T00:40:32.4281849Z response = config_dir_client.get("/static/hello.css") | |
2021-07-11T00:40:32.4282488Z assert 200 == response.status | |
2021-07-11T00:40:32.4283057Z > assert CSS == response.text | |
2021-07-11T00:40:32.4283768Z E AssertionError: assert '\nbody { margin-top: 3em}\n' == '\r\nbody { m...top: 3em}\r\n' | |
2021-07-11T00:40:32.4284397Z E - | |
2021-07-11T00:40:32.4284614Z | |
2021-07-11T00:40:32.4284915Z E + | |
2021-07-11T00:40:32.4285313Z E - body { margin-top: 3em} | |
2021-07-11T00:40:32.4285606Z | |
2021-07-11T00:40:32.4285931Z E ? - | |
2021-07-11T00:40:32.4286333Z E + body { margin-top: 3em} | |
2021-07-11T00:40:32.4286637Z | |
2021-07-11T00:40:32.4287225Z D:\a\datasette\datasette\tests\test_config_dir.py:122: AssertionError | |
2021-07-11T00:40:32.4287950Z ____________________ test_json_array_with_blanks_and_nulls ____________________ | |
2021-07-11T00:40:32.4288703Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4289216Z | |
2021-07-11T00:40:32.4289644Z @pytest.mark.asyncio | |
2021-07-11T00:40:32.4290227Z async def test_json_array_with_blanks_and_nulls(): | |
2021-07-11T00:40:32.4290848Z ds = Datasette([], memory=True) | |
2021-07-11T00:40:32.4291484Z db = ds.add_database(Database(ds, memory_name="test_json_array")) | |
2021-07-11T00:40:32.4292248Z await db.execute_write("create table foo(json_column text)", block=True) | |
2021-07-11T00:40:32.4292910Z for value in ('["a", "b", "c"]', '["a", "b"]', "", None): | |
2021-07-11T00:40:32.4293417Z await db.execute_write( | |
2021-07-11T00:40:32.4294005Z "insert into foo (json_column) values (?)", [value], block=True | |
2021-07-11T00:40:32.4294501Z ) | |
2021-07-11T00:40:32.4295119Z response = await ds.client.get("/test_json_array/foo.json") | |
2021-07-11T00:40:32.4295799Z data = response.json() | |
2021-07-11T00:40:32.4296313Z > assert data["suggested_facets"] == [ | |
2021-07-11T00:40:32.4296746Z { | |
2021-07-11T00:40:32.4297119Z "name": "json_column", | |
2021-07-11T00:40:32.4297552Z "type": "array", | |
2021-07-11T00:40:32.4298242Z "toggle_url": "http://localhost/test_json_array/foo.json?_facet_array=json_column", | |
2021-07-11T00:40:32.4298857Z } | |
2021-07-11T00:40:32.4299169Z ] | |
2021-07-11T00:40:32.4299664Z E AssertionError: assert [] == [{'name': 'js...pe': 'array'}] | |
2021-07-11T00:40:32.4300692Z E Right contains one more item: {'name': 'json_column', 'toggle_url': 'http://localhost/test_json_array/foo.json?_facet_array=json_column', 'type': 'array'} | |
2021-07-11T00:40:32.4301638Z E Use -v to get the full diff | |
2021-07-11T00:40:32.4301941Z | |
2021-07-11T00:40:32.4302550Z D:\a\datasette\datasette\tests\test_facets.py:343: AssertionError | |
2021-07-11T00:40:32.4303431Z _________ test_build_where[args14-expected_where14-expected_params14] _________ | |
2021-07-11T00:40:32.4304337Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4304848Z | |
2021-07-11T00:40:32.4305348Z args = (('Availability+Info__arraycontains', 'yes'),) | |
2021-07-11T00:40:32.4306370Z expected_where = ['rowid in (\n select table.rowid from table, json_each([table].[Availability+Info]) j\n where j.value = :p0\n )'] | |
2021-07-11T00:40:32.4307228Z expected_params = ['yes'] | |
2021-07-11T00:40:32.4307535Z | |
2021-07-11T00:40:32.4308014Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.4308692Z "args,expected_where,expected_params", | |
2021-07-11T00:40:32.4309200Z [ | |
2021-07-11T00:40:32.4309710Z ((("name_english__contains", "foo"),), ['"name_english" like :p0'], ["%foo%"]), | |
2021-07-11T00:40:32.4310227Z ( | |
2021-07-11T00:40:32.4310642Z (("foo", "bar"), ("bar__contains", "baz")), | |
2021-07-11T00:40:32.4311200Z ['"bar" like :p0', '"foo" = :p1'], | |
2021-07-11T00:40:32.4311623Z ["%baz%", "bar"], | |
2021-07-11T00:40:32.4311959Z ), | |
2021-07-11T00:40:32.4312282Z ( | |
2021-07-11T00:40:32.4312743Z (("foo__startswith", "bar"), ("bar__endswith", "baz")), | |
2021-07-11T00:40:32.4313298Z ['"bar" like :p0', '"foo" like :p1'], | |
2021-07-11T00:40:32.4313717Z ["%baz", "bar%"], | |
2021-07-11T00:40:32.4314069Z ), | |
2021-07-11T00:40:32.4314374Z ( | |
2021-07-11T00:40:32.4314817Z (("foo__lt", "1"), ("bar__gt", "2"), ("baz__gte", "3"), ("bax__lte", "4")), | |
2021-07-11T00:40:32.4315361Z ['"bar" > :p0', '"bax" <= :p1', '"baz" >= :p2', '"foo" < :p3'], | |
2021-07-11T00:40:32.4315787Z [2, 4, 3, 1], | |
2021-07-11T00:40:32.4316117Z ), | |
2021-07-11T00:40:32.4316416Z ( | |
2021-07-11T00:40:32.4316820Z (("foo__like", "2%2"), ("zax__glob", "3*")), | |
2021-07-11T00:40:32.4317293Z ['"foo" like :p0', '"zax" glob :p1'], | |
2021-07-11T00:40:32.4317710Z ["2%2", "3*"], | |
2021-07-11T00:40:32.4318028Z ), | |
2021-07-11T00:40:32.4318452Z # Multiple like arguments: | |
2021-07-11T00:40:32.4318883Z ( | |
2021-07-11T00:40:32.4319306Z (("foo__like", "2%2"), ("foo__like", "3%3")), | |
2021-07-11T00:40:32.4319794Z ['"foo" like :p0', '"foo" like :p1'], | |
2021-07-11T00:40:32.4320201Z ["2%2", "3%3"], | |
2021-07-11T00:40:32.4320538Z ), | |
2021-07-11T00:40:32.4320949Z # notlike: | |
2021-07-11T00:40:32.4321318Z ( | |
2021-07-11T00:40:32.4321722Z (("foo__notlike", "2%2"),), | |
2021-07-11T00:40:32.4322155Z ['"foo" not like :p0'], | |
2021-07-11T00:40:32.4322525Z ["2%2"], | |
2021-07-11T00:40:32.4322857Z ), | |
2021-07-11T00:40:32.4323234Z ( | |
2021-07-11T00:40:32.4323734Z (("foo__isnull", "1"), ("baz__isnull", "1"), ("bar__gt", "10")), | |
2021-07-11T00:40:32.4324303Z ['"bar" > :p0', '"baz" is null', '"foo" is null'], | |
2021-07-11T00:40:32.4324729Z [10], | |
2021-07-11T00:40:32.4325059Z ), | |
2021-07-11T00:40:32.4325471Z ((("foo__in", "1,2,3"),), ["foo in (:p0, :p1, :p2)"], ["1", "2", "3"]), | |
2021-07-11T00:40:32.4325902Z # date | |
2021-07-11T00:40:32.4326345Z ((("foo__date", "1988-01-01"),), ['date("foo") = :p0'], ["1988-01-01"]), | |
2021-07-11T00:40:32.4327017Z # JSON array variants of __in (useful for unexpected characters) | |
2021-07-11T00:40:32.4327659Z ((("foo__in", "[1,2,3]"),), ["foo in (:p0, :p1, :p2)"], [1, 2, 3]), | |
2021-07-11T00:40:32.4328082Z ( | |
2021-07-11T00:40:32.4328480Z (("foo__in", '["dog,cat", "cat[dog]"]'),), | |
2021-07-11T00:40:32.4328926Z ["foo in (:p0, :p1)"], | |
2021-07-11T00:40:32.4329354Z ["dog,cat", "cat[dog]"], | |
2021-07-11T00:40:32.4329753Z ), | |
2021-07-11T00:40:32.4330177Z # Not in, and JSON array not in | |
2021-07-11T00:40:32.4330694Z ((("foo__notin", "1,2,3"),), ["foo not in (:p0, :p1, :p2)"], ["1", "2", "3"]), | |
2021-07-11T00:40:32.4331318Z ((("foo__notin", "[1,2,3]"),), ["foo not in (:p0, :p1, :p2)"], [1, 2, 3]), | |
2021-07-11T00:40:32.4331822Z # JSON arraycontains | |
2021-07-11T00:40:32.4332224Z ( | |
2021-07-11T00:40:32.4332765Z (("Availability+Info__arraycontains", "yes"),), | |
2021-07-11T00:40:32.4333285Z [ | |
2021-07-11T00:40:32.4334051Z "rowid in (\n select table.rowid from table, json_each([table].[Availability+Info]) j\n where j.value = :p0\n )" | |
2021-07-11T00:40:32.4334794Z ], | |
2021-07-11T00:40:32.4335161Z ["yes"], | |
2021-07-11T00:40:32.4335487Z ), | |
2021-07-11T00:40:32.4335806Z ], | |
2021-07-11T00:40:32.4336104Z ) | |
2021-07-11T00:40:32.4336652Z def test_build_where(args, expected_where, expected_params): | |
2021-07-11T00:40:32.4337296Z f = Filters(sorted(args)) | |
2021-07-11T00:40:32.4337894Z sql_bits, actual_params = f.build_where_clauses("table") | |
2021-07-11T00:40:32.4338495Z > assert expected_where == sql_bits | |
2021-07-11T00:40:32.4339097Z E AssertionError: assert ['rowid in (\...0\n )'] == [] | |
2021-07-11T00:40:32.4340164Z E Left contains one more item: 'rowid in (\n select table.rowid from table, json_each([table].[Availability+Info]) j\n where j.value = :p0\n )' | |
2021-07-11T00:40:32.4341125Z E Use -v to get the full diff | |
2021-07-11T00:40:32.4341425Z | |
2021-07-11T00:40:32.4342054Z D:\a\datasette\datasette\tests\test_filters.py:72: AssertionError | |
2021-07-11T00:40:32.4342786Z _________________________ test_custom_pages_view_name _________________________ | |
2021-07-11T00:40:32.4343536Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4344050Z | |
2021-07-11T00:40:32.4344845Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4345584Z | |
2021-07-11T00:40:32.4346067Z def test_custom_pages_view_name(custom_pages_client): | |
2021-07-11T00:40:32.4346734Z response = custom_pages_client.get("/about") | |
2021-07-11T00:40:32.4347329Z > assert 200 == response.status | |
2021-07-11T00:40:32.4347778Z E assert 200 == 404 | |
2021-07-11T00:40:32.4348651Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FF66A4F0>.status | |
2021-07-11T00:40:32.4349388Z | |
2021-07-11T00:40:32.4349987Z D:\a\datasette\datasette\tests\test_custom_pages.py:24: AssertionError | |
2021-07-11T00:40:32.4350734Z __________________________ test_request_is_available __________________________ | |
2021-07-11T00:40:32.4351612Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4352177Z | |
2021-07-11T00:40:32.4352985Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4353684Z | |
2021-07-11T00:40:32.4354176Z def test_request_is_available(custom_pages_client): | |
2021-07-11T00:40:32.4354845Z response = custom_pages_client.get("/request") | |
2021-07-11T00:40:32.4355455Z > assert 200 == response.status | |
2021-07-11T00:40:32.4355935Z E assert 200 == 404 | |
2021-07-11T00:40:32.4356784Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FF688790>.status | |
2021-07-11T00:40:32.4357509Z | |
2021-07-11T00:40:32.4358145Z D:\a\datasette\datasette\tests\test_custom_pages.py:30: AssertionError | |
2021-07-11T00:40:32.4358899Z _______________________ test_custom_pages_with_base_url _______________________ | |
2021-07-11T00:40:32.4359645Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4360146Z | |
2021-07-11T00:40:32.4361072Z custom_pages_client_with_base_url = <datasette.utils.testing.TestClient object at 0x00000291FF6883D0> | |
2021-07-11T00:40:32.4361824Z | |
2021-07-11T00:40:32.4362351Z def test_custom_pages_with_base_url(custom_pages_client_with_base_url): | |
2021-07-11T00:40:32.4363142Z response = custom_pages_client_with_base_url.get("/prefix/request") | |
2021-07-11T00:40:32.4363812Z > assert 200 == response.status | |
2021-07-11T00:40:32.4364263Z E assert 200 == 404 | |
2021-07-11T00:40:32.4365140Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FE3C33D0>.status | |
2021-07-11T00:40:32.4365859Z | |
2021-07-11T00:40:32.4366459Z D:\a\datasette\datasette\tests\test_custom_pages.py:36: AssertionError | |
2021-07-11T00:40:32.4367191Z __________________________ test_custom_pages_nested ___________________________ | |
2021-07-11T00:40:32.4367940Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4368451Z | |
2021-07-11T00:40:32.4369257Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4369972Z | |
2021-07-11T00:40:32.4370473Z def test_custom_pages_nested(custom_pages_client): | |
2021-07-11T00:40:32.4371231Z response = custom_pages_client.get("/nested/nest") | |
2021-07-11T00:40:32.4371852Z > assert 200 == response.status | |
2021-07-11T00:40:32.4372313Z E assert 200 == 404 | |
2021-07-11T00:40:32.4373228Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FCA3F6D0>.status | |
2021-07-11T00:40:32.4373967Z | |
2021-07-11T00:40:32.4374574Z D:\a\datasette\datasette\tests\test_custom_pages.py:42: AssertionError | |
2021-07-11T00:40:32.4375269Z _____________________________ test_custom_status ______________________________ | |
2021-07-11T00:40:32.4376000Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4376495Z | |
2021-07-11T00:40:32.4377328Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4378065Z | |
2021-07-11T00:40:32.4378529Z def test_custom_status(custom_pages_client): | |
2021-07-11T00:40:32.4379143Z response = custom_pages_client.get("/202") | |
2021-07-11T00:40:32.4379707Z > assert 202 == response.status | |
2021-07-11T00:40:32.4380189Z E assert 202 == 404 | |
2021-07-11T00:40:32.4381143Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FE313460>.status | |
2021-07-11T00:40:32.4381863Z | |
2021-07-11T00:40:32.4382463Z D:\a\datasette\datasette\tests\test_custom_pages.py:50: AssertionError | |
2021-07-11T00:40:32.4383204Z _____________________________ test_custom_headers _____________________________ | |
2021-07-11T00:40:32.4383913Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4384425Z | |
2021-07-11T00:40:32.4385248Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4385994Z | |
2021-07-11T00:40:32.4386583Z def test_custom_headers(custom_pages_client): | |
2021-07-11T00:40:32.4387228Z response = custom_pages_client.get("/headers") | |
2021-07-11T00:40:32.4387858Z > assert 200 == response.status | |
2021-07-11T00:40:32.4388358Z E assert 200 == 404 | |
2021-07-11T00:40:32.4389217Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FD1D0EB0>.status | |
2021-07-11T00:40:32.4389975Z | |
2021-07-11T00:40:32.4390578Z D:\a\datasette\datasette\tests\test_custom_pages.py:56: AssertionError | |
2021-07-11T00:40:32.4391439Z __________________________ test_custom_content_type ___________________________ | |
2021-07-11T00:40:32.4392192Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4392705Z | |
2021-07-11T00:40:32.4393523Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4394238Z | |
2021-07-11T00:40:32.4394729Z def test_custom_content_type(custom_pages_client): | |
2021-07-11T00:40:32.4395402Z response = custom_pages_client.get("/atom") | |
2021-07-11T00:40:32.4396002Z > assert 200 == response.status | |
2021-07-11T00:40:32.4396468Z E assert 200 == 404 | |
2021-07-11T00:40:32.4397336Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FD1B1730>.status | |
2021-07-11T00:40:32.4398055Z | |
2021-07-11T00:40:32.4398654Z D:\a\datasette\datasette\tests\test_custom_pages.py:64: AssertionError | |
2021-07-11T00:40:32.4399347Z ________________________________ test_redirect ________________________________ | |
2021-07-11T00:40:32.4400062Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4400571Z | |
2021-07-11T00:40:32.4401429Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4402139Z | |
2021-07-11T00:40:32.4402588Z def test_redirect(custom_pages_client): | |
2021-07-11T00:40:32.4403312Z response = custom_pages_client.get("/redirect", allow_redirects=False) | |
2021-07-11T00:40:32.4404013Z > assert 302 == response.status | |
2021-07-11T00:40:32.4404468Z E assert 302 == 404 | |
2021-07-11T00:40:32.4405340Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FD1D0AF0>.status | |
2021-07-11T00:40:32.4406077Z | |
2021-07-11T00:40:32.4406665Z D:\a\datasette\datasette\tests\test_custom_pages.py:71: AssertionError | |
2021-07-11T00:40:32.4407398Z _______________________________ test_redirect2 ________________________________ | |
2021-07-11T00:40:32.4408135Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4408659Z | |
2021-07-11T00:40:32.4409466Z custom_pages_client = <datasette.utils.testing.TestClient object at 0x00000291FF4B7A90> | |
2021-07-11T00:40:32.4410194Z | |
2021-07-11T00:40:32.4410659Z def test_redirect2(custom_pages_client): | |
2021-07-11T00:40:32.4411477Z response = custom_pages_client.get("/redirect2", allow_redirects=False) | |
2021-07-11T00:40:32.4412184Z > assert 301 == response.status | |
2021-07-11T00:40:32.4412646Z E assert 301 == 404 | |
2021-07-11T00:40:32.4413510Z E + where 404 = <datasette.utils.testing.TestResponse object at 0x00000291FCDC6190>.status | |
2021-07-11T00:40:32.4414278Z | |
2021-07-11T00:40:32.4414898Z D:\a\datasette\datasette\tests\test_custom_pages.py:77: AssertionError | |
2021-07-11T00:40:32.4415604Z _____________________________ test_static_mounts ______________________________ | |
2021-07-11T00:40:32.4416334Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4416858Z | |
2021-07-11T00:40:32.4417374Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka' | |
2021-07-11T00:40:32.4418226Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E84450D0> | |
2021-07-11T00:40:32.4418796Z | |
2021-07-11T00:40:32.4419228Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4419689Z try: | |
2021-07-11T00:40:32.4420208Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4420877Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4421340Z except OSError: | |
2021-07-11T00:40:32.4421903Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4422421Z entries = [] | |
2021-07-11T00:40:32.4422839Z for entry in entries: | |
2021-07-11T00:40:32.4423328Z fullname = entry.path | |
2021-07-11T00:40:32.4423809Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4424222Z try: | |
2021-07-11T00:40:32.4424654Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4425264Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4425901Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4426526Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4427215Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4427807Z except OSError: | |
2021-07-11T00:40:32.4428422Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4428986Z continue | |
2021-07-11T00:40:32.4429508Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4430004Z else: | |
2021-07-11T00:40:32.4430358Z try: | |
2021-07-11T00:40:32.4430820Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4431908Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka\\fixtures.db' | |
2021-07-11T00:40:32.4432780Z | |
2021-07-11T00:40:32.4433414Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4433963Z | |
2021-07-11T00:40:32.4434544Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4435032Z | |
2021-07-11T00:40:32.4435448Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4436152Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka\\fixtures.db' | |
2021-07-11T00:40:32.4437377Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E7E74F00>) | |
2021-07-11T00:40:32.4438265Z | |
2021-07-11T00:40:32.4438708Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4439318Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4439934Z def resetperms(path): | |
2021-07-11T00:40:32.4440346Z try: | |
2021-07-11T00:40:32.4440841Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4441352Z except AttributeError: | |
2021-07-11T00:40:32.4441837Z pass | |
2021-07-11T00:40:32.4442238Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4442617Z | |
2021-07-11T00:40:32.4442938Z try: | |
2021-07-11T00:40:32.4443308Z if path != name: | |
2021-07-11T00:40:32.4443858Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4444413Z resetperms(path) | |
2021-07-11T00:40:32.4444800Z | |
2021-07-11T00:40:32.4445110Z try: | |
2021-07-11T00:40:32.4445499Z > _os.unlink(path) | |
2021-07-11T00:40:32.4446548Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka\\fixtures.db' | |
2021-07-11T00:40:32.4447457Z | |
2021-07-11T00:40:32.4448145Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4448710Z | |
2021-07-11T00:40:32.4449283Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4449789Z | |
2021-07-11T00:40:32.4450151Z def test_static_mounts(): | |
2021-07-11T00:40:32.4450631Z with make_app_client( | |
2021-07-11T00:40:32.4451444Z static_mounts=[("custom-static", str(pathlib.Path(__file__).parent))] | |
2021-07-11T00:40:32.4452089Z ) as client: | |
2021-07-11T00:40:32.4452671Z response = client.get("/custom-static/test_html.py") | |
2021-07-11T00:40:32.4453343Z assert response.status == 200 | |
2021-07-11T00:40:32.4454043Z response = client.get("/custom-static/not_exists.py") | |
2021-07-11T00:40:32.4454720Z assert response.status == 404 | |
2021-07-11T00:40:32.4455376Z response = client.get("/custom-static/../LICENSE") | |
2021-07-11T00:40:32.4456029Z > assert response.status == 404 | |
2021-07-11T00:40:32.4456373Z | |
2021-07-11T00:40:32.4456868Z D:\a\datasette\datasette\tests\test_html.py:86: | |
2021-07-11T00:40:32.4457420Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4458091Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4458736Z next(self.gen) | |
2021-07-11T00:40:32.4459382Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4460042Z yield TestClient(ds) | |
2021-07-11T00:40:32.4460724Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4461452Z self.cleanup() | |
2021-07-11T00:40:32.4462115Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4462806Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4463496Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4464265Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4465002Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4465713Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4466472Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4467245Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4468039Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4468716Z cls._rmtree(path) | |
2021-07-11T00:40:32.4469390Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4470131Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4470927Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4471659Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4472385Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4473144Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4473648Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4473924Z | |
2021-07-11T00:40:32.4474499Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka\\fixtures.db' | |
2021-07-11T00:40:32.4475414Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E9711F70> | |
2021-07-11T00:40:32.4475979Z | |
2021-07-11T00:40:32.4476406Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4476833Z try: | |
2021-07-11T00:40:32.4477278Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4478242Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwo_z_3ka\\fixtures.db' | |
2021-07-11T00:40:32.4478980Z | |
2021-07-11T00:40:32.4479652Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4480441Z __________________________ test_memory_database_page __________________________ | |
2021-07-11T00:40:32.4481246Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4481757Z | |
2021-07-11T00:40:32.4482280Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5' | |
2021-07-11T00:40:32.4483245Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA7F1EE0> | |
2021-07-11T00:40:32.4483856Z | |
2021-07-11T00:40:32.4484282Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4484742Z try: | |
2021-07-11T00:40:32.4485179Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4485739Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4486216Z except OSError: | |
2021-07-11T00:40:32.4486754Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4487259Z entries = [] | |
2021-07-11T00:40:32.4487709Z for entry in entries: | |
2021-07-11T00:40:32.4488198Z fullname = entry.path | |
2021-07-11T00:40:32.4488688Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4489107Z try: | |
2021-07-11T00:40:32.4489531Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4490100Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4490749Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4491471Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4492135Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4492718Z except OSError: | |
2021-07-11T00:40:32.4493319Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4493915Z continue | |
2021-07-11T00:40:32.4494429Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4494907Z else: | |
2021-07-11T00:40:32.4495278Z try: | |
2021-07-11T00:40:32.4495680Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4496797Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5\\fixtures.db' | |
2021-07-11T00:40:32.4497708Z | |
2021-07-11T00:40:32.4498359Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4498913Z | |
2021-07-11T00:40:32.4499504Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4499993Z | |
2021-07-11T00:40:32.4500398Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4501162Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5\\fixtures.db' | |
2021-07-11T00:40:32.4502417Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA7B8D80>) | |
2021-07-11T00:40:32.4503275Z | |
2021-07-11T00:40:32.4503682Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4504299Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4504899Z def resetperms(path): | |
2021-07-11T00:40:32.4505341Z try: | |
2021-07-11T00:40:32.4505756Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4506280Z except AttributeError: | |
2021-07-11T00:40:32.4506751Z pass | |
2021-07-11T00:40:32.4507177Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4507560Z | |
2021-07-11T00:40:32.4507868Z try: | |
2021-07-11T00:40:32.4508267Z if path != name: | |
2021-07-11T00:40:32.4508798Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4509385Z resetperms(path) | |
2021-07-11T00:40:32.4509756Z | |
2021-07-11T00:40:32.4510082Z try: | |
2021-07-11T00:40:32.4510471Z > _os.unlink(path) | |
2021-07-11T00:40:32.4511640Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5\\fixtures.db' | |
2021-07-11T00:40:32.4512564Z | |
2021-07-11T00:40:32.4513213Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4513779Z | |
2021-07-11T00:40:32.4514454Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4515017Z | |
2021-07-11T00:40:32.4515418Z def test_memory_database_page(): | |
2021-07-11T00:40:32.4516018Z with make_app_client(memory=True) as client: | |
2021-07-11T00:40:32.4516603Z response = client.get("/_memory") | |
2021-07-11T00:40:32.4517171Z > assert response.status == 200 | |
2021-07-11T00:40:32.4517532Z | |
2021-07-11T00:40:32.4517996Z D:\a\datasette\datasette\tests\test_html.py:92: | |
2021-07-11T00:40:32.4518558Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4519226Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4519875Z next(self.gen) | |
2021-07-11T00:40:32.4520485Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4521210Z yield TestClient(ds) | |
2021-07-11T00:40:32.4521906Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4522573Z self.cleanup() | |
2021-07-11T00:40:32.4523249Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4523942Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4524673Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4525430Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4526161Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4526868Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4527632Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4528422Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4529175Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4529871Z cls._rmtree(path) | |
2021-07-11T00:40:32.4530528Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4531354Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4532096Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4532836Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4533562Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4534318Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4534869Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4535130Z | |
2021-07-11T00:40:32.4535778Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5\\fixtures.db' | |
2021-07-11T00:40:32.4536742Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA7F31F0> | |
2021-07-11T00:40:32.4537298Z | |
2021-07-11T00:40:32.4537758Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4538188Z try: | |
2021-07-11T00:40:32.4538635Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4539676Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptgpiy8v5\\fixtures.db' | |
2021-07-11T00:40:32.4540456Z | |
2021-07-11T00:40:32.4541188Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4541998Z _________________________ test_table_cell_truncation __________________________ | |
2021-07-11T00:40:32.4542750Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4543280Z | |
2021-07-11T00:40:32.4543809Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86' | |
2021-07-11T00:40:32.4544697Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF3EED30> | |
2021-07-11T00:40:32.4545266Z | |
2021-07-11T00:40:32.4545717Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4546179Z try: | |
2021-07-11T00:40:32.4546621Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4547226Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4547778Z except OSError: | |
2021-07-11T00:40:32.4548344Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4548859Z entries = [] | |
2021-07-11T00:40:32.4549279Z for entry in entries: | |
2021-07-11T00:40:32.4549786Z fullname = entry.path | |
2021-07-11T00:40:32.4550280Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4550690Z try: | |
2021-07-11T00:40:32.4551166Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4551738Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4552390Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4553045Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4553705Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4554271Z except OSError: | |
2021-07-11T00:40:32.4554932Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4555521Z continue | |
2021-07-11T00:40:32.4556022Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4556484Z else: | |
2021-07-11T00:40:32.4556835Z try: | |
2021-07-11T00:40:32.4557257Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4558402Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86\\fixtures.db' | |
2021-07-11T00:40:32.4559300Z | |
2021-07-11T00:40:32.4559970Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4560537Z | |
2021-07-11T00:40:32.4561179Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4561667Z | |
2021-07-11T00:40:32.4562076Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4562803Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86\\fixtures.db' | |
2021-07-11T00:40:32.4564041Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCE07380>) | |
2021-07-11T00:40:32.4564924Z | |
2021-07-11T00:40:32.4565361Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4565971Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4566567Z def resetperms(path): | |
2021-07-11T00:40:32.4566972Z try: | |
2021-07-11T00:40:32.4567419Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4567946Z except AttributeError: | |
2021-07-11T00:40:32.4568413Z pass | |
2021-07-11T00:40:32.4568824Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4569183Z | |
2021-07-11T00:40:32.4569522Z try: | |
2021-07-11T00:40:32.4569908Z if path != name: | |
2021-07-11T00:40:32.4570477Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4571097Z resetperms(path) | |
2021-07-11T00:40:32.4571482Z | |
2021-07-11T00:40:32.4571810Z try: | |
2021-07-11T00:40:32.4572221Z > _os.unlink(path) | |
2021-07-11T00:40:32.4573279Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86\\fixtures.db' | |
2021-07-11T00:40:32.4574169Z | |
2021-07-11T00:40:32.4574855Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4575421Z | |
2021-07-11T00:40:32.4575987Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4576491Z | |
2021-07-11T00:40:32.4576925Z def test_table_cell_truncation(): | |
2021-07-11T00:40:32.4577556Z with make_app_client(config={"truncate_cells_html": 5}) as client: | |
2021-07-11T00:40:32.4578943Z response = client.get("/fixtures/facetable") | |
2021-07-11T00:40:32.4579664Z assert response.status == 200 | |
2021-07-11T00:40:32.4580342Z table = Soup(response.body, "html.parser").find("table") | |
2021-07-11T00:40:32.4581118Z assert table["class"] == ["rows-and-columns"] | |
2021-07-11T00:40:32.4581649Z > assert [ | |
2021-07-11T00:40:32.4582721Z "Missi�", | |
2021-07-11T00:40:32.4583122Z "Dogpa�", | |
2021-07-11T00:40:32.4583499Z "SOMA", | |
2021-07-11T00:40:32.4583883Z "Tende�", | |
2021-07-11T00:40:32.4584276Z "Berna�", | |
2021-07-11T00:40:32.4584658Z "Hayes�", | |
2021-07-11T00:40:32.4585024Z "Holly�", | |
2021-07-11T00:40:32.4585377Z "Downt�", | |
2021-07-11T00:40:32.4585738Z "Los F�", | |
2021-07-11T00:40:32.4586091Z "Korea�", | |
2021-07-11T00:40:32.4586460Z "Downt�", | |
2021-07-11T00:40:32.4586860Z "Greek�", | |
2021-07-11T00:40:32.4587476Z "Corkt�", | |
2021-07-11T00:40:32.4587885Z "Mexic�", | |
2021-07-11T00:40:32.4588320Z "Arcad�", | |
2021-07-11T00:40:32.4588973Z ] == [td.string for td in table.findAll("td", {"class": "col-neighborhood"})] | |
2021-07-11T00:40:32.4589527Z | |
2021-07-11T00:40:32.4590116Z D:\a\datasette\datasette\tests\test_html.py:222: | |
2021-07-11T00:40:32.4590703Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4591517Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4592216Z next(self.gen) | |
2021-07-11T00:40:32.4592943Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4593612Z yield TestClient(ds) | |
2021-07-11T00:40:32.4594369Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4595124Z self.cleanup() | |
2021-07-11T00:40:32.4595840Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4596609Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4597323Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4598184Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4598974Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4599775Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4600559Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4601499Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4602351Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4603053Z cls._rmtree(path) | |
2021-07-11T00:40:32.4603795Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4604576Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4605391Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4606176Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4606977Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4607776Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4608403Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4608710Z | |
2021-07-11T00:40:32.4609334Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86\\fixtures.db' | |
2021-07-11T00:40:32.4610408Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FCDEA940> | |
2021-07-11T00:40:32.4611094Z | |
2021-07-11T00:40:32.4611544Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4612051Z try: | |
2021-07-11T00:40:32.4612557Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4613764Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpu15ngs86\\fixtures.db' | |
2021-07-11T00:40:32.4614660Z | |
2021-07-11T00:40:32.4615376Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4616245Z __________________________ test_not_allowed_methods ___________________________ | |
2021-07-11T00:40:32.4617066Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4617582Z | |
2021-07-11T00:40:32.4618194Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni' | |
2021-07-11T00:40:32.4619169Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E64919D0> | |
2021-07-11T00:40:32.4619741Z | |
2021-07-11T00:40:32.4620234Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4620695Z try: | |
2021-07-11T00:40:32.4621280Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4621876Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4622433Z except OSError: | |
2021-07-11T00:40:32.4623065Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4623601Z entries = [] | |
2021-07-11T00:40:32.4624098Z for entry in entries: | |
2021-07-11T00:40:32.4624620Z fullname = entry.path | |
2021-07-11T00:40:32.4625181Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4625622Z try: | |
2021-07-11T00:40:32.4626113Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4626709Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4627433Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4628122Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4628799Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4629447Z except OSError: | |
2021-07-11T00:40:32.4630090Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4630751Z continue | |
2021-07-11T00:40:32.4631341Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4631903Z else: | |
2021-07-11T00:40:32.4632299Z try: | |
2021-07-11T00:40:32.4632798Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4633986Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni\\fixtures.db' | |
2021-07-11T00:40:32.4634901Z | |
2021-07-11T00:40:32.4635633Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4636217Z | |
2021-07-11T00:40:32.4636837Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4637374Z | |
2021-07-11T00:40:32.4637864Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4638604Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni\\fixtures.db' | |
2021-07-11T00:40:32.4639971Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E83FAF40>) | |
2021-07-11T00:40:32.4640931Z | |
2021-07-11T00:40:32.4641399Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4642123Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4642740Z def resetperms(path): | |
2021-07-11T00:40:32.4643240Z try: | |
2021-07-11T00:40:32.4643693Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4644301Z except AttributeError: | |
2021-07-11T00:40:32.4644811Z pass | |
2021-07-11T00:40:32.4645295Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4645751Z | |
2021-07-11T00:40:32.4646111Z try: | |
2021-07-11T00:40:32.4646576Z if path != name: | |
2021-07-11T00:40:32.4647162Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4647898Z resetperms(path) | |
2021-07-11T00:40:32.4648402Z | |
2021-07-11T00:40:32.4648830Z try: | |
2021-07-11T00:40:32.4649240Z > _os.unlink(path) | |
2021-07-11T00:40:32.4650409Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni\\fixtures.db' | |
2021-07-11T00:40:32.4651411Z | |
2021-07-11T00:40:32.4652098Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4652715Z | |
2021-07-11T00:40:32.4653366Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4653908Z | |
2021-07-11T00:40:32.4654369Z def test_not_allowed_methods(): | |
2021-07-11T00:40:32.4655012Z with make_app_client(memory=True) as client: | |
2021-07-11T00:40:32.4655643Z for method in ("post", "put", "patch", "delete"): | |
2021-07-11T00:40:32.4656527Z response = client.request(path="/_memory", method=method.upper()) | |
2021-07-11T00:40:32.4657274Z > assert response.status == 405 | |
2021-07-11T00:40:32.4657653Z | |
2021-07-11T00:40:32.4658197Z D:\a\datasette\datasette\tests\test_html.py:99: | |
2021-07-11T00:40:32.4658779Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4659602Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4660279Z next(self.gen) | |
2021-07-11T00:40:32.4661026Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4661726Z yield TestClient(ds) | |
2021-07-11T00:40:32.4662499Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4663247Z self.cleanup() | |
2021-07-11T00:40:32.4663971Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4664781Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4665496Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4666322Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4667127Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4667913Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4668674Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4669513Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4670350Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4671085Z cls._rmtree(path) | |
2021-07-11T00:40:32.4671874Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4672646Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4673447Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4674229Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4675041Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4675837Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4676479Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4676790Z | |
2021-07-11T00:40:32.4677413Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni\\fixtures.db' | |
2021-07-11T00:40:32.4678424Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E94D79D0> | |
2021-07-11T00:40:32.4679069Z | |
2021-07-11T00:40:32.4679531Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4680035Z try: | |
2021-07-11T00:40:32.4680499Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4681666Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp7lcgf7ni\\fixtures.db' | |
2021-07-11T00:40:32.4682466Z | |
2021-07-11T00:40:32.4683246Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4684200Z _______________________ test_row_page_does_not_truncate _______________________ | |
2021-07-11T00:40:32.4685015Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4685554Z | |
2021-07-11T00:40:32.4686154Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a' | |
2021-07-11T00:40:32.4687056Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF481DC0> | |
2021-07-11T00:40:32.4687708Z | |
2021-07-11T00:40:32.4688214Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4688673Z try: | |
2021-07-11T00:40:32.4689188Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4689781Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4690337Z except OSError: | |
2021-07-11T00:40:32.4691014Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4691550Z entries = [] | |
2021-07-11T00:40:32.4692047Z for entry in entries: | |
2021-07-11T00:40:32.4692578Z fullname = entry.path | |
2021-07-11T00:40:32.4693167Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4693615Z try: | |
2021-07-11T00:40:32.4694102Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4694696Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4695464Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4696106Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4696838Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4697530Z except OSError: | |
2021-07-11T00:40:32.4698163Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4698808Z continue | |
2021-07-11T00:40:32.4699329Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4699938Z else: | |
2021-07-11T00:40:32.4700320Z try: | |
2021-07-11T00:40:32.4700859Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4702046Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a\\fixtures.db' | |
2021-07-11T00:40:32.4702990Z | |
2021-07-11T00:40:32.4703700Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4704344Z | |
2021-07-11T00:40:32.4704945Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4705463Z | |
2021-07-11T00:40:32.4705936Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4706707Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a\\fixtures.db' | |
2021-07-11T00:40:32.4708043Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF53D700>) | |
2021-07-11T00:40:32.4708962Z | |
2021-07-11T00:40:32.4709423Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4710111Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4710731Z def resetperms(path): | |
2021-07-11T00:40:32.4711292Z try: | |
2021-07-11T00:40:32.4711730Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4712333Z except AttributeError: | |
2021-07-11T00:40:32.4712822Z pass | |
2021-07-11T00:40:32.4713300Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4713745Z | |
2021-07-11T00:40:32.4714087Z try: | |
2021-07-11T00:40:32.4714543Z if path != name: | |
2021-07-11T00:40:32.4715132Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4715786Z resetperms(path) | |
2021-07-11T00:40:32.4716195Z | |
2021-07-11T00:40:32.4716585Z try: | |
2021-07-11T00:40:32.4717098Z > _os.unlink(path) | |
2021-07-11T00:40:32.4718367Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a\\fixtures.db' | |
2021-07-11T00:40:32.4719300Z | |
2021-07-11T00:40:32.4720006Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4720632Z | |
2021-07-11T00:40:32.4721345Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4721818Z | |
2021-07-11T00:40:32.4722385Z def test_row_page_does_not_truncate(): | |
2021-07-11T00:40:32.4723100Z with make_app_client(config={"truncate_cells_html": 5}) as client: | |
2021-07-11T00:40:32.4723842Z response = client.get("/fixtures/facetable/1") | |
2021-07-11T00:40:32.4724597Z assert response.status == 200 | |
2021-07-11T00:40:32.4725295Z table = Soup(response.body, "html.parser").find("table") | |
2021-07-11T00:40:32.4726100Z assert table["class"] == ["rows-and-columns"] | |
2021-07-11T00:40:32.4726722Z > assert ["Mission"] == [ | |
2021-07-11T00:40:32.4727451Z td.string for td in table.findAll("td", {"class": "col-neighborhood"}) | |
2021-07-11T00:40:32.4728086Z ] | |
2021-07-11T00:40:32.4728343Z | |
2021-07-11T00:40:32.4728940Z D:\a\datasette\datasette\tests\test_html.py:247: | |
2021-07-11T00:40:32.4729508Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4730239Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4731026Z next(self.gen) | |
2021-07-11T00:40:32.4731722Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4732449Z yield TestClient(ds) | |
2021-07-11T00:40:32.4733152Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4733878Z self.cleanup() | |
2021-07-11T00:40:32.4734573Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4735338Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4736047Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4736882Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4737644Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4738418Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4739223Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4740020Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4740931Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4741614Z cls._rmtree(path) | |
2021-07-11T00:40:32.4849776Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4850882Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4851655Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4852402Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4853178Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4853943Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4854453Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4854738Z | |
2021-07-11T00:40:32.4855405Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a\\fixtures.db' | |
2021-07-11T00:40:32.4856383Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF481E50> | |
2021-07-11T00:40:32.4856952Z | |
2021-07-11T00:40:32.4857385Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4857817Z try: | |
2021-07-11T00:40:32.4858263Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4859458Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbfkkh14a\\fixtures.db' | |
2021-07-11T00:40:32.4860300Z | |
2021-07-11T00:40:32.4861040Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4861865Z ____________________ test_database_download_for_immutable _____________________ | |
2021-07-11T00:40:32.4862632Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4863135Z | |
2021-07-11T00:40:32.4863648Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf' | |
2021-07-11T00:40:32.4864536Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF53BEE0> | |
2021-07-11T00:40:32.4865107Z | |
2021-07-11T00:40:32.4865520Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4865961Z try: | |
2021-07-11T00:40:32.4866398Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4866937Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4867401Z except OSError: | |
2021-07-11T00:40:32.4867949Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4868459Z entries = [] | |
2021-07-11T00:40:32.4868876Z for entry in entries: | |
2021-07-11T00:40:32.4869363Z fullname = entry.path | |
2021-07-11T00:40:32.4869894Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4870307Z try: | |
2021-07-11T00:40:32.4870718Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4871351Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4872039Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4872662Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4873303Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4873879Z except OSError: | |
2021-07-11T00:40:32.4874514Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4875088Z continue | |
2021-07-11T00:40:32.4875593Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4876057Z else: | |
2021-07-11T00:40:32.4876409Z try: | |
2021-07-11T00:40:32.4876842Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4877975Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf\\fixtures.db' | |
2021-07-11T00:40:32.4878876Z | |
2021-07-11T00:40:32.4879562Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4880107Z | |
2021-07-11T00:40:32.4880687Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4881235Z | |
2021-07-11T00:40:32.4881668Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4882396Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf\\fixtures.db' | |
2021-07-11T00:40:32.4883634Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF6111C0>) | |
2021-07-11T00:40:32.4884486Z | |
2021-07-11T00:40:32.4884905Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4885513Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4886090Z def resetperms(path): | |
2021-07-11T00:40:32.4886491Z try: | |
2021-07-11T00:40:32.4886894Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4887402Z except AttributeError: | |
2021-07-11T00:40:32.4887872Z pass | |
2021-07-11T00:40:32.4888274Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4888651Z | |
2021-07-11T00:40:32.4888959Z try: | |
2021-07-11T00:40:32.4889338Z if path != name: | |
2021-07-11T00:40:32.4889886Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4890511Z resetperms(path) | |
2021-07-11T00:40:32.4891638Z | |
2021-07-11T00:40:32.4891949Z try: | |
2021-07-11T00:40:32.4892342Z > _os.unlink(path) | |
2021-07-11T00:40:32.4893413Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf\\fixtures.db' | |
2021-07-11T00:40:32.4894313Z | |
2021-07-11T00:40:32.4894985Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4895553Z | |
2021-07-11T00:40:32.4896123Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4896609Z | |
2021-07-11T00:40:32.4897057Z def test_database_download_for_immutable(): | |
2021-07-11T00:40:32.4897689Z with make_app_client(is_immutable=True) as client: | |
2021-07-11T00:40:32.4898402Z assert not client.ds.databases["fixtures"].is_mutable | |
2021-07-11T00:40:32.4899096Z # Regular page should have a download link | |
2021-07-11T00:40:32.4899703Z response = client.get("/fixtures") | |
2021-07-11T00:40:32.4900332Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.4901104Z assert len(soup.findAll("a", {"href": re.compile(r"\.db$")})) | |
2021-07-11T00:40:32.4901732Z # Check we can actually download it | |
2021-07-11T00:40:32.4902389Z download_response = client.get("/fixtures.db") | |
2021-07-11T00:40:32.4903066Z assert 200 == download_response.status | |
2021-07-11T00:40:32.4903737Z # Check the content-length header exists | |
2021-07-11T00:40:32.4904490Z assert "content-length" in download_response.headers | |
2021-07-11T00:40:32.4905372Z content_length = download_response.headers["content-length"] | |
2021-07-11T00:40:32.4906124Z assert content_length.isdigit() | |
2021-07-11T00:40:32.4906671Z assert int(content_length) > 100 | |
2021-07-11T00:40:32.4907403Z assert "content-disposition" in download_response.headers | |
2021-07-11T00:40:32.4908042Z assert ( | |
2021-07-11T00:40:32.4908672Z download_response.headers["content-disposition"] | |
2021-07-11T00:40:32.4909416Z == 'attachment; filename="fixtures.db"' | |
2021-07-11T00:40:32.4909874Z ) | |
2021-07-11T00:40:32.4910513Z > assert download_response.headers["transfer-encoding"] == "chunked" | |
2021-07-11T00:40:32.4911102Z | |
2021-07-11T00:40:32.4911584Z D:\a\datasette\datasette\tests\test_html.py:1055: | |
2021-07-11T00:40:32.4912116Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4912788Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4913443Z next(self.gen) | |
2021-07-11T00:40:32.4914052Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4914698Z yield TestClient(ds) | |
2021-07-11T00:40:32.4915367Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4916024Z self.cleanup() | |
2021-07-11T00:40:32.4916685Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4917379Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4918057Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4918810Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4919548Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4920238Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4921054Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4921806Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4922571Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4923209Z cls._rmtree(path) | |
2021-07-11T00:40:32.4923938Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4924748Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4925466Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4926173Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4926901Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4927661Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4928168Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4928441Z | |
2021-07-11T00:40:32.4929042Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf\\fixtures.db' | |
2021-07-11T00:40:32.4929982Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF53BE50> | |
2021-07-11T00:40:32.4930548Z | |
2021-07-11T00:40:32.4931034Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4931460Z try: | |
2021-07-11T00:40:32.4931895Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4932882Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpcb6sz0nf\\fixtures.db' | |
2021-07-11T00:40:32.4933642Z | |
2021-07-11T00:40:32.4934317Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4935179Z ________________ test_database_download_disallowed_for_memory _________________ | |
2021-07-11T00:40:32.4935985Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.4936495Z | |
2021-07-11T00:40:32.4937013Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58' | |
2021-07-11T00:40:32.4937888Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF551F70> | |
2021-07-11T00:40:32.4938442Z | |
2021-07-11T00:40:32.4938844Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4939273Z try: | |
2021-07-11T00:40:32.4939717Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4940248Z entries = list(scandir_it) | |
2021-07-11T00:40:32.4940703Z except OSError: | |
2021-07-11T00:40:32.4941307Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4941807Z entries = [] | |
2021-07-11T00:40:32.4942231Z for entry in entries: | |
2021-07-11T00:40:32.4942695Z fullname = entry.path | |
2021-07-11T00:40:32.4943168Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.4943578Z try: | |
2021-07-11T00:40:32.4944009Z if entry.is_symlink(): | |
2021-07-11T00:40:32.4944585Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.4945219Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.4945860Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.4946504Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.4947092Z except OSError: | |
2021-07-11T00:40:32.4947694Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4948272Z continue | |
2021-07-11T00:40:32.4948774Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.4949238Z else: | |
2021-07-11T00:40:32.4949591Z try: | |
2021-07-11T00:40:32.4949989Z > os.unlink(fullname) | |
2021-07-11T00:40:32.4951159Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58\\fixtures.db' | |
2021-07-11T00:40:32.4952064Z | |
2021-07-11T00:40:32.4952695Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.4953238Z | |
2021-07-11T00:40:32.4953817Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4954291Z | |
2021-07-11T00:40:32.4954750Z func = <built-in function unlink> | |
2021-07-11T00:40:32.4955504Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58\\fixtures.db' | |
2021-07-11T00:40:32.4956746Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF5927C0>) | |
2021-07-11T00:40:32.4957596Z | |
2021-07-11T00:40:32.4958004Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.4958622Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.4959220Z def resetperms(path): | |
2021-07-11T00:40:32.4959631Z try: | |
2021-07-11T00:40:32.4960048Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.4960561Z except AttributeError: | |
2021-07-11T00:40:32.4961091Z pass | |
2021-07-11T00:40:32.4961526Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.4961903Z | |
2021-07-11T00:40:32.4962212Z try: | |
2021-07-11T00:40:32.4962616Z if path != name: | |
2021-07-11T00:40:32.4963155Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.4963725Z resetperms(path) | |
2021-07-11T00:40:32.4964110Z | |
2021-07-11T00:40:32.4964418Z try: | |
2021-07-11T00:40:32.4964797Z > _os.unlink(path) | |
2021-07-11T00:40:32.4965857Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58\\fixtures.db' | |
2021-07-11T00:40:32.4966756Z | |
2021-07-11T00:40:32.4967418Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.4967972Z | |
2021-07-11T00:40:32.4968552Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.4969043Z | |
2021-07-11T00:40:32.4969520Z def test_database_download_disallowed_for_memory(): | |
2021-07-11T00:40:32.4970180Z with make_app_client(memory=True) as client: | |
2021-07-11T00:40:32.4970830Z # Memory page should NOT have a download link | |
2021-07-11T00:40:32.4971438Z response = client.get("/_memory") | |
2021-07-11T00:40:32.4972073Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.4972771Z assert 0 == len(soup.findAll("a", {"href": re.compile(r"\.db$")})) | |
2021-07-11T00:40:32.4973444Z > assert 404 == client.get("/_memory.db").status | |
2021-07-11T00:40:32.4973815Z | |
2021-07-11T00:40:32.4974283Z D:\a\datasette\datasette\tests\test_html.py:1071: | |
2021-07-11T00:40:32.4974827Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4975477Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.4976133Z next(self.gen) | |
2021-07-11T00:40:32.4976737Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.4977377Z yield TestClient(ds) | |
2021-07-11T00:40:32.4978100Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.4978761Z self.cleanup() | |
2021-07-11T00:40:32.4979416Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.4980094Z self._rmtree(self.name) | |
2021-07-11T00:40:32.4980812Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4981557Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4982294Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4982989Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4983734Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.4984529Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.4985318Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.4985971Z cls._rmtree(path) | |
2021-07-11T00:40:32.4986738Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.4987550Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.4988270Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.4989026Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.4989751Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.4990511Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.4991132Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.4991822Z | |
2021-07-11T00:40:32.4992951Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58\\fixtures.db' | |
2021-07-11T00:40:32.4993981Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF551D30> | |
2021-07-11T00:40:32.4994536Z | |
2021-07-11T00:40:32.4994964Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.4995408Z try: | |
2021-07-11T00:40:32.4995861Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.4996856Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpfp20pd58\\fixtures.db' | |
2021-07-11T00:40:32.4997620Z | |
2021-07-11T00:40:32.4998294Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.4999078Z __________________________ test_custom_table_include __________________________ | |
2021-07-11T00:40:32.4999822Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5000388Z | |
2021-07-11T00:40:32.5001070Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf' | |
2021-07-11T00:40:32.5001953Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA93A9D0> | |
2021-07-11T00:40:32.5002571Z | |
2021-07-11T00:40:32.5002985Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5003428Z try: | |
2021-07-11T00:40:32.5003878Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5004405Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5004858Z except OSError: | |
2021-07-11T00:40:32.5005427Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5005943Z entries = [] | |
2021-07-11T00:40:32.5006361Z for entry in entries: | |
2021-07-11T00:40:32.5006848Z fullname = entry.path | |
2021-07-11T00:40:32.5007324Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5007733Z try: | |
2021-07-11T00:40:32.5008144Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5008719Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5009351Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5009969Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5010611Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5011251Z except OSError: | |
2021-07-11T00:40:32.5011859Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5012424Z continue | |
2021-07-11T00:40:32.5012928Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5013392Z else: | |
2021-07-11T00:40:32.5013754Z try: | |
2021-07-11T00:40:32.5014154Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5015269Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf\\fixtures.db' | |
2021-07-11T00:40:32.5016197Z | |
2021-07-11T00:40:32.5016832Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5017391Z | |
2021-07-11T00:40:32.5017981Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5018610Z | |
2021-07-11T00:40:32.5019078Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5019790Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf\\fixtures.db' | |
2021-07-11T00:40:32.5021111Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA9FB0C0>) | |
2021-07-11T00:40:32.5021975Z | |
2021-07-11T00:40:32.5022391Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5022993Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5023577Z def resetperms(path): | |
2021-07-11T00:40:32.5023975Z try: | |
2021-07-11T00:40:32.5024393Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5024903Z except AttributeError: | |
2021-07-11T00:40:32.5025370Z pass | |
2021-07-11T00:40:32.5025773Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5026150Z | |
2021-07-11T00:40:32.5026465Z try: | |
2021-07-11T00:40:32.5026848Z if path != name: | |
2021-07-11T00:40:32.5027398Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5027964Z resetperms(path) | |
2021-07-11T00:40:32.5028353Z | |
2021-07-11T00:40:32.5028668Z try: | |
2021-07-11T00:40:32.5029062Z > _os.unlink(path) | |
2021-07-11T00:40:32.5030122Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf\\fixtures.db' | |
2021-07-11T00:40:32.5031083Z | |
2021-07-11T00:40:32.5031750Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5032316Z | |
2021-07-11T00:40:32.5032888Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5033395Z | |
2021-07-11T00:40:32.5033823Z def test_custom_table_include(): | |
2021-07-11T00:40:32.5034315Z with make_app_client( | |
2021-07-11T00:40:32.5034966Z template_dir=str(pathlib.Path(__file__).parent / "test_templates") | |
2021-07-11T00:40:32.5035552Z ) as client: | |
2021-07-11T00:40:32.5036170Z response = client.get("/fixtures/complex_foreign_keys") | |
2021-07-11T00:40:32.5036839Z assert response.status == 200 | |
2021-07-11T00:40:32.5037308Z > assert ( | |
2021-07-11T00:40:32.5037795Z '<div class="custom-table-row">' | |
2021-07-11T00:40:32.5038662Z '1 - 2 - <a href="/fixtures/simple_primary_key/1">hello</a>�<em>1</em>' | |
2021-07-11T00:40:32.5039209Z "</div>" | |
2021-07-11T00:40:32.5039913Z ) == str(Soup(response.text, "html.parser").select_one("div.custom-table-row")) | |
2021-07-11T00:40:32.5040495Z | |
2021-07-11T00:40:32.5041097Z D:\a\datasette\datasette\tests\test_html.py:1396: | |
2021-07-11T00:40:32.5041652Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5042329Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5042994Z next(self.gen) | |
2021-07-11T00:40:32.5043621Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5044255Z yield TestClient(ds) | |
2021-07-11T00:40:32.5044928Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5045572Z self.cleanup() | |
2021-07-11T00:40:32.5046251Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5046947Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5047693Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5048457Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5049225Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5049994Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5050871Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5051718Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5052504Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5053163Z cls._rmtree(path) | |
2021-07-11T00:40:32.5053808Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5054564Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5055302Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5056015Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5056761Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5057515Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5058031Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5058301Z | |
2021-07-11T00:40:32.5058889Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf\\fixtures.db' | |
2021-07-11T00:40:32.5059842Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA93A820> | |
2021-07-11T00:40:32.5060387Z | |
2021-07-11T00:40:32.5060882Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5061331Z try: | |
2021-07-11T00:40:32.5061768Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5062762Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3x31qpqf\\fixtures.db' | |
2021-07-11T00:40:32.5063520Z | |
2021-07-11T00:40:32.5064180Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5065024Z ___________________________ test_allow_download_off ___________________________ | |
2021-07-11T00:40:32.5065746Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5066256Z | |
2021-07-11T00:40:32.5066793Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6' | |
2021-07-11T00:40:32.5067719Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF67E9D0> | |
2021-07-11T00:40:32.5068303Z | |
2021-07-11T00:40:32.5068731Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5069162Z try: | |
2021-07-11T00:40:32.5069615Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5070167Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5070646Z except OSError: | |
2021-07-11T00:40:32.5071249Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5071762Z entries = [] | |
2021-07-11T00:40:32.5072178Z for entry in entries: | |
2021-07-11T00:40:32.5072707Z fullname = entry.path | |
2021-07-11T00:40:32.5073191Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5073606Z try: | |
2021-07-11T00:40:32.5074018Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5074598Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5075287Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5075918Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5076578Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5077163Z except OSError: | |
2021-07-11T00:40:32.5077812Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5078381Z continue | |
2021-07-11T00:40:32.5078888Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5079372Z else: | |
2021-07-11T00:40:32.5079719Z try: | |
2021-07-11T00:40:32.5080128Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5081288Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6\\fixtures.db' | |
2021-07-11T00:40:32.5082313Z | |
2021-07-11T00:40:32.5082971Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5083510Z | |
2021-07-11T00:40:32.5084123Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5084633Z | |
2021-07-11T00:40:32.5085048Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5085763Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6\\fixtures.db' | |
2021-07-11T00:40:32.5087043Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FB7EDBC0>) | |
2021-07-11T00:40:32.5087929Z | |
2021-07-11T00:40:32.5088356Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5088969Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5089601Z def resetperms(path): | |
2021-07-11T00:40:32.5090062Z try: | |
2021-07-11T00:40:32.5090470Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5091038Z except AttributeError: | |
2021-07-11T00:40:32.5091515Z pass | |
2021-07-11T00:40:32.5091944Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5092319Z | |
2021-07-11T00:40:32.5092629Z try: | |
2021-07-11T00:40:32.5092996Z if path != name: | |
2021-07-11T00:40:32.5093542Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5094121Z resetperms(path) | |
2021-07-11T00:40:32.5094525Z | |
2021-07-11T00:40:32.5094858Z try: | |
2021-07-11T00:40:32.5095251Z > _os.unlink(path) | |
2021-07-11T00:40:32.5096336Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6\\fixtures.db' | |
2021-07-11T00:40:32.5097225Z | |
2021-07-11T00:40:32.5097930Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5098517Z | |
2021-07-11T00:40:32.5099084Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5099571Z | |
2021-07-11T00:40:32.5099988Z def test_allow_download_off(): | |
2021-07-11T00:40:32.5100687Z with make_app_client(is_immutable=True, config={"allow_download": False}) as client: | |
2021-07-11T00:40:32.5101480Z response = client.get("/fixtures") | |
2021-07-11T00:40:32.5102129Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.5102842Z assert not len(soup.findAll("a", {"href": re.compile(r"\.db$")})) | |
2021-07-11T00:40:32.5103517Z # Accessing URL directly should 403 | |
2021-07-11T00:40:32.5104115Z response = client.get("/fixtures.db") | |
2021-07-11T00:40:32.5104712Z > assert 403 == response.status | |
2021-07-11T00:40:32.5105043Z | |
2021-07-11T00:40:32.5105541Z D:\a\datasette\datasette\tests\test_html.py:1081: | |
2021-07-11T00:40:32.5106114Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5106797Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5107453Z next(self.gen) | |
2021-07-11T00:40:32.5108074Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5108727Z yield TestClient(ds) | |
2021-07-11T00:40:32.5109407Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5110059Z self.cleanup() | |
2021-07-11T00:40:32.5110718Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5111452Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5112151Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5112885Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5113649Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5114417Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5115215Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5115978Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5116748Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5117412Z cls._rmtree(path) | |
2021-07-11T00:40:32.5118092Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5118864Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5119586Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5120332Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5121115Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5121889Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5122403Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5122683Z | |
2021-07-11T00:40:32.5123296Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6\\fixtures.db' | |
2021-07-11T00:40:32.5124256Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF3DEC10> | |
2021-07-11T00:40:32.5124831Z | |
2021-07-11T00:40:32.5125270Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5125704Z try: | |
2021-07-11T00:40:32.5126153Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5127150Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpf42gqpe6\\fixtures.db' | |
2021-07-11T00:40:32.5127913Z | |
2021-07-11T00:40:32.5128595Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5129405Z ________________________ test_config_template_debug_on ________________________ | |
2021-07-11T00:40:32.5130163Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5130684Z | |
2021-07-11T00:40:32.5131221Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x' | |
2021-07-11T00:40:32.5132101Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA9FDDC0> | |
2021-07-11T00:40:32.5132675Z | |
2021-07-11T00:40:32.5133086Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5133545Z try: | |
2021-07-11T00:40:32.5134001Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5134540Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5135003Z except OSError: | |
2021-07-11T00:40:32.5135543Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5136075Z entries = [] | |
2021-07-11T00:40:32.5136525Z for entry in entries: | |
2021-07-11T00:40:32.5137014Z fullname = entry.path | |
2021-07-11T00:40:32.5137495Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5137908Z try: | |
2021-07-11T00:40:32.5138345Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5138959Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5139590Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5140214Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5140893Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5141497Z except OSError: | |
2021-07-11T00:40:32.5142126Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5142689Z continue | |
2021-07-11T00:40:32.5143214Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5143676Z else: | |
2021-07-11T00:40:32.5144030Z try: | |
2021-07-11T00:40:32.5144434Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5145651Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x\\fixtures.db' | |
2021-07-11T00:40:32.5146604Z | |
2021-07-11T00:40:32.5147234Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5147787Z | |
2021-07-11T00:40:32.5148375Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5148850Z | |
2021-07-11T00:40:32.5149262Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5149964Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x\\fixtures.db' | |
2021-07-11T00:40:32.5151962Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E813DF80>) | |
2021-07-11T00:40:32.5152869Z | |
2021-07-11T00:40:32.5153302Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5153928Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5154539Z def resetperms(path): | |
2021-07-11T00:40:32.5154959Z try: | |
2021-07-11T00:40:32.5155379Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5155893Z except AttributeError: | |
2021-07-11T00:40:32.5156362Z pass | |
2021-07-11T00:40:32.5156767Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5157142Z | |
2021-07-11T00:40:32.5157450Z try: | |
2021-07-11T00:40:32.5157833Z if path != name: | |
2021-07-11T00:40:32.5158371Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5158941Z resetperms(path) | |
2021-07-11T00:40:32.5159330Z | |
2021-07-11T00:40:32.5159647Z try: | |
2021-07-11T00:40:32.5160038Z > _os.unlink(path) | |
2021-07-11T00:40:32.5161130Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x\\fixtures.db' | |
2021-07-11T00:40:32.5162015Z | |
2021-07-11T00:40:32.5162679Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5163231Z | |
2021-07-11T00:40:32.5163815Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5164302Z | |
2021-07-11T00:40:32.5164716Z def test_config_template_debug_on(): | |
2021-07-11T00:40:32.5165375Z with make_app_client(config={"template_debug": True}) as client: | |
2021-07-11T00:40:32.5166141Z response = client.get("/fixtures/facetable?_context=1") | |
2021-07-11T00:40:32.5166842Z assert response.status == 200 | |
2021-07-11T00:40:32.5167545Z > assert response.text.startswith("<pre>{") | |
2021-07-11T00:40:32.5167990Z | |
2021-07-11T00:40:32.5168482Z D:\a\datasette\datasette\tests\test_html.py:1432: | |
2021-07-11T00:40:32.5169022Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5169698Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5170358Z next(self.gen) | |
2021-07-11T00:40:32.5171005Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5171653Z yield TestClient(ds) | |
2021-07-11T00:40:32.5172321Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5172976Z self.cleanup() | |
2021-07-11T00:40:32.5173636Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5174328Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5175010Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5175779Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5176534Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5177267Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5178016Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5178950Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5179802Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5180447Z cls._rmtree(path) | |
2021-07-11T00:40:32.5181155Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5181933Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5182671Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5183392Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5184118Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5184878Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5185386Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5185658Z | |
2021-07-11T00:40:32.5186244Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x\\fixtures.db' | |
2021-07-11T00:40:32.5187164Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E845DF70> | |
2021-07-11T00:40:32.5187751Z | |
2021-07-11T00:40:32.5188179Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5188630Z try: | |
2021-07-11T00:40:32.5189094Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5190082Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdc8_1n3x\\fixtures.db' | |
2021-07-11T00:40:32.5190873Z | |
2021-07-11T00:40:32.5191552Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5192314Z _____________________________ test_allow_sql_off ______________________________ | |
2021-07-11T00:40:32.5193040Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5193554Z | |
2021-07-11T00:40:32.5194076Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg' | |
2021-07-11T00:40:32.5194996Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF3EE3A0> | |
2021-07-11T00:40:32.5195594Z | |
2021-07-11T00:40:32.5196008Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5196456Z try: | |
2021-07-11T00:40:32.5196902Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5197439Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5197903Z except OSError: | |
2021-07-11T00:40:32.5198446Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5198957Z entries = [] | |
2021-07-11T00:40:32.5199387Z for entry in entries: | |
2021-07-11T00:40:32.5199859Z fullname = entry.path | |
2021-07-11T00:40:32.5200351Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5200760Z try: | |
2021-07-11T00:40:32.5201215Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5201789Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5202429Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5203058Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5203702Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5204301Z except OSError: | |
2021-07-11T00:40:32.5204925Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5205520Z continue | |
2021-07-11T00:40:32.5206026Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5206492Z else: | |
2021-07-11T00:40:32.5206843Z try: | |
2021-07-11T00:40:32.5207248Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5208381Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg\\fixtures.db' | |
2021-07-11T00:40:32.5209300Z | |
2021-07-11T00:40:32.5210617Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5211341Z | |
2021-07-11T00:40:32.5211950Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5212442Z | |
2021-07-11T00:40:32.5212850Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5213566Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg\\fixtures.db' | |
2021-07-11T00:40:32.5214844Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF5A93C0>) | |
2021-07-11T00:40:32.5215717Z | |
2021-07-11T00:40:32.5216127Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5216768Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5217383Z def resetperms(path): | |
2021-07-11T00:40:32.5217793Z try: | |
2021-07-11T00:40:32.5218210Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5218730Z except AttributeError: | |
2021-07-11T00:40:32.5219208Z pass | |
2021-07-11T00:40:32.5219610Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5220010Z | |
2021-07-11T00:40:32.5220320Z try: | |
2021-07-11T00:40:32.5220705Z if path != name: | |
2021-07-11T00:40:32.5221308Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5221880Z resetperms(path) | |
2021-07-11T00:40:32.5222289Z | |
2021-07-11T00:40:32.5222607Z try: | |
2021-07-11T00:40:32.5223020Z > _os.unlink(path) | |
2021-07-11T00:40:32.5224119Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg\\fixtures.db' | |
2021-07-11T00:40:32.5225018Z | |
2021-07-11T00:40:32.5225681Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5226238Z | |
2021-07-11T00:40:32.5226826Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5227315Z | |
2021-07-11T00:40:32.5227669Z def test_allow_sql_off(): | |
2021-07-11T00:40:32.5228240Z with make_app_client(metadata={"allow_sql": {}}) as client: | |
2021-07-11T00:40:32.5228871Z response = client.get("/fixtures") | |
2021-07-11T00:40:32.5229522Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.5230223Z assert not len(soup.findAll("textarea", {"name": "sql"})) | |
2021-07-11T00:40:32.5230965Z # The table page should no longer show "View and edit SQL" | |
2021-07-11T00:40:32.5231657Z response = client.get("/fixtures/sortable") | |
2021-07-11T00:40:32.5232323Z > assert b"View and edit SQL" not in response.body | |
2021-07-11T00:40:32.5232721Z | |
2021-07-11T00:40:32.5233207Z D:\a\datasette\datasette\tests\test_html.py:1091: | |
2021-07-11T00:40:32.5233769Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5234449Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5235092Z next(self.gen) | |
2021-07-11T00:40:32.5235712Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5236345Z yield TestClient(ds) | |
2021-07-11T00:40:32.5237047Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5237744Z self.cleanup() | |
2021-07-11T00:40:32.5238418Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5239110Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5239787Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5240546Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5241330Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5242095Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5242918Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5243767Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5244576Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5245213Z cls._rmtree(path) | |
2021-07-11T00:40:32.5245869Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5246649Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5247404Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5248095Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5248875Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5249636Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5250155Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5250428Z | |
2021-07-11T00:40:32.5251087Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg\\fixtures.db' | |
2021-07-11T00:40:32.5252047Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FE3E0790> | |
2021-07-11T00:40:32.5252619Z | |
2021-07-11T00:40:32.5253035Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5253480Z try: | |
2021-07-11T00:40:32.5253915Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5254954Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxc3jjosg\\fixtures.db' | |
2021-07-11T00:40:32.5255720Z | |
2021-07-11T00:40:32.5256380Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5257275Z _______________ test_debug_context_includes_extra_template_vars _______________ | |
2021-07-11T00:40:32.5258074Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5258585Z | |
2021-07-11T00:40:32.5259118Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc' | |
2021-07-11T00:40:32.5259980Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E94C8550> | |
2021-07-11T00:40:32.5260535Z | |
2021-07-11T00:40:32.5261022Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5261452Z try: | |
2021-07-11T00:40:32.5261904Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5262425Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5262900Z except OSError: | |
2021-07-11T00:40:32.5263446Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5263948Z entries = [] | |
2021-07-11T00:40:32.5264379Z for entry in entries: | |
2021-07-11T00:40:32.5264851Z fullname = entry.path | |
2021-07-11T00:40:32.5265343Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5265745Z try: | |
2021-07-11T00:40:32.5266168Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5266733Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5267388Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5267993Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5268649Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5269229Z except OSError: | |
2021-07-11T00:40:32.5269826Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5270406Z continue | |
2021-07-11T00:40:32.5270953Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5271430Z else: | |
2021-07-11T00:40:32.5271770Z try: | |
2021-07-11T00:40:32.5272183Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5273378Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc\\fixtures.db' | |
2021-07-11T00:40:32.5274356Z | |
2021-07-11T00:40:32.5275023Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5275589Z | |
2021-07-11T00:40:32.5276179Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5276669Z | |
2021-07-11T00:40:32.5277075Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5277775Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc\\fixtures.db' | |
2021-07-11T00:40:32.5279029Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA867DC0>) | |
2021-07-11T00:40:32.5279884Z | |
2021-07-11T00:40:32.5280290Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5280978Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5281566Z def resetperms(path): | |
2021-07-11T00:40:32.5281999Z try: | |
2021-07-11T00:40:32.5282406Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5282934Z except AttributeError: | |
2021-07-11T00:40:32.5283388Z pass | |
2021-07-11T00:40:32.5283806Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5284172Z | |
2021-07-11T00:40:32.5284493Z try: | |
2021-07-11T00:40:32.5284876Z if path != name: | |
2021-07-11T00:40:32.5285407Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5285974Z resetperms(path) | |
2021-07-11T00:40:32.5286348Z | |
2021-07-11T00:40:32.5286673Z try: | |
2021-07-11T00:40:32.5287057Z > _os.unlink(path) | |
2021-07-11T00:40:32.5288139Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc\\fixtures.db' | |
2021-07-11T00:40:32.5289041Z | |
2021-07-11T00:40:32.5289699Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5290269Z | |
2021-07-11T00:40:32.5290908Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5291382Z | |
2021-07-11T00:40:32.5291886Z def test_debug_context_includes_extra_template_vars(): | |
2021-07-11T00:40:32.5292642Z # https://github.com/simonw/datasette/issues/693 | |
2021-07-11T00:40:32.5293434Z with make_app_client(config={"template_debug": True}) as client: | |
2021-07-11T00:40:32.5294211Z response = client.get("/fixtures/facetable?_context=1") | |
2021-07-11T00:40:32.5294854Z # scope_path is added by PLUGIN1 | |
2021-07-11T00:40:32.5295453Z > assert "scope_path" in response.text | |
2021-07-11T00:40:32.5295821Z | |
2021-07-11T00:40:32.5296323Z D:\a\datasette\datasette\tests\test_html.py:1446: | |
2021-07-11T00:40:32.5296873Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5297534Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5298219Z next(self.gen) | |
2021-07-11T00:40:32.5298862Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5299504Z yield TestClient(ds) | |
2021-07-11T00:40:32.5300167Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5300883Z self.cleanup() | |
2021-07-11T00:40:32.5301558Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5302240Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5302951Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5303732Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5304468Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5305161Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5306046Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5306863Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5307651Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5308346Z cls._rmtree(path) | |
2021-07-11T00:40:32.5308991Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5309750Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5310505Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5311929Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5312725Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5313504Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5314035Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5314305Z | |
2021-07-11T00:40:32.5316072Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc\\fixtures.db' | |
2021-07-11T00:40:32.5317147Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA7E2820> | |
2021-07-11T00:40:32.5317727Z | |
2021-07-11T00:40:32.5318163Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5318596Z try: | |
2021-07-11T00:40:32.5319045Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5320039Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxo6iklgc\\fixtures.db' | |
2021-07-11T00:40:32.5320892Z | |
2021-07-11T00:40:32.5321609Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5322476Z _________ test_edit_sql_link_not_shown_if_user_lacks_permission[True] _________ | |
2021-07-11T00:40:32.5323301Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5323832Z | |
2021-07-11T00:40:32.5324376Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu' | |
2021-07-11T00:40:32.5325263Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA7C0430> | |
2021-07-11T00:40:32.5325845Z | |
2021-07-11T00:40:32.5326260Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5326703Z try: | |
2021-07-11T00:40:32.5327149Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5327684Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5328158Z except OSError: | |
2021-07-11T00:40:32.5328686Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5329221Z entries = [] | |
2021-07-11T00:40:32.5329655Z for entry in entries: | |
2021-07-11T00:40:32.5330159Z fullname = entry.path | |
2021-07-11T00:40:32.5330636Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5331112Z try: | |
2021-07-11T00:40:32.5331524Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5332118Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5332791Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5333414Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5334074Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5334675Z except OSError: | |
2021-07-11T00:40:32.5335310Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5335878Z continue | |
2021-07-11T00:40:32.5336382Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5336877Z else: | |
2021-07-11T00:40:32.5337247Z try: | |
2021-07-11T00:40:32.5337646Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5338749Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu\\fixtures.db' | |
2021-07-11T00:40:32.5339941Z | |
2021-07-11T00:40:32.5340600Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5341216Z | |
2021-07-11T00:40:32.5341801Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5342309Z | |
2021-07-11T00:40:32.5342711Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5343425Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu\\fixtures.db' | |
2021-07-11T00:40:32.5344674Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E96E1780>) | |
2021-07-11T00:40:32.5345552Z | |
2021-07-11T00:40:32.5345973Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5346580Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5347209Z def resetperms(path): | |
2021-07-11T00:40:32.5347636Z try: | |
2021-07-11T00:40:32.5348053Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5348569Z except AttributeError: | |
2021-07-11T00:40:32.5349037Z pass | |
2021-07-11T00:40:32.5349476Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5349868Z | |
2021-07-11T00:40:32.5350190Z try: | |
2021-07-11T00:40:32.5350557Z if path != name: | |
2021-07-11T00:40:32.5351160Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5351734Z resetperms(path) | |
2021-07-11T00:40:32.5352139Z | |
2021-07-11T00:40:32.5352452Z try: | |
2021-07-11T00:40:32.5352861Z > _os.unlink(path) | |
2021-07-11T00:40:32.5353932Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu\\fixtures.db' | |
2021-07-11T00:40:32.5354884Z | |
2021-07-11T00:40:32.5355551Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5356125Z | |
2021-07-11T00:40:32.5356711Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5357232Z | |
2021-07-11T00:40:32.5357612Z permission_allowed = True | |
2021-07-11T00:40:32.5357929Z | |
2021-07-11T00:40:32.5358544Z @pytest.mark.parametrize("permission_allowed", [True, False]) | |
2021-07-11T00:40:32.5359486Z def test_edit_sql_link_not_shown_if_user_lacks_permission(permission_allowed): | |
2021-07-11T00:40:32.5360144Z with make_app_client( | |
2021-07-11T00:40:32.5360574Z metadata={ | |
2021-07-11T00:40:32.5361218Z "allow_sql": None if permission_allowed else {"id": "not-you"}, | |
2021-07-11T00:40:32.5361988Z "databases": {"fixtures": {"queries": {"simple": "select 1 + 1"}}}, | |
2021-07-11T00:40:32.5362488Z } | |
2021-07-11T00:40:32.5362838Z ) as client: | |
2021-07-11T00:40:32.5363366Z response = client.get("/fixtures/simple") | |
2021-07-11T00:40:32.5363972Z if permission_allowed: | |
2021-07-11T00:40:32.5364541Z assert "Edit SQL" in response.text | |
2021-07-11T00:40:32.5365023Z else: | |
2021-07-11T00:40:32.5365498Z > assert "Edit SQL" not in response.text | |
2021-07-11T00:40:32.5365885Z | |
2021-07-11T00:40:32.5366387Z D:\a\datasette\datasette\tests\test_html.py:1600: | |
2021-07-11T00:40:32.5366942Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5367610Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5368252Z next(self.gen) | |
2021-07-11T00:40:32.5368908Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5369573Z yield TestClient(ds) | |
2021-07-11T00:40:32.5370271Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5370988Z self.cleanup() | |
2021-07-11T00:40:32.5371755Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5372530Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5373213Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5373984Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5374747Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5375458Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5376204Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5376962Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5377736Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5378376Z cls._rmtree(path) | |
2021-07-11T00:40:32.5379033Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5379807Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5380565Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5381335Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5382198Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5382958Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5383461Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5383735Z | |
2021-07-11T00:40:32.5384352Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu\\fixtures.db' | |
2021-07-11T00:40:32.5385285Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA975700> | |
2021-07-11T00:40:32.5385843Z | |
2021-07-11T00:40:32.5386326Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5386757Z try: | |
2021-07-11T00:40:32.5387204Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5388231Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmplc4mccxu\\fixtures.db' | |
2021-07-11T00:40:32.5389012Z | |
2021-07-11T00:40:32.5389680Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5390605Z ________ test_edit_sql_link_not_shown_if_user_lacks_permission[False] _________ | |
2021-07-11T00:40:32.5391489Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5392003Z | |
2021-07-11T00:40:32.5392539Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc' | |
2021-07-11T00:40:32.5393458Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E82F5F70> | |
2021-07-11T00:40:32.5394009Z | |
2021-07-11T00:40:32.5394433Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5394909Z try: | |
2021-07-11T00:40:32.5395346Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5395883Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5396345Z except OSError: | |
2021-07-11T00:40:32.5396892Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5397413Z entries = [] | |
2021-07-11T00:40:32.5397883Z for entry in entries: | |
2021-07-11T00:40:32.5398352Z fullname = entry.path | |
2021-07-11T00:40:32.5398844Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5399245Z try: | |
2021-07-11T00:40:32.5399672Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5400261Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5400990Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5401614Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5402258Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5402863Z except OSError: | |
2021-07-11T00:40:32.5403501Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5404146Z continue | |
2021-07-11T00:40:32.5405295Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5405774Z else: | |
2021-07-11T00:40:32.5406128Z try: | |
2021-07-11T00:40:32.5406528Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5407645Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc\\fixtures.db' | |
2021-07-11T00:40:32.5408543Z | |
2021-07-11T00:40:32.5409202Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5409788Z | |
2021-07-11T00:40:32.5410354Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5410907Z | |
2021-07-11T00:40:32.5411319Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5412043Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc\\fixtures.db' | |
2021-07-11T00:40:32.5413314Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA75A4C0>) | |
2021-07-11T00:40:32.5414170Z | |
2021-07-11T00:40:32.5414598Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5415239Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5415821Z def resetperms(path): | |
2021-07-11T00:40:32.5416249Z try: | |
2021-07-11T00:40:32.5416666Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5417209Z except AttributeError: | |
2021-07-11T00:40:32.5417675Z pass | |
2021-07-11T00:40:32.5418079Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5418457Z | |
2021-07-11T00:40:32.5418784Z try: | |
2021-07-11T00:40:32.5419187Z if path != name: | |
2021-07-11T00:40:32.5419721Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5420292Z resetperms(path) | |
2021-07-11T00:40:32.5420672Z | |
2021-07-11T00:40:32.5421064Z try: | |
2021-07-11T00:40:32.5421462Z > _os.unlink(path) | |
2021-07-11T00:40:32.5422553Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc\\fixtures.db' | |
2021-07-11T00:40:32.5423452Z | |
2021-07-11T00:40:32.5424156Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5424730Z | |
2021-07-11T00:40:32.5425313Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5425800Z | |
2021-07-11T00:40:32.5426185Z permission_allowed = False | |
2021-07-11T00:40:32.5426503Z | |
2021-07-11T00:40:32.5427119Z @pytest.mark.parametrize("permission_allowed", [True, False]) | |
2021-07-11T00:40:32.5428010Z def test_edit_sql_link_not_shown_if_user_lacks_permission(permission_allowed): | |
2021-07-11T00:40:32.5428674Z with make_app_client( | |
2021-07-11T00:40:32.5429098Z metadata={ | |
2021-07-11T00:40:32.5429681Z "allow_sql": None if permission_allowed else {"id": "not-you"}, | |
2021-07-11T00:40:32.5430399Z "databases": {"fixtures": {"queries": {"simple": "select 1 + 1"}}}, | |
2021-07-11T00:40:32.5430982Z } | |
2021-07-11T00:40:32.5431324Z ) as client: | |
2021-07-11T00:40:32.5431859Z response = client.get("/fixtures/simple") | |
2021-07-11T00:40:32.5432440Z if permission_allowed: | |
2021-07-11T00:40:32.5433007Z assert "Edit SQL" in response.text | |
2021-07-11T00:40:32.5433500Z else: | |
2021-07-11T00:40:32.5434003Z > assert "Edit SQL" not in response.text | |
2021-07-11T00:40:32.5434376Z | |
2021-07-11T00:40:32.5434847Z D:\a\datasette\datasette\tests\test_html.py:1600: | |
2021-07-11T00:40:32.5435400Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5436161Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5436868Z next(self.gen) | |
2021-07-11T00:40:32.5437492Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5438126Z yield TestClient(ds) | |
2021-07-11T00:40:32.5438860Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5439504Z self.cleanup() | |
2021-07-11T00:40:32.5440179Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5440921Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5441612Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5442366Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5443088Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5443794Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5444526Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5445360Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5446116Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5446802Z cls._rmtree(path) | |
2021-07-11T00:40:32.5447476Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5448221Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5448970Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5449698Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5450437Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5451245Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5451800Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5452075Z | |
2021-07-11T00:40:32.5452690Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc\\fixtures.db' | |
2021-07-11T00:40:32.5453654Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EA7C1DC0> | |
2021-07-11T00:40:32.5454244Z | |
2021-07-11T00:40:32.5454674Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5455134Z try: | |
2021-07-11T00:40:32.5455569Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5456588Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbr2phfwc\\fixtures.db' | |
2021-07-11T00:40:32.5457387Z | |
2021-07-11T00:40:32.5458044Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5459316Z _ test_facet_more_links[5-/fixtures/facetable?_facet=neighborhood-2-True-/fixtures/facetable?_facet=neighborhood&_facet_size=max] _ | |
2021-07-11T00:40:32.5460489Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5461061Z | |
2021-07-11T00:40:32.5461589Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s' | |
2021-07-11T00:40:32.5462445Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E96E9820> | |
2021-07-11T00:40:32.5463007Z | |
2021-07-11T00:40:32.5463433Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5463864Z try: | |
2021-07-11T00:40:32.5464320Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5464843Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5465315Z except OSError: | |
2021-07-11T00:40:32.5465843Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5466381Z entries = [] | |
2021-07-11T00:40:32.5466832Z for entry in entries: | |
2021-07-11T00:40:32.5467327Z fullname = entry.path | |
2021-07-11T00:40:32.5467819Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5468217Z try: | |
2021-07-11T00:40:32.5468642Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5469305Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5470007Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5470618Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5472031Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5473270Z except OSError: | |
2021-07-11T00:40:32.5473976Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5474560Z continue | |
2021-07-11T00:40:32.5475054Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5475552Z else: | |
2021-07-11T00:40:32.5475916Z try: | |
2021-07-11T00:40:32.5476346Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5477440Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s\\fixtures.db' | |
2021-07-11T00:40:32.5478377Z | |
2021-07-11T00:40:32.5479069Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5479617Z | |
2021-07-11T00:40:32.5480192Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5480684Z | |
2021-07-11T00:40:32.5481196Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5481904Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s\\fixtures.db' | |
2021-07-11T00:40:32.5483141Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E698BF00>) | |
2021-07-11T00:40:32.5484031Z | |
2021-07-11T00:40:32.5484455Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5485077Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5485677Z def resetperms(path): | |
2021-07-11T00:40:32.5486121Z try: | |
2021-07-11T00:40:32.5486552Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5487073Z except AttributeError: | |
2021-07-11T00:40:32.5487533Z pass | |
2021-07-11T00:40:32.5487952Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5488316Z | |
2021-07-11T00:40:32.5488637Z try: | |
2021-07-11T00:40:32.5489004Z if path != name: | |
2021-07-11T00:40:32.5489568Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5490155Z resetperms(path) | |
2021-07-11T00:40:32.5490545Z | |
2021-07-11T00:40:32.5490932Z try: | |
2021-07-11T00:40:32.5491310Z > _os.unlink(path) | |
2021-07-11T00:40:32.5492415Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s\\fixtures.db' | |
2021-07-11T00:40:32.5493309Z | |
2021-07-11T00:40:32.5493966Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5494559Z | |
2021-07-11T00:40:32.5495178Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5495651Z | |
2021-07-11T00:40:32.5496223Z max_returned_rows = 5, path = '/fixtures/facetable?_facet=neighborhood' | |
2021-07-11T00:40:32.5497005Z expected_num_facets = 2, expected_ellipses = True | |
2021-07-11T00:40:32.5497845Z expected_ellipses_url = '/fixtures/facetable?_facet=neighborhood&_facet_size=max' | |
2021-07-11T00:40:32.5498383Z | |
2021-07-11T00:40:32.5498869Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5499853Z "max_returned_rows,path,expected_num_facets,expected_ellipses,expected_ellipses_url", | |
2021-07-11T00:40:32.5500617Z ( | |
2021-07-11T00:40:32.5500980Z ( | |
2021-07-11T00:40:32.5501323Z 5, | |
2021-07-11T00:40:32.5501760Z # Default should show 2 facets | |
2021-07-11T00:40:32.5502391Z "/fixtures/facetable?_facet=neighborhood", | |
2021-07-11T00:40:32.5503065Z 2, | |
2021-07-11T00:40:32.5503424Z True, | |
2021-07-11T00:40:32.5504011Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5504590Z ), | |
2021-07-11T00:40:32.5505138Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5505682Z ( | |
2021-07-11T00:40:32.5505995Z 5, | |
2021-07-11T00:40:32.5506551Z "/fixtures/facetable?_facet=neighborhood&_facet_size=50", | |
2021-07-11T00:40:32.5507098Z 5, | |
2021-07-11T00:40:32.5507430Z True, | |
2021-07-11T00:40:32.5508013Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5508554Z ), | |
2021-07-11T00:40:32.5509073Z # If max_returned_rows is high enough, should return all | |
2021-07-11T00:40:32.5509567Z ( | |
2021-07-11T00:40:32.5509887Z 20, | |
2021-07-11T00:40:32.5510440Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5511057Z 14, | |
2021-07-11T00:40:32.5511396Z False, | |
2021-07-11T00:40:32.5511760Z None, | |
2021-07-11T00:40:32.5512095Z ), | |
2021-07-11T00:40:32.5512589Z # If num facets > max_returned_rows, show ... without a link | |
2021-07-11T00:40:32.5513318Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5513856Z ( | |
2021-07-11T00:40:32.5514181Z 5, | |
2021-07-11T00:40:32.5514729Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5515282Z 5, | |
2021-07-11T00:40:32.5515633Z True, | |
2021-07-11T00:40:32.5516033Z None, | |
2021-07-11T00:40:32.5516358Z ), | |
2021-07-11T00:40:32.5516672Z ), | |
2021-07-11T00:40:32.5516976Z ) | |
2021-07-11T00:40:32.5517352Z def test_facet_more_links( | |
2021-07-11T00:40:32.5517858Z max_returned_rows, | |
2021-07-11T00:40:32.5518257Z path, | |
2021-07-11T00:40:32.5518676Z expected_num_facets, | |
2021-07-11T00:40:32.5519148Z expected_ellipses, | |
2021-07-11T00:40:32.5519650Z expected_ellipses_url, | |
2021-07-11T00:40:32.5520083Z ): | |
2021-07-11T00:40:32.5520468Z with make_app_client( | |
2021-07-11T00:40:32.5521141Z config={"max_returned_rows": max_returned_rows, "default_facet_size": 2} | |
2021-07-11T00:40:32.5521724Z ) as client: | |
2021-07-11T00:40:32.5522179Z response = client.get(path) | |
2021-07-11T00:40:32.5522803Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.5523695Z lis = soup.select("#facet-neighborhood ul li:not(.facet-truncated)") | |
2021-07-11T00:40:32.5524549Z facet_truncated = soup.select_one(".facet-truncated") | |
2021-07-11T00:40:32.5525235Z assert len(lis) == expected_num_facets | |
2021-07-11T00:40:32.5525826Z if not expected_ellipses: | |
2021-07-11T00:40:32.5526396Z assert facet_truncated is None | |
2021-07-11T00:40:32.5526837Z else: | |
2021-07-11T00:40:32.5527290Z if expected_ellipses_url: | |
2021-07-11T00:40:32.5527973Z assert facet_truncated.find("a")["href"] == expected_ellipses_url | |
2021-07-11T00:40:32.5528591Z else: | |
2021-07-11T00:40:32.5529099Z > assert facet_truncated.find("a") is None | |
2021-07-11T00:40:32.5529470Z | |
2021-07-11T00:40:32.5529959Z D:\a\datasette\datasette\tests\test_html.py:1700: | |
2021-07-11T00:40:32.5530493Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5531227Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5531882Z next(self.gen) | |
2021-07-11T00:40:32.5532491Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5533200Z yield TestClient(ds) | |
2021-07-11T00:40:32.5533925Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5534583Z self.cleanup() | |
2021-07-11T00:40:32.5535241Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5535935Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5536616Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5537368Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5538105Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5538826Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5539570Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5540373Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5541208Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5541858Z cls._rmtree(path) | |
2021-07-11T00:40:32.5542520Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5543273Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5544034Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5544758Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5545487Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5546242Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5546749Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5547024Z | |
2021-07-11T00:40:32.5547615Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s\\fixtures.db' | |
2021-07-11T00:40:32.5548592Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E831B9D0> | |
2021-07-11T00:40:32.5549154Z | |
2021-07-11T00:40:32.5549577Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5550016Z try: | |
2021-07-11T00:40:32.5550507Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5551544Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph0h5kj_s\\fixtures.db' | |
2021-07-11T00:40:32.5552290Z | |
2021-07-11T00:40:32.5552960Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5554170Z _ test_facet_more_links[5-/fixtures/facetable?_facet=neighborhood&_facet_size=50-5-True-/fixtures/facetable?_facet=neighborhood&_facet_size=max] _ | |
2021-07-11T00:40:32.5555322Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5555839Z | |
2021-07-11T00:40:32.5556366Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd' | |
2021-07-11T00:40:32.5557261Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E9735430> | |
2021-07-11T00:40:32.5557814Z | |
2021-07-11T00:40:32.5558230Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5558681Z try: | |
2021-07-11T00:40:32.5559139Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5559677Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5560134Z except OSError: | |
2021-07-11T00:40:32.5560674Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5561235Z entries = [] | |
2021-07-11T00:40:32.5561666Z for entry in entries: | |
2021-07-11T00:40:32.5562154Z fullname = entry.path | |
2021-07-11T00:40:32.5562670Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5563102Z try: | |
2021-07-11T00:40:32.5563515Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5564090Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5564760Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5565461Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5566160Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5566741Z except OSError: | |
2021-07-11T00:40:32.5567393Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5567960Z continue | |
2021-07-11T00:40:32.5568486Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5568952Z else: | |
2021-07-11T00:40:32.5569326Z try: | |
2021-07-11T00:40:32.5569766Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5570938Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd\\fixtures.db' | |
2021-07-11T00:40:32.5571873Z | |
2021-07-11T00:40:32.5572520Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5573062Z | |
2021-07-11T00:40:32.5573668Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5574183Z | |
2021-07-11T00:40:32.5574589Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5575299Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd\\fixtures.db' | |
2021-07-11T00:40:32.5576574Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E95D5480>) | |
2021-07-11T00:40:32.5577417Z | |
2021-07-11T00:40:32.5577840Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5578449Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5579045Z def resetperms(path): | |
2021-07-11T00:40:32.5579459Z try: | |
2021-07-11T00:40:32.5579875Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5580386Z except AttributeError: | |
2021-07-11T00:40:32.5580914Z pass | |
2021-07-11T00:40:32.5581321Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5581701Z | |
2021-07-11T00:40:32.5582042Z try: | |
2021-07-11T00:40:32.5582441Z if path != name: | |
2021-07-11T00:40:32.5582973Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5583541Z resetperms(path) | |
2021-07-11T00:40:32.5583926Z | |
2021-07-11T00:40:32.5584241Z try: | |
2021-07-11T00:40:32.5584631Z > _os.unlink(path) | |
2021-07-11T00:40:32.5585704Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd\\fixtures.db' | |
2021-07-11T00:40:32.5586606Z | |
2021-07-11T00:40:32.5587277Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5587834Z | |
2021-07-11T00:40:32.5588415Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5588900Z | |
2021-07-11T00:40:32.5589250Z max_returned_rows = 5 | |
2021-07-11T00:40:32.5589867Z path = '/fixtures/facetable?_facet=neighborhood&_facet_size=50' | |
2021-07-11T00:40:32.5590587Z expected_num_facets = 5, expected_ellipses = True | |
2021-07-11T00:40:32.5591469Z expected_ellipses_url = '/fixtures/facetable?_facet=neighborhood&_facet_size=max' | |
2021-07-11T00:40:32.5592010Z | |
2021-07-11T00:40:32.5592478Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5593432Z "max_returned_rows,path,expected_num_facets,expected_ellipses,expected_ellipses_url", | |
2021-07-11T00:40:32.5594183Z ( | |
2021-07-11T00:40:32.5594503Z ( | |
2021-07-11T00:40:32.5594825Z 5, | |
2021-07-11T00:40:32.5595244Z # Default should show 2 facets | |
2021-07-11T00:40:32.5595854Z "/fixtures/facetable?_facet=neighborhood", | |
2021-07-11T00:40:32.5596347Z 2, | |
2021-07-11T00:40:32.5596693Z True, | |
2021-07-11T00:40:32.5597326Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5597959Z ), | |
2021-07-11T00:40:32.5598522Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5599064Z ( | |
2021-07-11T00:40:32.5599371Z 5, | |
2021-07-11T00:40:32.5599929Z "/fixtures/facetable?_facet=neighborhood&_facet_size=50", | |
2021-07-11T00:40:32.5600509Z 5, | |
2021-07-11T00:40:32.5600917Z True, | |
2021-07-11T00:40:32.5601497Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5602029Z ), | |
2021-07-11T00:40:32.5602566Z # If max_returned_rows is high enough, should return all | |
2021-07-11T00:40:32.5603058Z ( | |
2021-07-11T00:40:32.5603380Z 20, | |
2021-07-11T00:40:32.5603929Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5604481Z 14, | |
2021-07-11T00:40:32.5604819Z False, | |
2021-07-11T00:40:32.5605195Z None, | |
2021-07-11T00:40:32.5605531Z ), | |
2021-07-11T00:40:32.5606026Z # If num facets > max_returned_rows, show ... without a link | |
2021-07-11T00:40:32.5606760Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5607293Z ( | |
2021-07-11T00:40:32.5607615Z 5, | |
2021-07-11T00:40:32.5608160Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5608731Z 5, | |
2021-07-11T00:40:32.5609082Z True, | |
2021-07-11T00:40:32.5609461Z None, | |
2021-07-11T00:40:32.5609782Z ), | |
2021-07-11T00:40:32.5610096Z ), | |
2021-07-11T00:40:32.5610393Z ) | |
2021-07-11T00:40:32.5610783Z def test_facet_more_links( | |
2021-07-11T00:40:32.5611298Z max_returned_rows, | |
2021-07-11T00:40:32.5611679Z path, | |
2021-07-11T00:40:32.5612094Z expected_num_facets, | |
2021-07-11T00:40:32.5612569Z expected_ellipses, | |
2021-07-11T00:40:32.5613078Z expected_ellipses_url, | |
2021-07-11T00:40:32.5613500Z ): | |
2021-07-11T00:40:32.5613880Z with make_app_client( | |
2021-07-11T00:40:32.5614502Z config={"max_returned_rows": max_returned_rows, "default_facet_size": 2} | |
2021-07-11T00:40:32.5615113Z ) as client: | |
2021-07-11T00:40:32.5615739Z response = client.get(path) | |
2021-07-11T00:40:32.5616367Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.5617197Z lis = soup.select("#facet-neighborhood ul li:not(.facet-truncated)") | |
2021-07-11T00:40:32.5618066Z facet_truncated = soup.select_one(".facet-truncated") | |
2021-07-11T00:40:32.5618756Z assert len(lis) == expected_num_facets | |
2021-07-11T00:40:32.5619306Z if not expected_ellipses: | |
2021-07-11T00:40:32.5619856Z assert facet_truncated is None | |
2021-07-11T00:40:32.5620298Z else: | |
2021-07-11T00:40:32.5620760Z if expected_ellipses_url: | |
2021-07-11T00:40:32.5621505Z assert facet_truncated.find("a")["href"] == expected_ellipses_url | |
2021-07-11T00:40:32.5622127Z else: | |
2021-07-11T00:40:32.5622641Z > assert facet_truncated.find("a") is None | |
2021-07-11T00:40:32.5623017Z | |
2021-07-11T00:40:32.5623510Z D:\a\datasette\datasette\tests\test_html.py:1700: | |
2021-07-11T00:40:32.5624052Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5624722Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5625403Z next(self.gen) | |
2021-07-11T00:40:32.5626015Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5626665Z yield TestClient(ds) | |
2021-07-11T00:40:32.5627330Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5628004Z self.cleanup() | |
2021-07-11T00:40:32.5628758Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5629515Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5630190Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5631622Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5632525Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5633241Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5633999Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5634773Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5635556Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5636208Z cls._rmtree(path) | |
2021-07-11T00:40:32.5636869Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5637616Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5638391Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5639100Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5639827Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5640587Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5641137Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5641414Z | |
2021-07-11T00:40:32.5642022Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd\\fixtures.db' | |
2021-07-11T00:40:32.5642978Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EABABCA0> | |
2021-07-11T00:40:32.5643562Z | |
2021-07-11T00:40:32.5643994Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5644426Z try: | |
2021-07-11T00:40:32.5644875Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5652749Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp9zpjwevd\\fixtures.db' | |
2021-07-11T00:40:32.5653765Z | |
2021-07-11T00:40:32.5657883Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5659686Z ___________________ test_allow_unauthenticated[allow0-403] ____________________ | |
2021-07-11T00:40:32.5660524Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5661461Z | |
2021-07-11T00:40:32.5662220Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei' | |
2021-07-11T00:40:32.5665367Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFBA5F70> | |
2021-07-11T00:40:32.5665959Z | |
2021-07-11T00:40:32.5666377Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5666828Z try: | |
2021-07-11T00:40:32.5667272Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5667813Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5668288Z except OSError: | |
2021-07-11T00:40:32.5668838Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5669342Z entries = [] | |
2021-07-11T00:40:32.5669774Z for entry in entries: | |
2021-07-11T00:40:32.5670248Z fullname = entry.path | |
2021-07-11T00:40:32.5671172Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5671596Z try: | |
2021-07-11T00:40:32.5672012Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5672588Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5673220Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5673846Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5674492Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5675073Z except OSError: | |
2021-07-11T00:40:32.5675906Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5676566Z continue | |
2021-07-11T00:40:32.5677666Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5678497Z else: | |
2021-07-11T00:40:32.5678856Z try: | |
2021-07-11T00:40:32.5679440Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5681212Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei\\fixtures.db' | |
2021-07-11T00:40:32.5684964Z | |
2021-07-11T00:40:32.5685635Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5686754Z | |
2021-07-11T00:40:32.5687353Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5687830Z | |
2021-07-11T00:40:32.5698142Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5700473Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei\\fixtures.db' | |
2021-07-11T00:40:32.5701884Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFAE8F40>) | |
2021-07-11T00:40:32.5702816Z | |
2021-07-11T00:40:32.5703230Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5703854Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5704458Z def resetperms(path): | |
2021-07-11T00:40:32.5704873Z try: | |
2021-07-11T00:40:32.5705326Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5705855Z except AttributeError: | |
2021-07-11T00:40:32.5706328Z pass | |
2021-07-11T00:40:32.5706730Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5707108Z | |
2021-07-11T00:40:32.5707414Z try: | |
2021-07-11T00:40:32.5707796Z if path != name: | |
2021-07-11T00:40:32.5708514Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5709281Z resetperms(path) | |
2021-07-11T00:40:32.5709669Z | |
2021-07-11T00:40:32.5710008Z try: | |
2021-07-11T00:40:32.5710412Z > _os.unlink(path) | |
2021-07-11T00:40:32.5713349Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei\\fixtures.db' | |
2021-07-11T00:40:32.5714285Z | |
2021-07-11T00:40:32.5714965Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5715527Z | |
2021-07-11T00:40:32.5720283Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5720793Z | |
2021-07-11T00:40:32.5721250Z allow = {'id': 'root'}, expected = 403 | |
2021-07-11T00:40:32.5721567Z | |
2021-07-11T00:40:32.5722054Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5722629Z "allow,expected", | |
2021-07-11T00:40:32.5723035Z [ | |
2021-07-11T00:40:32.5723387Z ({"id": "root"}, 403), | |
2021-07-11T00:40:32.5723907Z ({"id": "root", "unauthenticated": True}, 200), | |
2021-07-11T00:40:32.5724355Z ], | |
2021-07-11T00:40:32.5724665Z ) | |
2021-07-11T00:40:32.5725177Z def test_allow_unauthenticated(allow, expected): | |
2021-07-11T00:40:32.5725893Z with make_app_client(metadata={"allow": allow}) as client: | |
2021-07-11T00:40:32.5726530Z > assert expected == client.get("/").status | |
2021-07-11T00:40:32.5726908Z | |
2021-07-11T00:40:32.5731352Z D:\a\datasette\datasette\tests\test_permissions.py:363: | |
2021-07-11T00:40:32.5731979Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5732660Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5733323Z next(self.gen) | |
2021-07-11T00:40:32.5733938Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5734591Z yield TestClient(ds) | |
2021-07-11T00:40:32.5735463Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5736200Z self.cleanup() | |
2021-07-11T00:40:32.5740265Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5741382Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5747959Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5748852Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5749591Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5751259Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5752018Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5752785Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5753558Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5754205Z cls._rmtree(path) | |
2021-07-11T00:40:32.5754885Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5755626Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5757909Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5758643Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5763127Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5763919Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5764434Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5764718Z | |
2021-07-11T00:40:32.5765335Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei\\fixtures.db' | |
2021-07-11T00:40:32.5766286Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFAB7EE0> | |
2021-07-11T00:40:32.5766863Z | |
2021-07-11T00:40:32.5767298Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5767746Z try: | |
2021-07-11T00:40:32.5768203Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5769192Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp47jibxei\\fixtures.db' | |
2021-07-11T00:40:32.5769953Z | |
2021-07-11T00:40:32.5770860Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5774378Z _ test_facet_more_links[20-/fixtures/facetable?_facet=neighborhood&_facet_size=max-14-False-None] _ | |
2021-07-11T00:40:32.5776483Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5777009Z | |
2021-07-11T00:40:32.5781533Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k' | |
2021-07-11T00:40:32.5785193Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EABC7B80> | |
2021-07-11T00:40:32.5786038Z | |
2021-07-11T00:40:32.5786618Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5787089Z try: | |
2021-07-11T00:40:32.5787547Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5788429Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5788902Z except OSError: | |
2021-07-11T00:40:32.5789854Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5790363Z entries = [] | |
2021-07-11T00:40:32.5790820Z for entry in entries: | |
2021-07-11T00:40:32.5791674Z fullname = entry.path | |
2021-07-11T00:40:32.5792192Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5792597Z try: | |
2021-07-11T00:40:32.5793029Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5793628Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5794282Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5794928Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5796317Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5797069Z except OSError: | |
2021-07-11T00:40:32.5797693Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5798280Z continue | |
2021-07-11T00:40:32.5798778Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5799257Z else: | |
2021-07-11T00:40:32.5799613Z try: | |
2021-07-11T00:40:32.5800037Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5801244Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k\\fixtures.db' | |
2021-07-11T00:40:32.5802145Z | |
2021-07-11T00:40:32.5802782Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5803333Z | |
2021-07-11T00:40:32.5803903Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5804404Z | |
2021-07-11T00:40:32.5804817Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5805513Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k\\fixtures.db' | |
2021-07-11T00:40:32.5806776Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA9D2C80>) | |
2021-07-11T00:40:32.5807656Z | |
2021-07-11T00:40:32.5808082Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5808722Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5809304Z def resetperms(path): | |
2021-07-11T00:40:32.5809727Z try: | |
2021-07-11T00:40:32.5810145Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5810674Z except AttributeError: | |
2021-07-11T00:40:32.5811234Z pass | |
2021-07-11T00:40:32.5811653Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5812031Z | |
2021-07-11T00:40:32.5812348Z try: | |
2021-07-11T00:40:32.5812733Z if path != name: | |
2021-07-11T00:40:32.5813268Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5813875Z resetperms(path) | |
2021-07-11T00:40:32.5814267Z | |
2021-07-11T00:40:32.5814594Z try: | |
2021-07-11T00:40:32.5814973Z > _os.unlink(path) | |
2021-07-11T00:40:32.5816075Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k\\fixtures.db' | |
2021-07-11T00:40:32.5817012Z | |
2021-07-11T00:40:32.5817671Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5818243Z | |
2021-07-11T00:40:32.5818824Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5819311Z | |
2021-07-11T00:40:32.5819659Z max_returned_rows = 20 | |
2021-07-11T00:40:32.5820284Z path = '/fixtures/facetable?_facet=neighborhood&_facet_size=max' | |
2021-07-11T00:40:32.5821080Z expected_num_facets = 14, expected_ellipses = False | |
2021-07-11T00:40:32.5821718Z expected_ellipses_url = None | |
2021-07-11T00:40:32.5822063Z | |
2021-07-11T00:40:32.5822531Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5823484Z "max_returned_rows,path,expected_num_facets,expected_ellipses,expected_ellipses_url", | |
2021-07-11T00:40:32.5824238Z ( | |
2021-07-11T00:40:32.5824577Z ( | |
2021-07-11T00:40:32.5824904Z 5, | |
2021-07-11T00:40:32.5825357Z # Default should show 2 facets | |
2021-07-11T00:40:32.5825957Z "/fixtures/facetable?_facet=neighborhood", | |
2021-07-11T00:40:32.5826468Z 2, | |
2021-07-11T00:40:32.5826816Z True, | |
2021-07-11T00:40:32.5827402Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5827970Z ), | |
2021-07-11T00:40:32.5828606Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5829215Z ( | |
2021-07-11T00:40:32.5829526Z 5, | |
2021-07-11T00:40:32.5830088Z "/fixtures/facetable?_facet=neighborhood&_facet_size=50", | |
2021-07-11T00:40:32.5830622Z 5, | |
2021-07-11T00:40:32.5831040Z True, | |
2021-07-11T00:40:32.5831607Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5832154Z ), | |
2021-07-11T00:40:32.5832673Z # If max_returned_rows is high enough, should return all | |
2021-07-11T00:40:32.5833166Z ( | |
2021-07-11T00:40:32.5833490Z 20, | |
2021-07-11T00:40:32.5834042Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5834592Z 14, | |
2021-07-11T00:40:32.5834931Z False, | |
2021-07-11T00:40:32.5835299Z None, | |
2021-07-11T00:40:32.5835623Z ), | |
2021-07-11T00:40:32.5836133Z # If num facets > max_returned_rows, show ... without a link | |
2021-07-11T00:40:32.5836857Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.5837426Z ( | |
2021-07-11T00:40:32.5837766Z 5, | |
2021-07-11T00:40:32.5838330Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.5838878Z 5, | |
2021-07-11T00:40:32.5839211Z True, | |
2021-07-11T00:40:32.5839569Z None, | |
2021-07-11T00:40:32.5839891Z ), | |
2021-07-11T00:40:32.5840204Z ), | |
2021-07-11T00:40:32.5840496Z ) | |
2021-07-11T00:40:32.5840947Z def test_facet_more_links( | |
2021-07-11T00:40:32.5841432Z max_returned_rows, | |
2021-07-11T00:40:32.5841854Z path, | |
2021-07-11T00:40:32.5842255Z expected_num_facets, | |
2021-07-11T00:40:32.5842740Z expected_ellipses, | |
2021-07-11T00:40:32.5843245Z expected_ellipses_url, | |
2021-07-11T00:40:32.5843661Z ): | |
2021-07-11T00:40:32.5844059Z with make_app_client( | |
2021-07-11T00:40:32.5844696Z config={"max_returned_rows": max_returned_rows, "default_facet_size": 2} | |
2021-07-11T00:40:32.5845278Z ) as client: | |
2021-07-11T00:40:32.5845732Z response = client.get(path) | |
2021-07-11T00:40:32.5846356Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.5847200Z lis = soup.select("#facet-neighborhood ul li:not(.facet-truncated)") | |
2021-07-11T00:40:32.5848070Z facet_truncated = soup.select_one(".facet-truncated") | |
2021-07-11T00:40:32.5848743Z assert len(lis) == expected_num_facets | |
2021-07-11T00:40:32.5849304Z if not expected_ellipses: | |
2021-07-11T00:40:32.5849854Z assert facet_truncated is None | |
2021-07-11T00:40:32.5850293Z else: | |
2021-07-11T00:40:32.5850748Z if expected_ellipses_url: | |
2021-07-11T00:40:32.5851517Z assert facet_truncated.find("a")["href"] == expected_ellipses_url | |
2021-07-11T00:40:32.5852141Z else: | |
2021-07-11T00:40:32.5852651Z > assert facet_truncated.find("a") is None | |
2021-07-11T00:40:32.5853034Z | |
2021-07-11T00:40:32.5853517Z D:\a\datasette\datasette\tests\test_html.py:1700: | |
2021-07-11T00:40:32.5854054Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5854725Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5855385Z next(self.gen) | |
2021-07-11T00:40:32.5856046Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5856679Z yield TestClient(ds) | |
2021-07-11T00:40:32.5857362Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5858016Z self.cleanup() | |
2021-07-11T00:40:32.5858719Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5859581Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5860378Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5876283Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5877127Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5877860Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5878617Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5879384Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5880195Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5880956Z cls._rmtree(path) | |
2021-07-11T00:40:32.5881639Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5882385Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5883125Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5883835Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5884586Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5885345Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5885856Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5886135Z | |
2021-07-11T00:40:32.5886760Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k\\fixtures.db' | |
2021-07-11T00:40:32.5887708Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E832AF70> | |
2021-07-11T00:40:32.5888274Z | |
2021-07-11T00:40:32.5888692Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5889153Z try: | |
2021-07-11T00:40:32.5889607Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5890631Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmptor19t6k\\fixtures.db' | |
2021-07-11T00:40:32.5891467Z | |
2021-07-11T00:40:32.5892130Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5893006Z ___________________ test_allow_unauthenticated[allow1-200] ____________________ | |
2021-07-11T00:40:32.5893819Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5894317Z | |
2021-07-11T00:40:32.5894834Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62' | |
2021-07-11T00:40:32.5895706Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FF72B040> | |
2021-07-11T00:40:32.5896257Z | |
2021-07-11T00:40:32.5896686Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5897117Z try: | |
2021-07-11T00:40:32.5897572Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5898111Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5898572Z except OSError: | |
2021-07-11T00:40:32.5899114Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5899623Z entries = [] | |
2021-07-11T00:40:32.5900055Z for entry in entries: | |
2021-07-11T00:40:32.5900526Z fullname = entry.path | |
2021-07-11T00:40:32.5901084Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5901484Z try: | |
2021-07-11T00:40:32.5901909Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5902467Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5903114Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5903738Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5904381Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5904963Z except OSError: | |
2021-07-11T00:40:32.5905566Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5906143Z continue | |
2021-07-11T00:40:32.5906780Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5907335Z else: | |
2021-07-11T00:40:32.5907682Z try: | |
2021-07-11T00:40:32.5908097Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5909196Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62\\fixtures.db' | |
2021-07-11T00:40:32.5910078Z | |
2021-07-11T00:40:32.5910723Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5911341Z | |
2021-07-11T00:40:32.5911932Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5912436Z | |
2021-07-11T00:40:32.5912865Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5913552Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62\\fixtures.db' | |
2021-07-11T00:40:32.5914806Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF74A1C0>) | |
2021-07-11T00:40:32.5915683Z | |
2021-07-11T00:40:32.5916104Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5916741Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5917322Z def resetperms(path): | |
2021-07-11T00:40:32.5917751Z try: | |
2021-07-11T00:40:32.5918154Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5918676Z except AttributeError: | |
2021-07-11T00:40:32.5919143Z pass | |
2021-07-11T00:40:32.5919545Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5919933Z | |
2021-07-11T00:40:32.5920241Z try: | |
2021-07-11T00:40:32.5920641Z if path != name: | |
2021-07-11T00:40:32.5921247Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5921815Z resetperms(path) | |
2021-07-11T00:40:32.5922188Z | |
2021-07-11T00:40:32.5922518Z try: | |
2021-07-11T00:40:32.5922903Z > _os.unlink(path) | |
2021-07-11T00:40:32.5923973Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62\\fixtures.db' | |
2021-07-11T00:40:32.5924874Z | |
2021-07-11T00:40:32.5925525Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5926087Z | |
2021-07-11T00:40:32.5926669Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5927156Z | |
2021-07-11T00:40:32.5927655Z allow = {'id': 'root', 'unauthenticated': True}, expected = 200 | |
2021-07-11T00:40:32.5928077Z | |
2021-07-11T00:40:32.5928544Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5929138Z "allow,expected", | |
2021-07-11T00:40:32.5929556Z [ | |
2021-07-11T00:40:32.5929892Z ({"id": "root"}, 403), | |
2021-07-11T00:40:32.5930404Z ({"id": "root", "unauthenticated": True}, 200), | |
2021-07-11T00:40:32.5930915Z ], | |
2021-07-11T00:40:32.5931249Z ) | |
2021-07-11T00:40:32.5931758Z def test_allow_unauthenticated(allow, expected): | |
2021-07-11T00:40:32.5932492Z with make_app_client(metadata={"allow": allow}) as client: | |
2021-07-11T00:40:32.5933153Z > assert expected == client.get("/").status | |
2021-07-11T00:40:32.5933524Z | |
2021-07-11T00:40:32.5934064Z D:\a\datasette\datasette\tests\test_permissions.py:363: | |
2021-07-11T00:40:32.5934648Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5935321Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.5935965Z next(self.gen) | |
2021-07-11T00:40:32.5936586Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.5937214Z yield TestClient(ds) | |
2021-07-11T00:40:32.5937891Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.5938694Z self.cleanup() | |
2021-07-11T00:40:32.5939358Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.5940051Z self._rmtree(self.name) | |
2021-07-11T00:40:32.5940744Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5941585Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5942328Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5943032Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5943761Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.5944534Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5945303Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.5945963Z cls._rmtree(path) | |
2021-07-11T00:40:32.5946646Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.5947390Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.5948126Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.5948834Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.5949593Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.5950350Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5950987Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.5951265Z | |
2021-07-11T00:40:32.5951842Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62\\fixtures.db' | |
2021-07-11T00:40:32.5952813Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFC2ECA0> | |
2021-07-11T00:40:32.5953397Z | |
2021-07-11T00:40:32.5953816Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5954258Z try: | |
2021-07-11T00:40:32.5954689Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5955686Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb1p_px62\\fixtures.db' | |
2021-07-11T00:40:32.5956440Z | |
2021-07-11T00:40:32.5957096Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.5958144Z _ test_facet_more_links[5-/fixtures/facetable?_facet=neighborhood&_facet_size=max-5-True-None] _ | |
2021-07-11T00:40:32.5959129Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.5959630Z | |
2021-07-11T00:40:32.5960161Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx' | |
2021-07-11T00:40:32.5961124Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EABAC0D0> | |
2021-07-11T00:40:32.5961690Z | |
2021-07-11T00:40:32.5962116Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.5962544Z try: | |
2021-07-11T00:40:32.5962998Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.5963544Z entries = list(scandir_it) | |
2021-07-11T00:40:32.5964009Z except OSError: | |
2021-07-11T00:40:32.5964557Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.5965058Z entries = [] | |
2021-07-11T00:40:32.5965494Z for entry in entries: | |
2021-07-11T00:40:32.5965967Z fullname = entry.path | |
2021-07-11T00:40:32.5966462Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.5966866Z try: | |
2021-07-11T00:40:32.5967291Z if entry.is_symlink(): | |
2021-07-11T00:40:32.5967856Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.5968503Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.5969123Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.5969772Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.5970423Z except OSError: | |
2021-07-11T00:40:32.5971180Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.5971780Z continue | |
2021-07-11T00:40:32.5972270Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.5972769Z else: | |
2021-07-11T00:40:32.5973109Z try: | |
2021-07-11T00:40:32.5973522Z > os.unlink(fullname) | |
2021-07-11T00:40:32.5974630Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx\\fixtures.db' | |
2021-07-11T00:40:32.5975537Z | |
2021-07-11T00:40:32.5976208Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.5976754Z | |
2021-07-11T00:40:32.5977325Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5977812Z | |
2021-07-11T00:40:32.5978217Z func = <built-in function unlink> | |
2021-07-11T00:40:32.5978922Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx\\fixtures.db' | |
2021-07-11T00:40:32.5980171Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EA7B8200>) | |
2021-07-11T00:40:32.5981137Z | |
2021-07-11T00:40:32.5981548Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.5982166Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.5982754Z def resetperms(path): | |
2021-07-11T00:40:32.5983176Z try: | |
2021-07-11T00:40:32.5983580Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.5984103Z except AttributeError: | |
2021-07-11T00:40:32.5984570Z pass | |
2021-07-11T00:40:32.5984971Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.5985366Z | |
2021-07-11T00:40:32.5985672Z try: | |
2021-07-11T00:40:32.5986072Z if path != name: | |
2021-07-11T00:40:32.5986612Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.5987201Z resetperms(path) | |
2021-07-11T00:40:32.5987575Z | |
2021-07-11T00:40:32.5987898Z try: | |
2021-07-11T00:40:32.5988274Z > _os.unlink(path) | |
2021-07-11T00:40:32.5989355Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx\\fixtures.db' | |
2021-07-11T00:40:32.5990272Z | |
2021-07-11T00:40:32.5991005Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.5991576Z | |
2021-07-11T00:40:32.5992159Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.5992649Z | |
2021-07-11T00:40:32.5992998Z max_returned_rows = 5 | |
2021-07-11T00:40:32.5993625Z path = '/fixtures/facetable?_facet=neighborhood&_facet_size=max' | |
2021-07-11T00:40:32.5994479Z expected_num_facets = 5, expected_ellipses = True, expected_ellipses_url = None | |
2021-07-11T00:40:32.5995006Z | |
2021-07-11T00:40:32.5995494Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.5996441Z "max_returned_rows,path,expected_num_facets,expected_ellipses,expected_ellipses_url", | |
2021-07-11T00:40:32.5997204Z ( | |
2021-07-11T00:40:32.5997505Z ( | |
2021-07-11T00:40:32.5997830Z 5, | |
2021-07-11T00:40:32.5998248Z # Default should show 2 facets | |
2021-07-11T00:40:32.5998857Z "/fixtures/facetable?_facet=neighborhood", | |
2021-07-11T00:40:32.5999352Z 2, | |
2021-07-11T00:40:32.5999702Z True, | |
2021-07-11T00:40:32.6000272Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.6000882Z ), | |
2021-07-11T00:40:32.6001449Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.6001997Z ( | |
2021-07-11T00:40:32.6002407Z 5, | |
2021-07-11T00:40:32.6003655Z "/fixtures/facetable?_facet=neighborhood&_facet_size=50", | |
2021-07-11T00:40:32.6004203Z 5, | |
2021-07-11T00:40:32.6004540Z True, | |
2021-07-11T00:40:32.6005124Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.6005681Z ), | |
2021-07-11T00:40:32.6006209Z # If max_returned_rows is high enough, should return all | |
2021-07-11T00:40:32.6006722Z ( | |
2021-07-11T00:40:32.6007043Z 20, | |
2021-07-11T00:40:32.6007611Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.6008149Z 14, | |
2021-07-11T00:40:32.6008500Z False, | |
2021-07-11T00:40:32.6008852Z None, | |
2021-07-11T00:40:32.6009191Z ), | |
2021-07-11T00:40:32.6009681Z # If num facets > max_returned_rows, show ... without a link | |
2021-07-11T00:40:32.6010417Z # _facet_size above max_returned_rows should show max_returned_rows (5) | |
2021-07-11T00:40:32.6011316Z ( | |
2021-07-11T00:40:32.6011717Z 5, | |
2021-07-11T00:40:32.6012275Z "/fixtures/facetable?_facet=neighborhood&_facet_size=max", | |
2021-07-11T00:40:32.6012841Z 5, | |
2021-07-11T00:40:32.6013193Z True, | |
2021-07-11T00:40:32.6013564Z None, | |
2021-07-11T00:40:32.6013905Z ), | |
2021-07-11T00:40:32.6014207Z ), | |
2021-07-11T00:40:32.6014515Z ) | |
2021-07-11T00:40:32.6014892Z def test_facet_more_links( | |
2021-07-11T00:40:32.6015354Z max_returned_rows, | |
2021-07-11T00:40:32.6015738Z path, | |
2021-07-11T00:40:32.6016159Z expected_num_facets, | |
2021-07-11T00:40:32.6016634Z expected_ellipses, | |
2021-07-11T00:40:32.6017162Z expected_ellipses_url, | |
2021-07-11T00:40:32.6017556Z ): | |
2021-07-11T00:40:32.6017934Z with make_app_client( | |
2021-07-11T00:40:32.6018571Z config={"max_returned_rows": max_returned_rows, "default_facet_size": 2} | |
2021-07-11T00:40:32.6019161Z ) as client: | |
2021-07-11T00:40:32.6019633Z response = client.get(path) | |
2021-07-11T00:40:32.6020246Z soup = Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.6021117Z lis = soup.select("#facet-neighborhood ul li:not(.facet-truncated)") | |
2021-07-11T00:40:32.6021980Z facet_truncated = soup.select_one(".facet-truncated") | |
2021-07-11T00:40:32.6022692Z assert len(lis) == expected_num_facets | |
2021-07-11T00:40:32.6023246Z if not expected_ellipses: | |
2021-07-11T00:40:32.6023794Z assert facet_truncated is None | |
2021-07-11T00:40:32.6024235Z else: | |
2021-07-11T00:40:32.6024693Z if expected_ellipses_url: | |
2021-07-11T00:40:32.6025399Z assert facet_truncated.find("a")["href"] == expected_ellipses_url | |
2021-07-11T00:40:32.6025992Z else: | |
2021-07-11T00:40:32.6026504Z > assert facet_truncated.find("a") is None | |
2021-07-11T00:40:32.6026886Z | |
2021-07-11T00:40:32.6027357Z D:\a\datasette\datasette\tests\test_html.py:1700: | |
2021-07-11T00:40:32.6027907Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6028565Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6029225Z next(self.gen) | |
2021-07-11T00:40:32.6029835Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6030483Z yield TestClient(ds) | |
2021-07-11T00:40:32.6031182Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6031845Z self.cleanup() | |
2021-07-11T00:40:32.6032518Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6033213Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6033906Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6034946Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6035709Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6036407Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6037145Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6037902Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6038671Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6039327Z cls._rmtree(path) | |
2021-07-11T00:40:32.6039973Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6040728Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6041480Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6042210Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6042964Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6043733Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6044243Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6044519Z | |
2021-07-11T00:40:32.6045125Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx\\fixtures.db' | |
2021-07-11T00:40:32.6046071Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E95E8EE0> | |
2021-07-11T00:40:32.6046643Z | |
2021-07-11T00:40:32.6047073Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6047506Z try: | |
2021-07-11T00:40:32.6047951Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6048940Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpma6qo8lx\\fixtures.db' | |
2021-07-11T00:40:32.6049725Z | |
2021-07-11T00:40:32.6050398Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6051349Z __________ test_unavailable_table_does_not_break_sort_relationships ___________ | |
2021-07-11T00:40:32.6052209Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6052726Z | |
2021-07-11T00:40:32.6053241Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj' | |
2021-07-11T00:40:32.6054130Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EABC7790> | |
2021-07-11T00:40:32.6054698Z | |
2021-07-11T00:40:32.6055114Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6055557Z try: | |
2021-07-11T00:40:32.6055997Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6056530Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6056992Z except OSError: | |
2021-07-11T00:40:32.6057539Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6058056Z entries = [] | |
2021-07-11T00:40:32.6058473Z for entry in entries: | |
2021-07-11T00:40:32.6058984Z fullname = entry.path | |
2021-07-11T00:40:32.6059461Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6059877Z try: | |
2021-07-11T00:40:32.6060287Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6060861Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6061526Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6062156Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6062804Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6063389Z except OSError: | |
2021-07-11T00:40:32.6064009Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6064575Z continue | |
2021-07-11T00:40:32.6065076Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6065537Z else: | |
2021-07-11T00:40:32.6065984Z try: | |
2021-07-11T00:40:32.6066452Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6067574Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj\\fixtures.db' | |
2021-07-11T00:40:32.6068478Z | |
2021-07-11T00:40:32.6069109Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6069661Z | |
2021-07-11T00:40:32.6070261Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6070772Z | |
2021-07-11T00:40:32.6071216Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6071926Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj\\fixtures.db' | |
2021-07-11T00:40:32.6073153Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213E8325F80>) | |
2021-07-11T00:40:32.6074011Z | |
2021-07-11T00:40:32.6074438Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6075047Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6075642Z def resetperms(path): | |
2021-07-11T00:40:32.6076049Z try: | |
2021-07-11T00:40:32.6076464Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6076976Z except AttributeError: | |
2021-07-11T00:40:32.6077440Z pass | |
2021-07-11T00:40:32.6077839Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6078216Z | |
2021-07-11T00:40:32.6078522Z try: | |
2021-07-11T00:40:32.6078902Z if path != name: | |
2021-07-11T00:40:32.6079447Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6079999Z resetperms(path) | |
2021-07-11T00:40:32.6080386Z | |
2021-07-11T00:40:32.6080697Z try: | |
2021-07-11T00:40:32.6081122Z > _os.unlink(path) | |
2021-07-11T00:40:32.6082192Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj\\fixtures.db' | |
2021-07-11T00:40:32.6083092Z | |
2021-07-11T00:40:32.6083757Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6084334Z | |
2021-07-11T00:40:32.6084908Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6085406Z | |
2021-07-11T00:40:32.6085955Z def test_unavailable_table_does_not_break_sort_relationships(): | |
2021-07-11T00:40:32.6086777Z # https://github.com/simonw/datasette/issues/1305 | |
2021-07-11T00:40:32.6087390Z with make_app_client( | |
2021-07-11T00:40:32.6087811Z metadata={ | |
2021-07-11T00:40:32.6088227Z "databases": { | |
2021-07-11T00:40:32.6088827Z "fixtures": {"tables": {"foreign_key_references": {"allow": False}}} | |
2021-07-11T00:40:32.6089370Z } | |
2021-07-11T00:40:32.6089693Z } | |
2021-07-11T00:40:32.6090047Z ) as client: | |
2021-07-11T00:40:32.6090591Z response = client.get("/?_sort=relationships") | |
2021-07-11T00:40:32.6091264Z > assert response.status == 200 | |
2021-07-11T00:40:32.6091616Z | |
2021-07-11T00:40:32.6092089Z D:\a\datasette\datasette\tests\test_html.py:1713: | |
2021-07-11T00:40:32.6092639Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6093303Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6093967Z next(self.gen) | |
2021-07-11T00:40:32.6094583Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6095235Z yield TestClient(ds) | |
2021-07-11T00:40:32.6095920Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6096573Z self.cleanup() | |
2021-07-11T00:40:32.6097326Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6098072Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6098765Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6099508Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6100247Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6100976Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6101728Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6102506Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6103268Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6103922Z cls._rmtree(path) | |
2021-07-11T00:40:32.6104566Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6105317Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6106077Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6106797Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6107536Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6108280Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6108797Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6109056Z | |
2021-07-11T00:40:32.6109656Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj\\fixtures.db' | |
2021-07-11T00:40:32.6110604Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E832AE50> | |
2021-07-11T00:40:32.6111359Z | |
2021-07-11T00:40:32.6111803Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6112239Z try: | |
2021-07-11T00:40:32.6112689Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6113693Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph27sbmuj\\fixtures.db' | |
2021-07-11T00:40:32.6114442Z | |
2021-07-11T00:40:32.6115116Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6115927Z ________________________ test_hook_extra_template_vars ________________________ | |
2021-07-11T00:40:32.6116665Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6117180Z | |
2021-07-11T00:40:32.6117725Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o' | |
2021-07-11T00:40:32.6118610Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD8FD30> | |
2021-07-11T00:40:32.6119186Z | |
2021-07-11T00:40:32.6119596Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6120041Z try: | |
2021-07-11T00:40:32.6120494Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6121052Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6121522Z except OSError: | |
2021-07-11T00:40:32.6122056Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6122579Z entries = [] | |
2021-07-11T00:40:32.6122996Z for entry in entries: | |
2021-07-11T00:40:32.6123480Z fullname = entry.path | |
2021-07-11T00:40:32.6123982Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6124399Z try: | |
2021-07-11T00:40:32.6124811Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6125389Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6126044Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6126657Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6127318Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6127888Z except OSError: | |
2021-07-11T00:40:32.6128503Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6129173Z continue | |
2021-07-11T00:40:32.6129744Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6130232Z else: | |
2021-07-11T00:40:32.6130587Z try: | |
2021-07-11T00:40:32.6131042Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6132145Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o\\fixtures.db' | |
2021-07-11T00:40:32.6133051Z | |
2021-07-11T00:40:32.6133696Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6134231Z | |
2021-07-11T00:40:32.6134814Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6135297Z | |
2021-07-11T00:40:32.6135710Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6136446Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o\\fixtures.db' | |
2021-07-11T00:40:32.6137716Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF9D0DC0>) | |
2021-07-11T00:40:32.6138584Z | |
2021-07-11T00:40:32.6139012Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6139623Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6140223Z def resetperms(path): | |
2021-07-11T00:40:32.6140633Z try: | |
2021-07-11T00:40:32.6141078Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6141601Z except AttributeError: | |
2021-07-11T00:40:32.6142060Z pass | |
2021-07-11T00:40:32.6142473Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6142835Z | |
2021-07-11T00:40:32.6143163Z try: | |
2021-07-11T00:40:32.6143528Z if path != name: | |
2021-07-11T00:40:32.6144074Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6144635Z resetperms(path) | |
2021-07-11T00:40:32.6145046Z | |
2021-07-11T00:40:32.6145358Z try: | |
2021-07-11T00:40:32.6145748Z > _os.unlink(path) | |
2021-07-11T00:40:32.6146835Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o\\fixtures.db' | |
2021-07-11T00:40:32.6147732Z | |
2021-07-11T00:40:32.6148397Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6148957Z | |
2021-07-11T00:40:32.6149523Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6150031Z | |
2021-07-11T00:40:32.6150445Z restore_working_directory = None | |
2021-07-11T00:40:32.6150768Z | |
2021-07-11T00:40:32.6151329Z def test_hook_extra_template_vars(restore_working_directory): | |
2021-07-11T00:40:32.6151934Z with make_app_client( | |
2021-07-11T00:40:32.6152576Z template_dir=str(pathlib.Path(__file__).parent / "test_templates") | |
2021-07-11T00:40:32.6153176Z ) as client: | |
2021-07-11T00:40:32.6153669Z response = client.get("/-/metadata") | |
2021-07-11T00:40:32.6154263Z assert response.status == 200 | |
2021-07-11T00:40:32.6154851Z extra_template_vars = json.loads( | |
2021-07-11T00:40:32.6155634Z Soup(response.body, "html.parser").select("pre.extra_template_vars")[0].text | |
2021-07-11T00:40:32.6156256Z ) | |
2021-07-11T00:40:32.6156604Z assert { | |
2021-07-11T00:40:32.6157050Z "template": "show_json.html", | |
2021-07-11T00:40:32.6157576Z "scope_path": "/-/metadata", | |
2021-07-11T00:40:32.6158047Z "columns": None, | |
2021-07-11T00:40:32.6158494Z } == extra_template_vars | |
2021-07-11T00:40:32.6159090Z extra_template_vars_from_awaitable = json.loads( | |
2021-07-11T00:40:32.6159759Z Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.6160528Z .select("pre.extra_template_vars_from_awaitable")[0] | |
2021-07-11T00:40:32.6161143Z .text | |
2021-07-11T00:40:32.6161481Z ) | |
2021-07-11T00:40:32.6161808Z > assert { | |
2021-07-11T00:40:32.6162269Z "template": "show_json.html", | |
2021-07-11T00:40:32.6162778Z "awaitable": True, | |
2021-07-11T00:40:32.6163284Z "scope_path": "/-/metadata", | |
2021-07-11T00:40:32.6163838Z } == extra_template_vars_from_awaitable | |
2021-07-11T00:40:32.6164186Z | |
2021-07-11T00:40:32.6164692Z D:\a\datasette\datasette\tests\test_plugins.py:322: | |
2021-07-11T00:40:32.6165252Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6165916Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6166589Z next(self.gen) | |
2021-07-11T00:40:32.6167217Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6167888Z yield TestClient(ds) | |
2021-07-11T00:40:32.6168556Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6169216Z self.cleanup() | |
2021-07-11T00:40:32.6169870Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6170569Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6171275Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6172033Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6172771Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6173467Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6174208Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6174969Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6175737Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6176385Z cls._rmtree(path) | |
2021-07-11T00:40:32.6177045Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6177801Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6178521Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6179228Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6179958Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6180718Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6181255Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6181532Z | |
2021-07-11T00:40:32.6182131Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o\\fixtures.db' | |
2021-07-11T00:40:32.6183082Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD8FE50> | |
2021-07-11T00:40:32.6183658Z | |
2021-07-11T00:40:32.6184086Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6184526Z try: | |
2021-07-11T00:40:32.6184974Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6185968Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmps4kndb2o\\fixtures.db' | |
2021-07-11T00:40:32.6186731Z | |
2021-07-11T00:40:32.6187403Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6188232Z ____________________ test_plugins_async_template_function _____________________ | |
2021-07-11T00:40:32.6189015Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6189526Z | |
2021-07-11T00:40:32.6190051Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe' | |
2021-07-11T00:40:32.6190984Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FAF2A0D0> | |
2021-07-11T00:40:32.6191555Z | |
2021-07-11T00:40:32.6191971Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6192485Z try: | |
2021-07-11T00:40:32.6192990Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6193533Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6193998Z except OSError: | |
2021-07-11T00:40:32.6194570Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6195073Z entries = [] | |
2021-07-11T00:40:32.6195506Z for entry in entries: | |
2021-07-11T00:40:32.6195982Z fullname = entry.path | |
2021-07-11T00:40:32.6196480Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6196896Z try: | |
2021-07-11T00:40:32.6197308Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6197881Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6198514Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6199143Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6199792Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6200390Z except OSError: | |
2021-07-11T00:40:32.6201024Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6201606Z continue | |
2021-07-11T00:40:32.6202113Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6202576Z else: | |
2021-07-11T00:40:32.6202929Z try: | |
2021-07-11T00:40:32.6203334Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6204448Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe\\fixtures.db' | |
2021-07-11T00:40:32.6205356Z | |
2021-07-11T00:40:32.6205988Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6206538Z | |
2021-07-11T00:40:32.6207122Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6207602Z | |
2021-07-11T00:40:32.6208010Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6208711Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe\\fixtures.db' | |
2021-07-11T00:40:32.6209970Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB2FF80>) | |
2021-07-11T00:40:32.6210837Z | |
2021-07-11T00:40:32.6211282Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6211906Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6212504Z def resetperms(path): | |
2021-07-11T00:40:32.6212926Z try: | |
2021-07-11T00:40:32.6213341Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6213853Z except AttributeError: | |
2021-07-11T00:40:32.6214322Z pass | |
2021-07-11T00:40:32.6214724Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6215103Z | |
2021-07-11T00:40:32.6215425Z try: | |
2021-07-11T00:40:32.6215811Z if path != name: | |
2021-07-11T00:40:32.6216348Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6216915Z resetperms(path) | |
2021-07-11T00:40:32.6217304Z | |
2021-07-11T00:40:32.6217619Z try: | |
2021-07-11T00:40:32.6218007Z > _os.unlink(path) | |
2021-07-11T00:40:32.6219074Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe\\fixtures.db' | |
2021-07-11T00:40:32.6219972Z | |
2021-07-11T00:40:32.6220635Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6221222Z | |
2021-07-11T00:40:32.6221804Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6222291Z | |
2021-07-11T00:40:32.6222691Z restore_working_directory = None | |
2021-07-11T00:40:32.6223102Z | |
2021-07-11T00:40:32.6223730Z def test_plugins_async_template_function(restore_working_directory): | |
2021-07-11T00:40:32.6224366Z with make_app_client( | |
2021-07-11T00:40:32.6225023Z template_dir=str(pathlib.Path(__file__).parent / "test_templates") | |
2021-07-11T00:40:32.6225609Z ) as client: | |
2021-07-11T00:40:32.6226111Z response = client.get("/-/metadata") | |
2021-07-11T00:40:32.6226692Z assert response.status == 200 | |
2021-07-11T00:40:32.6227258Z extra_from_awaitable_function = ( | |
2021-07-11T00:40:32.6227876Z Soup(response.body, "html.parser") | |
2021-07-11T00:40:32.6228541Z .select("pre.extra_from_awaitable_function")[0] | |
2021-07-11T00:40:32.6229060Z .text | |
2021-07-11T00:40:32.6229386Z ) | |
2021-07-11T00:40:32.6229758Z expected = ( | |
2021-07-11T00:40:32.6230416Z sqlite3.connect(":memory:").execute("select sqlite_version()").fetchone()[0] | |
2021-07-11T00:40:32.6231057Z ) | |
2021-07-11T00:40:32.6231557Z > assert expected == extra_from_awaitable_function | |
2021-07-11T00:40:32.6231965Z | |
2021-07-11T00:40:32.6232470Z D:\a\datasette\datasette\tests\test_plugins.py:343: | |
2021-07-11T00:40:32.6233025Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6233691Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6234334Z next(self.gen) | |
2021-07-11T00:40:32.6234959Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6235591Z yield TestClient(ds) | |
2021-07-11T00:40:32.6236271Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6236934Z self.cleanup() | |
2021-07-11T00:40:32.6237593Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6238288Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6238975Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6239757Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6240507Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6241250Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6241984Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6242754Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6243520Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6244160Z cls._rmtree(path) | |
2021-07-11T00:40:32.6244819Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6245558Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6246289Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6246977Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6247720Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6248481Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6248986Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6249257Z | |
2021-07-11T00:40:32.6249847Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe\\fixtures.db' | |
2021-07-11T00:40:32.6250805Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFBA4040> | |
2021-07-11T00:40:32.6251405Z | |
2021-07-11T00:40:32.6251821Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6252261Z try: | |
2021-07-11T00:40:32.6252696Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6253697Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpa3vezffe\\fixtures.db' | |
2021-07-11T00:40:32.6254459Z | |
2021-07-11T00:40:32.6255190Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6256076Z ______________________ test_view_database[None-200-200] _______________________ | |
2021-07-11T00:40:32.6256841Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6257344Z | |
2021-07-11T00:40:32.6257875Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z' | |
2021-07-11T00:40:32.6258775Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E97354C0> | |
2021-07-11T00:40:32.6259320Z | |
2021-07-11T00:40:32.6259748Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6260179Z try: | |
2021-07-11T00:40:32.6260630Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6261203Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6261664Z except OSError: | |
2021-07-11T00:40:32.6262208Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6262713Z entries = [] | |
2021-07-11T00:40:32.6263153Z for entry in entries: | |
2021-07-11T00:40:32.6263631Z fullname = entry.path | |
2021-07-11T00:40:32.6264146Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6264549Z try: | |
2021-07-11T00:40:32.6264974Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6265533Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6266178Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6266805Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6267455Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6268039Z except OSError: | |
2021-07-11T00:40:32.6268639Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6269212Z continue | |
2021-07-11T00:40:32.6269703Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6270186Z else: | |
2021-07-11T00:40:32.6270532Z try: | |
2021-07-11T00:40:32.6270977Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6272083Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z\\fixtures.db' | |
2021-07-11T00:40:32.6272969Z | |
2021-07-11T00:40:32.6273613Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6274161Z | |
2021-07-11T00:40:32.6274727Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6275211Z | |
2021-07-11T00:40:32.6275616Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6276312Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z\\fixtures.db' | |
2021-07-11T00:40:32.6277571Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EBEB2C40>) | |
2021-07-11T00:40:32.6278437Z | |
2021-07-11T00:40:32.6278846Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6279465Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6280051Z def resetperms(path): | |
2021-07-11T00:40:32.6280473Z try: | |
2021-07-11T00:40:32.6280877Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6281430Z except AttributeError: | |
2021-07-11T00:40:32.6281900Z pass | |
2021-07-11T00:40:32.6282303Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6282705Z | |
2021-07-11T00:40:32.6283013Z try: | |
2021-07-11T00:40:32.6283392Z if path != name: | |
2021-07-11T00:40:32.6283925Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6284496Z resetperms(path) | |
2021-07-11T00:40:32.6284871Z | |
2021-07-11T00:40:32.6285198Z try: | |
2021-07-11T00:40:32.6285657Z > _os.unlink(path) | |
2021-07-11T00:40:32.6286802Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z\\fixtures.db' | |
2021-07-11T00:40:32.6287696Z | |
2021-07-11T00:40:32.6288346Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6288909Z | |
2021-07-11T00:40:32.6289493Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6289980Z | |
2021-07-11T00:40:32.6290433Z allow = None, expected_anon = 200, expected_auth = 200 | |
2021-07-11T00:40:32.6290815Z | |
2021-07-11T00:40:32.6291322Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.6292000Z "allow,expected_anon,expected_auth", | |
2021-07-11T00:40:32.6292494Z [ | |
2021-07-11T00:40:32.6292827Z (None, 200, 200), | |
2021-07-11T00:40:32.6293188Z ({}, 403, 403), | |
2021-07-11T00:40:32.6293550Z ({"id": "root"}, 403, 200), | |
2021-07-11T00:40:32.6293906Z ], | |
2021-07-11T00:40:32.6294202Z ) | |
2021-07-11T00:40:32.6294748Z def test_view_database(allow, expected_anon, expected_auth): | |
2021-07-11T00:40:32.6295343Z with make_app_client( | |
2021-07-11T00:40:32.6295914Z metadata={"databases": {"fixtures": {"allow": allow}}} | |
2021-07-11T00:40:32.6296419Z ) as client: | |
2021-07-11T00:40:32.6296806Z for path in ( | |
2021-07-11T00:40:32.6297197Z "/fixtures", | |
2021-07-11T00:40:32.6297724Z "/fixtures/compound_three_primary_keys", | |
2021-07-11T00:40:32.6298376Z "/fixtures/compound_three_primary_keys/a,a,a", | |
2021-07-11T00:40:32.6298850Z ): | |
2021-07-11T00:40:32.6299310Z anon_response = client.get(path) | |
2021-07-11T00:40:32.6299983Z assert expected_anon == anon_response.status, path | |
2021-07-11T00:40:32.6300763Z if allow and path == "/fixtures" and anon_response.status == 200: | |
2021-07-11T00:40:32.6301425Z # Should be no padlock | |
2021-07-11T00:40:32.6302059Z assert ">fixtures \U0001f512</h1>" not in anon_response.text | |
2021-07-11T00:40:32.6302697Z auth_response = client.get( | |
2021-07-11T00:40:32.6303160Z path, | |
2021-07-11T00:40:32.6303712Z cookies={"ds_actor": client.actor_cookie({"id": "root"})}, | |
2021-07-11T00:40:32.6304209Z ) | |
2021-07-11T00:40:32.6304739Z assert expected_auth == auth_response.status | |
2021-07-11T00:40:32.6305252Z if ( | |
2021-07-11T00:40:32.6305610Z allow | |
2021-07-11T00:40:32.6306023Z and path == "/fixtures" | |
2021-07-11T00:40:32.6306511Z and expected_anon == 403 | |
2021-07-11T00:40:32.6306989Z and expected_auth == 200 | |
2021-07-11T00:40:32.6307422Z ): | |
2021-07-11T00:40:32.6307967Z > assert ">fixtures \U0001f512</h1>" in auth_response.text | |
2021-07-11T00:40:32.6308390Z | |
2021-07-11T00:40:32.6308933Z D:\a\datasette\datasette\tests\test_permissions.py:72: | |
2021-07-11T00:40:32.6309524Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6310198Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6310892Z next(self.gen) | |
2021-07-11T00:40:32.6311567Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6312210Z yield TestClient(ds) | |
2021-07-11T00:40:32.6312890Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6313547Z self.cleanup() | |
2021-07-11T00:40:32.6314205Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6314901Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6315577Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6317062Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6317918Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6318616Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6319357Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6320116Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6320886Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6321568Z cls._rmtree(path) | |
2021-07-11T00:40:32.6322224Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6322964Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6323700Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6324406Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6325135Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6325907Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6326434Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6326713Z | |
2021-07-11T00:40:32.6327321Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z\\fixtures.db' | |
2021-07-11T00:40:32.6328266Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213EBE2DEE0> | |
2021-07-11T00:40:32.6328843Z | |
2021-07-11T00:40:32.6329272Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6329700Z try: | |
2021-07-11T00:40:32.6330146Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6331169Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpn7mlu77z\\fixtures.db' | |
2021-07-11T00:40:32.6331928Z | |
2021-07-11T00:40:32.6332598Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6333424Z _____________________ test_hook_register_routes_csrftoken _____________________ | |
2021-07-11T00:40:32.6334205Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6334713Z | |
2021-07-11T00:40:32.6335232Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48' | |
2021-07-11T00:40:32.6336127Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FD16CCA0> | |
2021-07-11T00:40:32.6336700Z | |
2021-07-11T00:40:32.6337112Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6337549Z try: | |
2021-07-11T00:40:32.6337990Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6338527Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6338990Z except OSError: | |
2021-07-11T00:40:32.6339532Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6340033Z entries = [] | |
2021-07-11T00:40:32.6340461Z for entry in entries: | |
2021-07-11T00:40:32.6340966Z fullname = entry.path | |
2021-07-11T00:40:32.6341480Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6341882Z try: | |
2021-07-11T00:40:32.6342307Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6342880Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6343511Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6344134Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6344775Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6345354Z except OSError: | |
2021-07-11T00:40:32.6345955Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6346535Z continue | |
2021-07-11T00:40:32.6347022Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6347499Z else: | |
2021-07-11T00:40:32.6347874Z try: | |
2021-07-11T00:40:32.6348351Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6349557Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48\\fixtures.db' | |
2021-07-11T00:40:32.6350456Z | |
2021-07-11T00:40:32.6351117Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6351666Z | |
2021-07-11T00:40:32.6352230Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6352716Z | |
2021-07-11T00:40:32.6353126Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6353829Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48\\fixtures.db' | |
2021-07-11T00:40:32.6355081Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF459F00>) | |
2021-07-11T00:40:32.6355927Z | |
2021-07-11T00:40:32.6356340Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6356994Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6357575Z def resetperms(path): | |
2021-07-11T00:40:32.6357999Z try: | |
2021-07-11T00:40:32.6358413Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6358920Z except AttributeError: | |
2021-07-11T00:40:32.6359386Z pass | |
2021-07-11T00:40:32.6359789Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6360166Z | |
2021-07-11T00:40:32.6360476Z try: | |
2021-07-11T00:40:32.6360857Z if path != name: | |
2021-07-11T00:40:32.6361425Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6361995Z resetperms(path) | |
2021-07-11T00:40:32.6362368Z | |
2021-07-11T00:40:32.6362693Z try: | |
2021-07-11T00:40:32.6363072Z > _os.unlink(path) | |
2021-07-11T00:40:32.6364160Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48\\fixtures.db' | |
2021-07-11T00:40:32.6365069Z | |
2021-07-11T00:40:32.6365719Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6366285Z | |
2021-07-11T00:40:32.6366867Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6367353Z | |
2021-07-11T00:40:32.6367755Z restore_working_directory = None | |
2021-07-11T00:40:32.6369326Z tmpdir_factory = TempdirFactory(_tmppath_factory=TempPathFactory(_given_basetemp=WindowsPath('C:/Users/runneradmin/AppData/Local/Temp/p...1F97CF940>, _basetemp=WindowsPath('C:/Users/runneradmin/AppData/Local/Temp/pytest-of-runneradmin/pytest-0/popen-gw1'))) | |
2021-07-11T00:40:32.6370688Z | |
2021-07-11T00:40:32.6371342Z def test_hook_register_routes_csrftoken(restore_working_directory, tmpdir_factory): | |
2021-07-11T00:40:32.6372194Z templates = tmpdir_factory.mktemp("templates") | |
2021-07-11T00:40:32.6372885Z (templates / "csrftoken_form.html").write_text( | |
2021-07-11T00:40:32.6373506Z "CSRFTOKEN: {{ csrftoken() }}", "utf-8" | |
2021-07-11T00:40:32.6373946Z ) | |
2021-07-11T00:40:32.6374474Z with make_app_client(template_dir=templates) as client: | |
2021-07-11T00:40:32.6375204Z response = client.get("/csrftoken-form/") | |
2021-07-11T00:40:32.6375964Z expected_token = client.ds._last_request.scope["csrftoken"]() | |
2021-07-11T00:40:32.6376762Z > assert f"CSRFTOKEN: {expected_token}" == response.text | |
2021-07-11T00:40:32.6377202Z | |
2021-07-11T00:40:32.6377701Z D:\a\datasette\datasette\tests\test_plugins.py:666: | |
2021-07-11T00:40:32.6378268Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6378923Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6379579Z next(self.gen) | |
2021-07-11T00:40:32.6380258Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6380985Z yield TestClient(ds) | |
2021-07-11T00:40:32.6381649Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6382307Z self.cleanup() | |
2021-07-11T00:40:32.6382985Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6383666Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6384358Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6385100Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6385854Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6386547Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6387284Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6388042Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6388820Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6389478Z cls._rmtree(path) | |
2021-07-11T00:40:32.6390120Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6390873Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6391624Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6392330Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6393051Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6393806Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6394327Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6394588Z | |
2021-07-11T00:40:32.6395196Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48\\fixtures.db' | |
2021-07-11T00:40:32.6396140Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FD16CA60> | |
2021-07-11T00:40:32.6396711Z | |
2021-07-11T00:40:32.6397138Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6397567Z try: | |
2021-07-11T00:40:32.6398018Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6399012Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpxopuog48\\fixtures.db' | |
2021-07-11T00:40:32.6399782Z | |
2021-07-11T00:40:32.6400450Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6401315Z ____________________ test_publish_cloudrun_plugin_secrets _____________________ | |
2021-07-11T00:40:32.6402094Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6402607Z | |
2021-07-11T00:40:32.6403045Z mock_call = <MagicMock name='check_call' id='2826083682480'> | |
2021-07-11T00:40:32.6403664Z mock_output = <MagicMock name='check_output' id='2826082509008'> | |
2021-07-11T00:40:32.6404277Z mock_which = <MagicMock name='which' id='2826080071200'> | |
2021-07-11T00:40:32.6404620Z | |
2021-07-11T00:40:32.6405040Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6405840Z @mock.patch("datasette.publish.cloudrun.check_output") | |
2021-07-11T00:40:32.6406903Z @mock.patch("datasette.publish.cloudrun.check_call") | |
2021-07-11T00:40:32.6407859Z def test_publish_cloudrun_plugin_secrets(mock_call, mock_output, mock_which): | |
2021-07-11T00:40:32.6408536Z mock_which.return_value = True | |
2021-07-11T00:40:32.6409126Z mock_output.return_value = "myproject" | |
2021-07-11T00:40:32.6409584Z | |
2021-07-11T00:40:32.6409969Z runner = CliRunner() | |
2021-07-11T00:40:32.6410506Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6411103Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6411555Z fp.write("data") | |
2021-07-11T00:40:32.6412064Z with open("metadata.yml", "w") as fp: | |
2021-07-11T00:40:32.6412536Z fp.write( | |
2021-07-11T00:40:32.6413129Z textwrap.dedent( | |
2021-07-11T00:40:32.6413574Z """ | |
2021-07-11T00:40:32.6414021Z title: Hello from metadata YAML | |
2021-07-11T00:40:32.6414498Z plugins: | |
2021-07-11T00:40:32.6415022Z datasette-auth-github: | |
2021-07-11T00:40:32.6415548Z foo: bar | |
2021-07-11T00:40:32.6415901Z """ | |
2021-07-11T00:40:32.6416264Z ).strip() | |
2021-07-11T00:40:32.6416606Z ) | |
2021-07-11T00:40:32.6417038Z result = runner.invoke( | |
2021-07-11T00:40:32.6417483Z cli.cli, | |
2021-07-11T00:40:32.6417840Z [ | |
2021-07-11T00:40:32.6418197Z "publish", | |
2021-07-11T00:40:32.6418627Z "cloudrun", | |
2021-07-11T00:40:32.6419040Z "test.db", | |
2021-07-11T00:40:32.6419445Z "--metadata", | |
2021-07-11T00:40:32.6419901Z "metadata.yml", | |
2021-07-11T00:40:32.6420339Z "--service", | |
2021-07-11T00:40:32.6420766Z "datasette", | |
2021-07-11T00:40:32.6421257Z "--plugin-secret", | |
2021-07-11T00:40:32.6421844Z "datasette-auth-github", | |
2021-07-11T00:40:32.6422362Z "client_id", | |
2021-07-11T00:40:32.6422790Z "x-client-id", | |
2021-07-11T00:40:32.6423232Z "--show-files", | |
2021-07-11T00:40:32.6423665Z "--secret", | |
2021-07-11T00:40:32.6424093Z "x-secret", | |
2021-07-11T00:40:32.6424448Z ], | |
2021-07-11T00:40:32.6424770Z ) | |
2021-07-11T00:40:32.6425178Z > assert result.exit_code == 0 | |
2021-07-11T00:40:32.6425724Z E AssertionError: assert 1 == 0 | |
2021-07-11T00:40:32.6426581Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6427226Z | |
2021-07-11T00:40:32.6427860Z D:\a\datasette\datasette\tests\test_publish_cloudrun.py:191: AssertionError | |
2021-07-11T00:40:32.6428643Z ____________________ test_publish_cloudrun_apt_get_install ____________________ | |
2021-07-11T00:40:32.6429421Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6429936Z | |
2021-07-11T00:40:32.6430374Z mock_call = <MagicMock name='check_call' id='2826081087104'> | |
2021-07-11T00:40:32.6431031Z mock_output = <MagicMock name='check_output' id='2826082760880'> | |
2021-07-11T00:40:32.6431628Z mock_which = <MagicMock name='which' id='2826081104752'> | |
2021-07-11T00:40:32.6431975Z | |
2021-07-11T00:40:32.6432394Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6433193Z @mock.patch("datasette.publish.cloudrun.check_output") | |
2021-07-11T00:40:32.6434258Z @mock.patch("datasette.publish.cloudrun.check_call") | |
2021-07-11T00:40:32.6435198Z def test_publish_cloudrun_apt_get_install(mock_call, mock_output, mock_which): | |
2021-07-11T00:40:32.6435887Z mock_which.return_value = True | |
2021-07-11T00:40:32.6436463Z mock_output.return_value = "myproject" | |
2021-07-11T00:40:32.6436926Z | |
2021-07-11T00:40:32.6437297Z runner = CliRunner() | |
2021-07-11T00:40:32.6437846Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6438410Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6438862Z fp.write("data") | |
2021-07-11T00:40:32.6439345Z result = runner.invoke( | |
2021-07-11T00:40:32.6439785Z cli.cli, | |
2021-07-11T00:40:32.6440138Z [ | |
2021-07-11T00:40:32.6440498Z "publish", | |
2021-07-11T00:40:32.6440907Z "cloudrun", | |
2021-07-11T00:40:32.6441928Z "test.db", | |
2021-07-11T00:40:32.6442697Z "--service", | |
2021-07-11T00:40:32.6443436Z "datasette", | |
2021-07-11T00:40:32.6444249Z "--show-files", | |
2021-07-11T00:40:32.6445253Z "--secret", | |
2021-07-11T00:40:32.6446095Z "x-secret", | |
2021-07-11T00:40:32.6446930Z "--apt-get-install", | |
2021-07-11T00:40:32.6447742Z "ripgrep", | |
2021-07-11T00:40:32.6448512Z "--spatialite", | |
2021-07-11T00:40:32.6449180Z ], | |
2021-07-11T00:40:32.6449739Z ) | |
2021-07-11T00:40:32.6450467Z > assert result.exit_code == 0 | |
2021-07-11T00:40:32.6451560Z E AssertionError: assert 1 == 0 | |
2021-07-11T00:40:32.6453088Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6454231Z | |
2021-07-11T00:40:32.6455349Z D:\a\datasette\datasette\tests\test_publish_cloudrun.py:255: AssertionError | |
2021-07-11T00:40:32.6456401Z _____ test_publish_cloudrun_extra_options[---setting force_https_urls on] _____ | |
2021-07-11T00:40:32.6457273Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6457791Z | |
2021-07-11T00:40:32.6458232Z mock_call = <MagicMock name='check_call' id='2826058874832'> | |
2021-07-11T00:40:32.6458853Z mock_output = <MagicMock name='check_output' id='2826084557248'> | |
2021-07-11T00:40:32.6459514Z mock_which = <MagicMock name='which' id='2826079768928'>, extra_options = '' | |
2021-07-11T00:40:32.6460166Z expected = '--setting force_https_urls on' | |
2021-07-11T00:40:32.6460529Z | |
2021-07-11T00:40:32.6460997Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6461811Z @mock.patch("datasette.publish.cloudrun.check_output") | |
2021-07-11T00:40:32.6462861Z @mock.patch("datasette.publish.cloudrun.check_call") | |
2021-07-11T00:40:32.6463718Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.6464343Z "extra_options,expected", | |
2021-07-11T00:40:32.6464778Z [ | |
2021-07-11T00:40:32.6465209Z ("", "--setting force_https_urls on"), | |
2021-07-11T00:40:32.6465619Z ( | |
2021-07-11T00:40:32.6466033Z "--setting base_url /foo", | |
2021-07-11T00:40:32.6466618Z "--setting base_url /foo --setting force_https_urls on", | |
2021-07-11T00:40:32.6467116Z ), | |
2021-07-11T00:40:32.6467649Z ("--setting force_https_urls off", "--setting force_https_urls off"), | |
2021-07-11T00:40:32.6468181Z ], | |
2021-07-11T00:40:32.6468478Z ) | |
2021-07-11T00:40:32.6468935Z def test_publish_cloudrun_extra_options( | |
2021-07-11T00:40:32.6469625Z mock_call, mock_output, mock_which, extra_options, expected | |
2021-07-11T00:40:32.6470140Z ): | |
2021-07-11T00:40:32.6470574Z mock_which.return_value = True | |
2021-07-11T00:40:32.6471215Z mock_output.return_value = "myproject" | |
2021-07-11T00:40:32.6471678Z | |
2021-07-11T00:40:32.6472049Z runner = CliRunner() | |
2021-07-11T00:40:32.6472600Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6473155Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6473627Z fp.write("data") | |
2021-07-11T00:40:32.6474105Z result = runner.invoke( | |
2021-07-11T00:40:32.6474566Z cli.cli, | |
2021-07-11T00:40:32.6474909Z [ | |
2021-07-11T00:40:32.6475285Z "publish", | |
2021-07-11T00:40:32.6475696Z "cloudrun", | |
2021-07-11T00:40:32.6476093Z "test.db", | |
2021-07-11T00:40:32.6476507Z "--service", | |
2021-07-11T00:40:32.6476925Z "datasette", | |
2021-07-11T00:40:32.6477370Z "--show-files", | |
2021-07-11T00:40:32.6477847Z "--extra-options", | |
2021-07-11T00:40:32.6478329Z extra_options, | |
2021-07-11T00:40:32.6478705Z ], | |
2021-07-11T00:40:32.6479029Z ) | |
2021-07-11T00:40:32.6479437Z > assert result.exit_code == 0 | |
2021-07-11T00:40:32.6479979Z E AssertionError: assert 1 == 0 | |
2021-07-11T00:40:32.6480998Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6481683Z | |
2021-07-11T00:40:32.6482326Z D:\a\datasette\datasette\tests\test_publish_cloudrun.py:320: AssertionError | |
2021-07-11T00:40:32.6483367Z _ test_publish_cloudrun_extra_options[--setting base_url /foo---setting base_url /foo --setting force_https_urls on] _ | |
2021-07-11T00:40:32.6484378Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6484888Z | |
2021-07-11T00:40:32.6485331Z mock_call = <MagicMock name='check_call' id='2826082701072'> | |
2021-07-11T00:40:32.6485955Z mock_output = <MagicMock name='check_output' id='2826078667584'> | |
2021-07-11T00:40:32.6486566Z mock_which = <MagicMock name='which' id='2826086301808'> | |
2021-07-11T00:40:32.6487125Z extra_options = '--setting base_url /foo' | |
2021-07-11T00:40:32.6487784Z expected = '--setting base_url /foo --setting force_https_urls on' | |
2021-07-11T00:40:32.6488220Z | |
2021-07-11T00:40:32.6488627Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6489451Z @mock.patch("datasette.publish.cloudrun.check_output") | |
2021-07-11T00:40:32.6490501Z @mock.patch("datasette.publish.cloudrun.check_call") | |
2021-07-11T00:40:32.6491440Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.6492052Z "extra_options,expected", | |
2021-07-11T00:40:32.6492499Z [ | |
2021-07-11T00:40:32.6492918Z ("", "--setting force_https_urls on"), | |
2021-07-11T00:40:32.6493344Z ( | |
2021-07-11T00:40:32.6493740Z "--setting base_url /foo", | |
2021-07-11T00:40:32.6494333Z "--setting base_url /foo --setting force_https_urls on", | |
2021-07-11T00:40:32.6494820Z ), | |
2021-07-11T00:40:32.6495367Z ("--setting force_https_urls off", "--setting force_https_urls off"), | |
2021-07-11T00:40:32.6495899Z ], | |
2021-07-11T00:40:32.6496193Z ) | |
2021-07-11T00:40:32.6496649Z def test_publish_cloudrun_extra_options( | |
2021-07-11T00:40:32.6497327Z mock_call, mock_output, mock_which, extra_options, expected | |
2021-07-11T00:40:32.6497857Z ): | |
2021-07-11T00:40:32.6498273Z mock_which.return_value = True | |
2021-07-11T00:40:32.6498863Z mock_output.return_value = "myproject" | |
2021-07-11T00:40:32.6499313Z | |
2021-07-11T00:40:32.6499695Z runner = CliRunner() | |
2021-07-11T00:40:32.6500234Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6500801Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6501337Z fp.write("data") | |
2021-07-11T00:40:32.6501807Z result = runner.invoke( | |
2021-07-11T00:40:32.6502265Z cli.cli, | |
2021-07-11T00:40:32.6502607Z [ | |
2021-07-11T00:40:32.6502982Z "publish", | |
2021-07-11T00:40:32.6503406Z "cloudrun", | |
2021-07-11T00:40:32.6503814Z "test.db", | |
2021-07-11T00:40:32.6504213Z "--service", | |
2021-07-11T00:40:32.6504643Z "datasette", | |
2021-07-11T00:40:32.6505078Z "--show-files", | |
2021-07-11T00:40:32.6505564Z "--extra-options", | |
2021-07-11T00:40:32.6506034Z extra_options, | |
2021-07-11T00:40:32.6506422Z ], | |
2021-07-11T00:40:32.6506743Z ) | |
2021-07-11T00:40:32.6507153Z > assert result.exit_code == 0 | |
2021-07-11T00:40:32.6507703Z E AssertionError: assert 1 == 0 | |
2021-07-11T00:40:32.6508562Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6509201Z | |
2021-07-11T00:40:32.6509838Z D:\a\datasette\datasette\tests\test_publish_cloudrun.py:320: AssertionError | |
2021-07-11T00:40:32.6510824Z _ test_publish_cloudrun_extra_options[--setting force_https_urls off---setting force_https_urls off] _ | |
2021-07-11T00:40:32.6511863Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6512381Z | |
2021-07-11T00:40:32.6512901Z mock_call = <MagicMock name='check_call' id='2826084990256'> | |
2021-07-11T00:40:32.6514155Z mock_output = <MagicMock name='check_output' id='2826085743488'> | |
2021-07-11T00:40:32.6514753Z mock_which = <MagicMock name='which' id='2826085819920'> | |
2021-07-11T00:40:32.6515354Z extra_options = '--setting force_https_urls off' | |
2021-07-11T00:40:32.6515956Z expected = '--setting force_https_urls off' | |
2021-07-11T00:40:32.6516323Z | |
2021-07-11T00:40:32.6516737Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6517538Z @mock.patch("datasette.publish.cloudrun.check_output") | |
2021-07-11T00:40:32.6518601Z @mock.patch("datasette.publish.cloudrun.check_call") | |
2021-07-11T00:40:32.6519448Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.6520075Z "extra_options,expected", | |
2021-07-11T00:40:32.6520504Z [ | |
2021-07-11T00:40:32.6521012Z ("", "--setting force_https_urls on"), | |
2021-07-11T00:40:32.6521438Z ( | |
2021-07-11T00:40:32.6521832Z "--setting base_url /foo", | |
2021-07-11T00:40:32.6522431Z "--setting base_url /foo --setting force_https_urls on", | |
2021-07-11T00:40:32.6522921Z ), | |
2021-07-11T00:40:32.6523469Z ("--setting force_https_urls off", "--setting force_https_urls off"), | |
2021-07-11T00:40:32.6523988Z ], | |
2021-07-11T00:40:32.6524300Z ) | |
2021-07-11T00:40:32.6524743Z def test_publish_cloudrun_extra_options( | |
2021-07-11T00:40:32.6525429Z mock_call, mock_output, mock_which, extra_options, expected | |
2021-07-11T00:40:32.6525946Z ): | |
2021-07-11T00:40:32.6526380Z mock_which.return_value = True | |
2021-07-11T00:40:32.6526973Z mock_output.return_value = "myproject" | |
2021-07-11T00:40:32.6527427Z | |
2021-07-11T00:40:32.6527809Z runner = CliRunner() | |
2021-07-11T00:40:32.6528346Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6528909Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6529363Z fp.write("data") | |
2021-07-11T00:40:32.6529851Z result = runner.invoke( | |
2021-07-11T00:40:32.6530298Z cli.cli, | |
2021-07-11T00:40:32.6530653Z [ | |
2021-07-11T00:40:32.6531079Z "publish", | |
2021-07-11T00:40:32.6531488Z "cloudrun", | |
2021-07-11T00:40:32.6531883Z "test.db", | |
2021-07-11T00:40:32.6532294Z "--service", | |
2021-07-11T00:40:32.6532719Z "datasette", | |
2021-07-11T00:40:32.6533149Z "--show-files", | |
2021-07-11T00:40:32.6533634Z "--extra-options", | |
2021-07-11T00:40:32.6534139Z extra_options, | |
2021-07-11T00:40:32.6534525Z ], | |
2021-07-11T00:40:32.6534833Z ) | |
2021-07-11T00:40:32.6535254Z > assert result.exit_code == 0 | |
2021-07-11T00:40:32.6535784Z E AssertionError: assert 1 == 0 | |
2021-07-11T00:40:32.6536656Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6537305Z | |
2021-07-11T00:40:32.6537926Z D:\a\datasette\datasette\tests\test_publish_cloudrun.py:320: AssertionError | |
2021-07-11T00:40:32.6538683Z _____________________________ test_publish_heroku _____________________________ | |
2021-07-11T00:40:32.6539399Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6539913Z | |
2021-07-11T00:40:32.6540342Z mock_call = <MagicMock name='call' id='2826080780096'> | |
2021-07-11T00:40:32.6541017Z mock_check_output = <MagicMock name='check_output' id='2826079755520'> | |
2021-07-11T00:40:32.6541653Z mock_which = <MagicMock name='which' id='2826040674816'> | |
2021-07-11T00:40:32.6542002Z | |
2021-07-11T00:40:32.6542406Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6543189Z @mock.patch("datasette.publish.heroku.check_output") | |
2021-07-11T00:40:32.6544155Z @mock.patch("datasette.publish.heroku.call") | |
2021-07-11T00:40:32.6545107Z def test_publish_heroku(mock_call, mock_check_output, mock_which): | |
2021-07-11T00:40:32.6545801Z mock_which.return_value = True | |
2021-07-11T00:40:32.6546382Z mock_check_output.side_effect = lambda s: { | |
2021-07-11T00:40:32.6547006Z "['heroku', 'plugins']": b"heroku-builds", | |
2021-07-11T00:40:32.6547566Z "['heroku', 'apps:list', '--json']": b"[]", | |
2021-07-11T00:40:32.6548172Z "['heroku', 'apps:create', 'datasette', '--json']": b'{"name": "f"}', | |
2021-07-11T00:40:32.6548681Z }[repr(s)] | |
2021-07-11T00:40:32.6549100Z runner = CliRunner() | |
2021-07-11T00:40:32.6549638Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6550205Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6550658Z fp.write("data") | |
2021-07-11T00:40:32.6551211Z result = runner.invoke( | |
2021-07-11T00:40:32.6551813Z cli.cli, ["publish", "heroku", "test.db", "--tar", "gtar"] | |
2021-07-11T00:40:32.6552288Z ) | |
2021-07-11T00:40:32.6552793Z > assert 0 == result.exit_code, result.output | |
2021-07-11T00:40:32.6553369Z E AssertionError: | |
2021-07-11T00:40:32.6553805Z E assert 0 == 1 | |
2021-07-11T00:40:32.6554572Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6555210Z | |
2021-07-11T00:40:32.6555828Z D:\a\datasette\datasette\tests\test_publish_heroku.py:64: AssertionError | |
2021-07-11T00:40:32.6556606Z _____________________ test_publish_heroku_plugin_secrets ______________________ | |
2021-07-11T00:40:32.6557375Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6557888Z | |
2021-07-11T00:40:32.6558301Z mock_call = <MagicMock name='call' id='2826078502864'> | |
2021-07-11T00:40:32.6558927Z mock_check_output = <MagicMock name='check_output' id='2826085325168'> | |
2021-07-11T00:40:32.6559539Z mock_which = <MagicMock name='which' id='2826082663200'> | |
2021-07-11T00:40:32.6559890Z | |
2021-07-11T00:40:32.6560312Z @mock.patch("shutil.which") | |
2021-07-11T00:40:32.6561149Z @mock.patch("datasette.publish.heroku.check_output") | |
2021-07-11T00:40:32.6562159Z @mock.patch("datasette.publish.heroku.call") | |
2021-07-11T00:40:32.6563052Z def test_publish_heroku_plugin_secrets(mock_call, mock_check_output, mock_which): | |
2021-07-11T00:40:32.6563754Z mock_which.return_value = True | |
2021-07-11T00:40:32.6564325Z mock_check_output.side_effect = lambda s: { | |
2021-07-11T00:40:32.6564951Z "['heroku', 'plugins']": b"heroku-builds", | |
2021-07-11T00:40:32.6565518Z "['heroku', 'apps:list', '--json']": b"[]", | |
2021-07-11T00:40:32.6566116Z "['heroku', 'apps:create', 'datasette', '--json']": b'{"name": "f"}', | |
2021-07-11T00:40:32.6566637Z }[repr(s)] | |
2021-07-11T00:40:32.6567039Z runner = CliRunner() | |
2021-07-11T00:40:32.6567589Z with runner.isolated_filesystem(): | |
2021-07-11T00:40:32.6568144Z with open("test.db", "w") as fp: | |
2021-07-11T00:40:32.6568615Z fp.write("data") | |
2021-07-11T00:40:32.6569088Z result = runner.invoke( | |
2021-07-11T00:40:32.6569549Z cli.cli, | |
2021-07-11T00:40:32.6570789Z [ | |
2021-07-11T00:40:32.6571227Z "publish", | |
2021-07-11T00:40:32.6571627Z "heroku", | |
2021-07-11T00:40:32.6572016Z "test.db", | |
2021-07-11T00:40:32.6572484Z "--plugin-secret", | |
2021-07-11T00:40:32.6573064Z "datasette-auth-github", | |
2021-07-11T00:40:32.6573599Z "client_id", | |
2021-07-11T00:40:32.6574017Z "x-client-id", | |
2021-07-11T00:40:32.6574405Z ], | |
2021-07-11T00:40:32.6574714Z ) | |
2021-07-11T00:40:32.6575216Z > assert 0 == result.exit_code, result.output | |
2021-07-11T00:40:32.6575786Z E AssertionError: | |
2021-07-11T00:40:32.6576222Z E assert 0 == 1 | |
2021-07-11T00:40:32.6577107Z E + where 1 = <Result RecursionError('maximum recursion depth exceeded while calling a Python object')>.exit_code | |
2021-07-11T00:40:32.6577789Z | |
2021-07-11T00:40:32.6578410Z D:\a\datasette\datasette\tests\test_publish_heroku.py:108: AssertionError | |
2021-07-11T00:40:32.6579136Z ____________________________ test_detect_fts["-"] _____________________________ | |
2021-07-11T00:40:32.6579841Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6580356Z | |
2021-07-11T00:40:32.6580731Z open_quote = '"', close_quote = '"' | |
2021-07-11T00:40:32.6581102Z | |
2021-07-11T00:40:32.6581719Z @pytest.mark.parametrize("open_quote,close_quote", [('"', '"'), ("[", "]")]) | |
2021-07-11T00:40:32.6582467Z def test_detect_fts(open_quote, close_quote): | |
2021-07-11T00:40:32.6582937Z sql = """ | |
2021-07-11T00:40:32.6583336Z CREATE TABLE "Dumb_Table" ( | |
2021-07-11T00:40:32.6583805Z "TreeID" INTEGER, | |
2021-07-11T00:40:32.6584250Z "qSpecies" TEXT | |
2021-07-11T00:40:32.6584612Z ); | |
2021-07-11T00:40:32.6585040Z CREATE TABLE "Street_Tree_List" ( | |
2021-07-11T00:40:32.6585509Z "TreeID" INTEGER, | |
2021-07-11T00:40:32.6585947Z "qSpecies" TEXT, | |
2021-07-11T00:40:32.6586365Z "qAddress" TEXT, | |
2021-07-11T00:40:32.6586817Z "SiteOrder" INTEGER, | |
2021-07-11T00:40:32.6587262Z "qSiteInfo" TEXT, | |
2021-07-11T00:40:32.6587709Z "PlantType" TEXT, | |
2021-07-11T00:40:32.6588144Z "qCaretaker" TEXT | |
2021-07-11T00:40:32.6588526Z ); | |
2021-07-11T00:40:32.6589001Z CREATE VIEW Test_View AS SELECT * FROM Dumb_Table; | |
2021-07-11T00:40:32.6589984Z CREATE VIRTUAL TABLE {open}Street_Tree_List_fts{close} USING FTS4 ("qAddress", "qCaretaker", "qSpecies", content={open}Street_Tree_List{close}); | |
2021-07-11T00:40:32.6591067Z CREATE VIRTUAL TABLE r USING rtree(a, b, c); | |
2021-07-11T00:40:32.6591537Z """.format( | |
2021-07-11T00:40:32.6592023Z open=open_quote, close=close_quote | |
2021-07-11T00:40:32.6592461Z ) | |
2021-07-11T00:40:32.6592979Z conn = utils.sqlite3.connect(":memory:") | |
2021-07-11T00:40:32.6593611Z > conn.executescript(sql) | |
2021-07-11T00:40:32.6594335Z E sqlite3.OperationalError: no such module: rtree | |
2021-07-11T00:40:32.6594829Z | |
2021-07-11T00:40:32.6595423Z D:\a\datasette\datasette\tests\test_utils.py:196: OperationalError | |
2021-07-11T00:40:32.6596131Z ____________________________ test_detect_fts[[-]] _____________________________ | |
2021-07-11T00:40:32.6596834Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6597344Z | |
2021-07-11T00:40:32.6597733Z open_quote = '[', close_quote = ']' | |
2021-07-11T00:40:32.6598040Z | |
2021-07-11T00:40:32.6598632Z @pytest.mark.parametrize("open_quote,close_quote", [('"', '"'), ("[", "]")]) | |
2021-07-11T00:40:32.6599399Z def test_detect_fts(open_quote, close_quote): | |
2021-07-11T00:40:32.6599856Z sql = """ | |
2021-07-11T00:40:32.6600276Z CREATE TABLE "Dumb_Table" ( | |
2021-07-11T00:40:32.6600735Z "TreeID" INTEGER, | |
2021-07-11T00:40:32.6601239Z "qSpecies" TEXT | |
2021-07-11T00:40:32.6601600Z ); | |
2021-07-11T00:40:32.6602024Z CREATE TABLE "Street_Tree_List" ( | |
2021-07-11T00:40:32.6602490Z "TreeID" INTEGER, | |
2021-07-11T00:40:32.6602929Z "qSpecies" TEXT, | |
2021-07-11T00:40:32.6603361Z "qAddress" TEXT, | |
2021-07-11T00:40:32.6603799Z "SiteOrder" INTEGER, | |
2021-07-11T00:40:32.6604261Z "qSiteInfo" TEXT, | |
2021-07-11T00:40:32.6604694Z "PlantType" TEXT, | |
2021-07-11T00:40:32.6605163Z "qCaretaker" TEXT | |
2021-07-11T00:40:32.6605526Z ); | |
2021-07-11T00:40:32.6606009Z CREATE VIEW Test_View AS SELECT * FROM Dumb_Table; | |
2021-07-11T00:40:32.6606969Z CREATE VIRTUAL TABLE {open}Street_Tree_List_fts{close} USING FTS4 ("qAddress", "qCaretaker", "qSpecies", content={open}Street_Tree_List{close}); | |
2021-07-11T00:40:32.6607999Z CREATE VIRTUAL TABLE r USING rtree(a, b, c); | |
2021-07-11T00:40:32.6608519Z """.format( | |
2021-07-11T00:40:32.6608992Z open=open_quote, close=close_quote | |
2021-07-11T00:40:32.6609435Z ) | |
2021-07-11T00:40:32.6609931Z conn = utils.sqlite3.connect(":memory:") | |
2021-07-11T00:40:32.6610566Z > conn.executescript(sql) | |
2021-07-11T00:40:32.6611325Z E sqlite3.OperationalError: no such module: rtree | |
2021-07-11T00:40:32.6611802Z | |
2021-07-11T00:40:32.6612408Z D:\a\datasette\datasette\tests\test_utils.py:196: OperationalError | |
2021-07-11T00:40:32.6613167Z _____________________ test_view_database[allow1-403-403] ______________________ | |
2021-07-11T00:40:32.6613968Z [gw0] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6614480Z | |
2021-07-11T00:40:32.6614982Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08' | |
2021-07-11T00:40:32.6615848Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E950F160> | |
2021-07-11T00:40:32.6616401Z | |
2021-07-11T00:40:32.6616830Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6617273Z try: | |
2021-07-11T00:40:32.6617712Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6618249Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6618711Z except OSError: | |
2021-07-11T00:40:32.6619254Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6619760Z entries = [] | |
2021-07-11T00:40:32.6620191Z for entry in entries: | |
2021-07-11T00:40:32.6620674Z fullname = entry.path | |
2021-07-11T00:40:32.6621250Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6621679Z try: | |
2021-07-11T00:40:32.6622106Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6622680Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6623313Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6623958Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6624613Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6625201Z except OSError: | |
2021-07-11T00:40:32.6625805Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6626380Z continue | |
2021-07-11T00:40:32.6626870Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6627344Z else: | |
2021-07-11T00:40:32.6627700Z try: | |
2021-07-11T00:40:32.6628101Z > os.unlink(fullname) | |
2021-07-11T00:40:32.6629191Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08\\fixtures.db' | |
2021-07-11T00:40:32.6630073Z | |
2021-07-11T00:40:32.6630708Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:616: PermissionError | |
2021-07-11T00:40:32.6631332Z | |
2021-07-11T00:40:32.6631903Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6632395Z | |
2021-07-11T00:40:32.6632806Z func = <built-in function unlink> | |
2021-07-11T00:40:32.6633484Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08\\fixtures.db' | |
2021-07-11T00:40:32.6634730Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000213EAB36F80>) | |
2021-07-11T00:40:32.6635591Z | |
2021-07-11T00:40:32.6636000Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6636619Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6637220Z def resetperms(path): | |
2021-07-11T00:40:32.6637645Z try: | |
2021-07-11T00:40:32.6638064Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6638579Z except AttributeError: | |
2021-07-11T00:40:32.6639126Z pass | |
2021-07-11T00:40:32.6639584Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6639966Z | |
2021-07-11T00:40:32.6640273Z try: | |
2021-07-11T00:40:32.6640655Z if path != name: | |
2021-07-11T00:40:32.6641255Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6641829Z resetperms(path) | |
2021-07-11T00:40:32.6642203Z | |
2021-07-11T00:40:32.6642530Z try: | |
2021-07-11T00:40:32.6642917Z > _os.unlink(path) | |
2021-07-11T00:40:32.6643986Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08\\fixtures.db' | |
2021-07-11T00:40:32.6644875Z | |
2021-07-11T00:40:32.6645530Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6646104Z | |
2021-07-11T00:40:32.6646686Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6647182Z | |
2021-07-11T00:40:32.6647620Z allow = {}, expected_anon = 403, expected_auth = 403 | |
2021-07-11T00:40:32.6647987Z | |
2021-07-11T00:40:32.6648470Z @pytest.mark.parametrize( | |
2021-07-11T00:40:32.6649133Z "allow,expected_anon,expected_auth", | |
2021-07-11T00:40:32.6649630Z [ | |
2021-07-11T00:40:32.6649960Z (None, 200, 200), | |
2021-07-11T00:40:32.6650322Z ({}, 403, 403), | |
2021-07-11T00:40:32.6650680Z ({"id": "root"}, 403, 200), | |
2021-07-11T00:40:32.6651095Z ], | |
2021-07-11T00:40:32.6651390Z ) | |
2021-07-11T00:40:32.6651936Z def test_view_database(allow, expected_anon, expected_auth): | |
2021-07-11T00:40:32.6652532Z with make_app_client( | |
2021-07-11T00:40:32.6653100Z metadata={"databases": {"fixtures": {"allow": allow}}} | |
2021-07-11T00:40:32.6653608Z ) as client: | |
2021-07-11T00:40:32.6654001Z for path in ( | |
2021-07-11T00:40:32.6654412Z "/fixtures", | |
2021-07-11T00:40:32.6654949Z "/fixtures/compound_three_primary_keys", | |
2021-07-11T00:40:32.6655611Z "/fixtures/compound_three_primary_keys/a,a,a", | |
2021-07-11T00:40:32.6656092Z ): | |
2021-07-11T00:40:32.6656552Z anon_response = client.get(path) | |
2021-07-11T00:40:32.6657226Z assert expected_anon == anon_response.status, path | |
2021-07-11T00:40:32.6658006Z if allow and path == "/fixtures" and anon_response.status == 200: | |
2021-07-11T00:40:32.6658624Z # Should be no padlock | |
2021-07-11T00:40:32.6659244Z assert ">fixtures \U0001f512</h1>" not in anon_response.text | |
2021-07-11T00:40:32.6659894Z auth_response = client.get( | |
2021-07-11T00:40:32.6660347Z path, | |
2021-07-11T00:40:32.6660961Z cookies={"ds_actor": client.actor_cookie({"id": "root"})}, | |
2021-07-11T00:40:32.6661455Z ) | |
2021-07-11T00:40:32.6661989Z assert expected_auth == auth_response.status | |
2021-07-11T00:40:32.6662501Z if ( | |
2021-07-11T00:40:32.6662856Z allow | |
2021-07-11T00:40:32.6663273Z and path == "/fixtures" | |
2021-07-11T00:40:32.6663766Z and expected_anon == 403 | |
2021-07-11T00:40:32.6664247Z and expected_auth == 200 | |
2021-07-11T00:40:32.6664652Z ): | |
2021-07-11T00:40:32.6665192Z > assert ">fixtures \U0001f512</h1>" in auth_response.text | |
2021-07-11T00:40:32.6665600Z | |
2021-07-11T00:40:32.6666149Z D:\a\datasette\datasette\tests\test_permissions.py:72: | |
2021-07-11T00:40:32.6666745Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6667419Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\contextlib.py:120: in __exit__ | |
2021-07-11T00:40:32.6668076Z next(self.gen) | |
2021-07-11T00:40:32.6668686Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client | |
2021-07-11T00:40:32.6669419Z yield TestClient(ds) | |
2021-07-11T00:40:32.6670140Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:827: in __exit__ | |
2021-07-11T00:40:32.6670800Z self.cleanup() | |
2021-07-11T00:40:32.6671535Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:831: in cleanup | |
2021-07-11T00:40:32.6672229Z self._rmtree(self.name) | |
2021-07-11T00:40:32.6672910Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6673665Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6674403Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6675094Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6675837Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:618: in _rmtree_unsafe | |
2021-07-11T00:40:32.6676600Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6677369Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:805: in onerror | |
2021-07-11T00:40:32.6678020Z cls._rmtree(path) | |
2021-07-11T00:40:32.6678680Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:813: in _rmtree | |
2021-07-11T00:40:32.6679432Z _shutil.rmtree(name, onerror=onerror) | |
2021-07-11T00:40:32.6680155Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:740: in rmtree | |
2021-07-11T00:40:32.6680955Z return _rmtree_unsafe(path, onerror) | |
2021-07-11T00:40:32.6681691Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:599: in _rmtree_unsafe | |
2021-07-11T00:40:32.6682455Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6682964Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
2021-07-11T00:40:32.6683235Z | |
2021-07-11T00:40:32.6683818Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08\\fixtures.db' | |
2021-07-11T00:40:32.6684741Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000213E94D7C10> | |
2021-07-11T00:40:32.6685305Z | |
2021-07-11T00:40:32.6685741Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6686179Z try: | |
2021-07-11T00:40:32.6686630Z > with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6687611Z E NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_2k6ey08\\fixtures.db' | |
2021-07-11T00:40:32.6688352Z | |
2021-07-11T00:40:32.6689025Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:596: NotADirectoryError | |
2021-07-11T00:40:32.6689878Z _______________ test_temporary_docker_directory_uses_hard_link ________________ | |
2021-07-11T00:40:32.6690687Z [gw1] win32 -- Python 3.8.10 c:\hostedtoolcache\windows\python\3.8.10\x64\python.exe | |
2021-07-11T00:40:32.6691273Z | |
2021-07-11T00:40:32.6691799Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6692701Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB1700> | |
2021-07-11T00:40:32.6693267Z | |
2021-07-11T00:40:32.6693683Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6694128Z try: | |
2021-07-11T00:40:32.6694571Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6695118Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6695579Z except OSError: | |
2021-07-11T00:40:32.6696120Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6696629Z entries = [] | |
2021-07-11T00:40:32.6697063Z for entry in entries: | |
2021-07-11T00:40:32.6697537Z fullname = entry.path | |
2021-07-11T00:40:32.6698031Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6698447Z try: | |
2021-07-11T00:40:32.6698861Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6699434Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6700069Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6700695Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6702365Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6703297Z except OSError: | |
2021-07-11T00:40:32.6704134Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6704940Z continue | |
2021-07-11T00:40:32.6705630Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6706266Z else: | |
2021-07-11T00:40:32.6706755Z try: | |
2021-07-11T00:40:32.6707318Z os.unlink(fullname) | |
2021-07-11T00:40:32.6707981Z except OSError: | |
2021-07-11T00:40:32.6708764Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6709459Z try: | |
2021-07-11T00:40:32.6709961Z > os.rmdir(path) | |
2021-07-11T00:40:32.6711432Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6712610Z | |
2021-07-11T00:40:32.6713507Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6714268Z | |
2021-07-11T00:40:32.6715069Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6715778Z | |
2021-07-11T00:40:32.6716313Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6717208Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6718853Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC531C0>) | |
2021-07-11T00:40:32.6720035Z | |
2021-07-11T00:40:32.6720613Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6721496Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6722317Z def resetperms(path): | |
2021-07-11T00:40:32.6722883Z try: | |
2021-07-11T00:40:32.6723461Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6724167Z except AttributeError: | |
2021-07-11T00:40:32.6724811Z pass | |
2021-07-11T00:40:32.6725370Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6725891Z | |
2021-07-11T00:40:32.6726327Z try: | |
2021-07-11T00:40:32.6726850Z if path != name: | |
2021-07-11T00:40:32.6727607Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6728377Z resetperms(path) | |
2021-07-11T00:40:32.6728915Z | |
2021-07-11T00:40:32.6729351Z try: | |
2021-07-11T00:40:32.6729898Z > _os.unlink(path) | |
2021-07-11T00:40:32.6731053Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6731938Z | |
2021-07-11T00:40:32.6732867Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6733662Z | |
2021-07-11T00:40:32.6734457Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6735139Z | |
2021-07-11T00:40:32.6735852Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6737089Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCFDC0> | |
2021-07-11T00:40:32.6737892Z | |
2021-07-11T00:40:32.6738466Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6739079Z try: | |
2021-07-11T00:40:32.6739685Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6740422Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6741116Z except OSError: | |
2021-07-11T00:40:32.6741854Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6742568Z entries = [] | |
2021-07-11T00:40:32.6743151Z for entry in entries: | |
2021-07-11T00:40:32.6743821Z fullname = entry.path | |
2021-07-11T00:40:32.6744483Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6745153Z try: | |
2021-07-11T00:40:32.6745814Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6746608Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6747486Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6748355Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6749266Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6750068Z except OSError: | |
2021-07-11T00:40:32.6750966Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6751755Z continue | |
2021-07-11T00:40:32.6752445Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6753083Z else: | |
2021-07-11T00:40:32.6753564Z try: | |
2021-07-11T00:40:32.6754136Z os.unlink(fullname) | |
2021-07-11T00:40:32.6754794Z except OSError: | |
2021-07-11T00:40:32.6755581Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6756268Z try: | |
2021-07-11T00:40:32.6756785Z > os.rmdir(path) | |
2021-07-11T00:40:32.6758178Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6759337Z | |
2021-07-11T00:40:32.6760228Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6761018Z | |
2021-07-11T00:40:32.6761828Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6762498Z | |
2021-07-11T00:40:32.6763038Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6763930Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6765578Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC53240>) | |
2021-07-11T00:40:32.6766431Z | |
2021-07-11T00:40:32.6766858Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6767492Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6768099Z def resetperms(path): | |
2021-07-11T00:40:32.6768512Z try: | |
2021-07-11T00:40:32.6768934Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6769461Z except AttributeError: | |
2021-07-11T00:40:32.6769915Z pass | |
2021-07-11T00:40:32.6770334Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6770701Z | |
2021-07-11T00:40:32.6771054Z try: | |
2021-07-11T00:40:32.6771421Z if path != name: | |
2021-07-11T00:40:32.6771968Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6772531Z resetperms(path) | |
2021-07-11T00:40:32.6772921Z | |
2021-07-11T00:40:32.6773239Z try: | |
2021-07-11T00:40:32.6773642Z > _os.unlink(path) | |
2021-07-11T00:40:32.6774442Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6775076Z | |
2021-07-11T00:40:32.6775748Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6776322Z | |
2021-07-11T00:40:32.6776892Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6777384Z | |
2021-07-11T00:40:32.6777915Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6778803Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCF550> | |
2021-07-11T00:40:32.6779376Z | |
2021-07-11T00:40:32.6779810Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6780239Z try: | |
2021-07-11T00:40:32.6780694Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6781254Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6781822Z except OSError: | |
2021-07-11T00:40:32.6782412Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6782929Z entries = [] | |
2021-07-11T00:40:32.6783347Z for entry in entries: | |
2021-07-11T00:40:32.6783835Z fullname = entry.path | |
2021-07-11T00:40:32.6784314Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6784727Z try: | |
2021-07-11T00:40:32.6785140Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6785715Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6786365Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6786974Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6787638Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6788207Z except OSError: | |
2021-07-11T00:40:32.6788829Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6789402Z continue | |
2021-07-11T00:40:32.6789908Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6790390Z else: | |
2021-07-11T00:40:32.6790733Z try: | |
2021-07-11T00:40:32.6791384Z os.unlink(fullname) | |
2021-07-11T00:40:32.6791885Z except OSError: | |
2021-07-11T00:40:32.6792525Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6793051Z try: | |
2021-07-11T00:40:32.6793488Z > os.rmdir(path) | |
2021-07-11T00:40:32.6794646Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6795521Z | |
2021-07-11T00:40:32.6796196Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6813867Z | |
2021-07-11T00:40:32.6814617Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6815138Z | |
2021-07-11T00:40:32.6815546Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6816219Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6817443Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC53A40>) | |
2021-07-11T00:40:32.6818292Z | |
2021-07-11T00:40:32.6818733Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6819371Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6819964Z def resetperms(path): | |
2021-07-11T00:40:32.6820398Z try: | |
2021-07-11T00:40:32.6820816Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6821400Z except AttributeError: | |
2021-07-11T00:40:32.6821866Z pass | |
2021-07-11T00:40:32.6822289Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6822672Z | |
2021-07-11T00:40:32.6823007Z try: | |
2021-07-11T00:40:32.6823390Z if path != name: | |
2021-07-11T00:40:32.6823948Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6824525Z resetperms(path) | |
2021-07-11T00:40:32.6824908Z | |
2021-07-11T00:40:32.6825244Z try: | |
2021-07-11T00:40:32.6825630Z > _os.unlink(path) | |
2021-07-11T00:40:32.6826455Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6827093Z | |
2021-07-11T00:40:32.6827760Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6828339Z | |
2021-07-11T00:40:32.6828919Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6829412Z | |
2021-07-11T00:40:32.6829952Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6831076Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCF700> | |
2021-07-11T00:40:32.6831725Z | |
2021-07-11T00:40:32.6832168Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6832609Z try: | |
2021-07-11T00:40:32.6833071Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6833605Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6834086Z except OSError: | |
2021-07-11T00:40:32.6834629Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6835152Z entries = [] | |
2021-07-11T00:40:32.6835598Z for entry in entries: | |
2021-07-11T00:40:32.6836086Z fullname = entry.path | |
2021-07-11T00:40:32.6836586Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6836994Z try: | |
2021-07-11T00:40:32.6837431Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6838000Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6838664Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6839286Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6839958Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6840551Z except OSError: | |
2021-07-11T00:40:32.6841201Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6841792Z continue | |
2021-07-11T00:40:32.6842295Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6842779Z else: | |
2021-07-11T00:40:32.6843134Z try: | |
2021-07-11T00:40:32.6843565Z os.unlink(fullname) | |
2021-07-11T00:40:32.6844034Z except OSError: | |
2021-07-11T00:40:32.6844620Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6845113Z try: | |
2021-07-11T00:40:32.6845502Z > os.rmdir(path) | |
2021-07-11T00:40:32.6846521Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6847359Z | |
2021-07-11T00:40:32.6848021Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6848576Z | |
2021-07-11T00:40:32.6849154Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6849644Z | |
2021-07-11T00:40:32.6850052Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6850691Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6851916Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF402A00>) | |
2021-07-11T00:40:32.6852766Z | |
2021-07-11T00:40:32.6853179Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6853813Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6854408Z def resetperms(path): | |
2021-07-11T00:40:32.6854844Z try: | |
2021-07-11T00:40:32.6855255Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6855864Z except AttributeError: | |
2021-07-11T00:40:32.6856500Z pass | |
2021-07-11T00:40:32.6862495Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6862897Z | |
2021-07-11T00:40:32.6863222Z try: | |
2021-07-11T00:40:32.6863604Z if path != name: | |
2021-07-11T00:40:32.6864140Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6864717Z resetperms(path) | |
2021-07-11T00:40:32.6865090Z | |
2021-07-11T00:40:32.6865417Z try: | |
2021-07-11T00:40:32.6865796Z > _os.unlink(path) | |
2021-07-11T00:40:32.6866592Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6867953Z | |
2021-07-11T00:40:32.6868705Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6869304Z | |
2021-07-11T00:40:32.6869879Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6870362Z | |
2021-07-11T00:40:32.6870882Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6871808Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCF820> | |
2021-07-11T00:40:32.6901352Z | |
2021-07-11T00:40:32.6901904Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6902349Z try: | |
2021-07-11T00:40:32.6902794Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6903324Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6903785Z except OSError: | |
2021-07-11T00:40:32.6904315Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6904815Z entries = [] | |
2021-07-11T00:40:32.6905250Z for entry in entries: | |
2021-07-11T00:40:32.6905731Z fullname = entry.path | |
2021-07-11T00:40:32.6906209Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6906615Z try: | |
2021-07-11T00:40:32.6907030Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6907592Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6908227Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6908841Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6909485Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6910056Z except OSError: | |
2021-07-11T00:40:32.6910654Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6911468Z continue | |
2021-07-11T00:40:32.6911963Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6912425Z else: | |
2021-07-11T00:40:32.6912778Z try: | |
2021-07-11T00:40:32.6913186Z os.unlink(fullname) | |
2021-07-11T00:40:32.6913649Z except OSError: | |
2021-07-11T00:40:32.6914206Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6914694Z try: | |
2021-07-11T00:40:32.6915053Z > os.rmdir(path) | |
2021-07-11T00:40:32.6916047Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6916880Z | |
2021-07-11T00:40:32.6917515Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6918049Z | |
2021-07-11T00:40:32.6918624Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6919112Z | |
2021-07-11T00:40:32.6919500Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6920136Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6921431Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF402040>) | |
2021-07-11T00:40:32.6922303Z | |
2021-07-11T00:40:32.6922714Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6923326Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6923907Z def resetperms(path): | |
2021-07-11T00:40:32.6924319Z try: | |
2021-07-11T00:40:32.6924721Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6925230Z except AttributeError: | |
2021-07-11T00:40:32.6925683Z pass | |
2021-07-11T00:40:32.6926081Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6926444Z | |
2021-07-11T00:40:32.6926751Z try: | |
2021-07-11T00:40:32.6927118Z if path != name: | |
2021-07-11T00:40:32.6927654Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6928463Z resetperms(path) | |
2021-07-11T00:40:32.6928843Z | |
2021-07-11T00:40:32.6929155Z try: | |
2021-07-11T00:40:32.6929535Z > _os.unlink(path) | |
2021-07-11T00:40:32.6930338Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6931032Z | |
2021-07-11T00:40:32.6931689Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6932254Z | |
2021-07-11T00:40:32.6932827Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6933309Z | |
2021-07-11T00:40:32.6933831Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6934722Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCF940> | |
2021-07-11T00:40:32.6935289Z | |
2021-07-11T00:40:32.6935705Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6936147Z try: | |
2021-07-11T00:40:32.6936606Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6937155Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6937614Z except OSError: | |
2021-07-11T00:40:32.6938157Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6938667Z entries = [] | |
2021-07-11T00:40:32.6939104Z for entry in entries: | |
2021-07-11T00:40:32.6939582Z fullname = entry.path | |
2021-07-11T00:40:32.6940075Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6940478Z try: | |
2021-07-11T00:40:32.6940973Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6941539Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6942188Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6942808Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6943459Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6944046Z except OSError: | |
2021-07-11T00:40:32.6944646Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6945225Z continue | |
2021-07-11T00:40:32.6945717Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6946192Z else: | |
2021-07-11T00:40:32.6946535Z try: | |
2021-07-11T00:40:32.6946962Z os.unlink(fullname) | |
2021-07-11T00:40:32.6947422Z except OSError: | |
2021-07-11T00:40:32.6947996Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6948491Z try: | |
2021-07-11T00:40:32.6948855Z > os.rmdir(path) | |
2021-07-11T00:40:32.6949875Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6950714Z | |
2021-07-11T00:40:32.6951429Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6951984Z | |
2021-07-11T00:40:32.6952564Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6953052Z | |
2021-07-11T00:40:32.6953454Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6954091Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6955285Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF402F80>) | |
2021-07-11T00:40:32.6956141Z | |
2021-07-11T00:40:32.6956550Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6957175Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6957764Z def resetperms(path): | |
2021-07-11T00:40:32.6958192Z try: | |
2021-07-11T00:40:32.6958609Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6959196Z except AttributeError: | |
2021-07-11T00:40:32.6959734Z pass | |
2021-07-11T00:40:32.6960142Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6960524Z | |
2021-07-11T00:40:32.6960836Z try: | |
2021-07-11T00:40:32.6961266Z if path != name: | |
2021-07-11T00:40:32.6961801Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6962376Z resetperms(path) | |
2021-07-11T00:40:32.6962756Z | |
2021-07-11T00:40:32.6963084Z try: | |
2021-07-11T00:40:32.6963465Z > _os.unlink(path) | |
2021-07-11T00:40:32.6964277Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6964918Z | |
2021-07-11T00:40:32.6965575Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.6966146Z | |
2021-07-11T00:40:32.6966738Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6967229Z | |
2021-07-11T00:40:32.6967748Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6968653Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCFA60> | |
2021-07-11T00:40:32.6969231Z | |
2021-07-11T00:40:32.6969653Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.6970096Z try: | |
2021-07-11T00:40:32.6970538Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.6971118Z entries = list(scandir_it) | |
2021-07-11T00:40:32.6971582Z except OSError: | |
2021-07-11T00:40:32.6972123Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.6972627Z entries = [] | |
2021-07-11T00:40:32.6973059Z for entry in entries: | |
2021-07-11T00:40:32.6973537Z fullname = entry.path | |
2021-07-11T00:40:32.6974041Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.6974464Z try: | |
2021-07-11T00:40:32.6974890Z if entry.is_symlink(): | |
2021-07-11T00:40:32.6975465Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.6976127Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.6976753Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.6977399Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.6977977Z except OSError: | |
2021-07-11T00:40:32.6978578Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6979158Z continue | |
2021-07-11T00:40:32.6979659Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.6980127Z else: | |
2021-07-11T00:40:32.6980492Z try: | |
2021-07-11T00:40:32.6980963Z os.unlink(fullname) | |
2021-07-11T00:40:32.6981446Z except OSError: | |
2021-07-11T00:40:32.6982013Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.6982522Z try: | |
2021-07-11T00:40:32.6982886Z > os.rmdir(path) | |
2021-07-11T00:40:32.6983895Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6984723Z | |
2021-07-11T00:40:32.6985355Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.6985912Z | |
2021-07-11T00:40:32.6986497Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.6987005Z | |
2021-07-11T00:40:32.6987397Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.6988043Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6989307Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32380>) | |
2021-07-11T00:40:32.6990223Z | |
2021-07-11T00:40:32.6990645Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.6991302Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.6991898Z def resetperms(path): | |
2021-07-11T00:40:32.6992346Z try: | |
2021-07-11T00:40:32.6992783Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.6993290Z except AttributeError: | |
2021-07-11T00:40:32.6993759Z pass | |
2021-07-11T00:40:32.6994158Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.6994536Z | |
2021-07-11T00:40:32.6994847Z try: | |
2021-07-11T00:40:32.6995229Z if path != name: | |
2021-07-11T00:40:32.6995775Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.6996329Z resetperms(path) | |
2021-07-11T00:40:32.6996714Z | |
2021-07-11T00:40:32.6997025Z try: | |
2021-07-11T00:40:32.6997421Z > _os.unlink(path) | |
2021-07-11T00:40:32.6998233Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.6998871Z | |
2021-07-11T00:40:32.6999539Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7000093Z | |
2021-07-11T00:40:32.7000675Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7001210Z | |
2021-07-11T00:40:32.7001731Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7002685Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCFB80> | |
2021-07-11T00:40:32.7003260Z | |
2021-07-11T00:40:32.7003673Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7004115Z try: | |
2021-07-11T00:40:32.7004553Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7005094Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7005568Z except OSError: | |
2021-07-11T00:40:32.7006120Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7006633Z entries = [] | |
2021-07-11T00:40:32.7007047Z for entry in entries: | |
2021-07-11T00:40:32.7007533Z fullname = entry.path | |
2021-07-11T00:40:32.7008009Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7008420Z try: | |
2021-07-11T00:40:32.7008831Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7009404Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7010035Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7010655Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7011354Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7011920Z except OSError: | |
2021-07-11T00:40:32.7012533Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7013106Z continue | |
2021-07-11T00:40:32.7013616Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7014079Z else: | |
2021-07-11T00:40:32.7014441Z try: | |
2021-07-11T00:40:32.7014850Z os.unlink(fullname) | |
2021-07-11T00:40:32.7015345Z except OSError: | |
2021-07-11T00:40:32.7015945Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7016447Z try: | |
2021-07-11T00:40:32.7016822Z > os.rmdir(path) | |
2021-07-11T00:40:32.7017868Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7018701Z | |
2021-07-11T00:40:32.7019348Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7019888Z | |
2021-07-11T00:40:32.7020554Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7021210Z | |
2021-07-11T00:40:32.7021599Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7022243Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7023427Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32A00>) | |
2021-07-11T00:40:32.7024338Z | |
2021-07-11T00:40:32.7024759Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7025365Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7025964Z def resetperms(path): | |
2021-07-11T00:40:32.7026372Z try: | |
2021-07-11T00:40:32.7026788Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7027310Z except AttributeError: | |
2021-07-11T00:40:32.7027769Z pass | |
2021-07-11T00:40:32.7028182Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7028543Z | |
2021-07-11T00:40:32.7028874Z try: | |
2021-07-11T00:40:32.7029242Z if path != name: | |
2021-07-11T00:40:32.7029794Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7030352Z resetperms(path) | |
2021-07-11T00:40:32.7030737Z | |
2021-07-11T00:40:32.7031130Z try: | |
2021-07-11T00:40:32.7031541Z > _os.unlink(path) | |
2021-07-11T00:40:32.7032338Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7032990Z | |
2021-07-11T00:40:32.7033660Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7034233Z | |
2021-07-11T00:40:32.7034808Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7035294Z | |
2021-07-11T00:40:32.7035824Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7036725Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCFE50> | |
2021-07-11T00:40:32.7037309Z | |
2021-07-11T00:40:32.7037727Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7038171Z try: | |
2021-07-11T00:40:32.7038623Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7039146Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7039643Z except OSError: | |
2021-07-11T00:40:32.7040178Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7040692Z entries = [] | |
2021-07-11T00:40:32.7041164Z for entry in entries: | |
2021-07-11T00:40:32.7041678Z fullname = entry.path | |
2021-07-11T00:40:32.7042152Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7042571Z try: | |
2021-07-11T00:40:32.7042984Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7043575Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7044246Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7044857Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7045515Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7046079Z except OSError: | |
2021-07-11T00:40:32.7046692Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7047253Z continue | |
2021-07-11T00:40:32.7047754Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7048217Z else: | |
2021-07-11T00:40:32.7048567Z try: | |
2021-07-11T00:40:32.7048991Z os.unlink(fullname) | |
2021-07-11T00:40:32.7049454Z except OSError: | |
2021-07-11T00:40:32.7050029Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7050518Z try: | |
2021-07-11T00:40:32.7050929Z > os.rmdir(path) | |
2021-07-11T00:40:32.7052051Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7052961Z | |
2021-07-11T00:40:32.7053625Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7054175Z | |
2021-07-11T00:40:32.7054742Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7055246Z | |
2021-07-11T00:40:32.7055669Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7056324Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7057529Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32640>) | |
2021-07-11T00:40:32.7058374Z | |
2021-07-11T00:40:32.7058794Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7059416Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7060004Z def resetperms(path): | |
2021-07-11T00:40:32.7060431Z try: | |
2021-07-11T00:40:32.7060836Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7061398Z except AttributeError: | |
2021-07-11T00:40:32.7061853Z pass | |
2021-07-11T00:40:32.7062268Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7062630Z | |
2021-07-11T00:40:32.7062950Z try: | |
2021-07-11T00:40:32.7063321Z if path != name: | |
2021-07-11T00:40:32.7063872Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7064428Z resetperms(path) | |
2021-07-11T00:40:32.7064833Z | |
2021-07-11T00:40:32.7065199Z try: | |
2021-07-11T00:40:32.7065582Z > _os.unlink(path) | |
2021-07-11T00:40:32.7066392Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7067012Z | |
2021-07-11T00:40:32.7067683Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7068263Z | |
2021-07-11T00:40:32.7068843Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7069335Z | |
2021-07-11T00:40:32.7069869Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7070760Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFCCFF70> | |
2021-07-11T00:40:32.7071455Z | |
2021-07-11T00:40:32.7071885Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7072316Z try: | |
2021-07-11T00:40:32.7072775Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7073301Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7073774Z except OSError: | |
2021-07-11T00:40:32.7074309Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7074822Z entries = [] | |
2021-07-11T00:40:32.7075241Z for entry in entries: | |
2021-07-11T00:40:32.7075733Z fullname = entry.path | |
2021-07-11T00:40:32.7076229Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7076629Z try: | |
2021-07-11T00:40:32.7077088Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7077654Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7078298Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7078906Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7079560Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7080125Z except OSError: | |
2021-07-11T00:40:32.7080755Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7081372Z continue | |
2021-07-11T00:40:32.7081859Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7082337Z else: | |
2021-07-11T00:40:32.7082767Z try: | |
2021-07-11T00:40:32.7083881Z os.unlink(fullname) | |
2021-07-11T00:40:32.7084344Z except OSError: | |
2021-07-11T00:40:32.7084916Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7085405Z try: | |
2021-07-11T00:40:32.7085782Z > os.rmdir(path) | |
2021-07-11T00:40:32.7086820Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7087675Z | |
2021-07-11T00:40:32.7088325Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7088873Z | |
2021-07-11T00:40:32.7089442Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7089931Z | |
2021-07-11T00:40:32.7090373Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7091064Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7092270Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32D80>) | |
2021-07-11T00:40:32.7093168Z | |
2021-07-11T00:40:32.7093597Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7094223Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7094807Z def resetperms(path): | |
2021-07-11T00:40:32.7095231Z try: | |
2021-07-11T00:40:32.7095684Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7096209Z except AttributeError: | |
2021-07-11T00:40:32.7096669Z pass | |
2021-07-11T00:40:32.7097086Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7097463Z | |
2021-07-11T00:40:32.7097769Z try: | |
2021-07-11T00:40:32.7098167Z if path != name: | |
2021-07-11T00:40:32.7098761Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7099335Z resetperms(path) | |
2021-07-11T00:40:32.7099713Z | |
2021-07-11T00:40:32.7100039Z try: | |
2021-07-11T00:40:32.7100418Z > _os.unlink(path) | |
2021-07-11T00:40:32.7101287Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7101939Z | |
2021-07-11T00:40:32.7102595Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7103163Z | |
2021-07-11T00:40:32.7103764Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7104255Z | |
2021-07-11T00:40:32.7104791Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7105689Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB50D0> | |
2021-07-11T00:40:32.7106246Z | |
2021-07-11T00:40:32.7106694Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7107163Z try: | |
2021-07-11T00:40:32.7107621Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7108166Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7108628Z except OSError: | |
2021-07-11T00:40:32.7109167Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7109670Z entries = [] | |
2021-07-11T00:40:32.7110097Z for entry in entries: | |
2021-07-11T00:40:32.7110570Z fullname = entry.path | |
2021-07-11T00:40:32.7111104Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7111504Z try: | |
2021-07-11T00:40:32.7111930Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7112488Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7113189Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7113818Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7114555Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7115200Z except OSError: | |
2021-07-11T00:40:32.7115858Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7116438Z continue | |
2021-07-11T00:40:32.7116927Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7117418Z else: | |
2021-07-11T00:40:32.7117794Z try: | |
2021-07-11T00:40:32.7118216Z os.unlink(fullname) | |
2021-07-11T00:40:32.7118677Z except OSError: | |
2021-07-11T00:40:32.7119249Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7119764Z try: | |
2021-07-11T00:40:32.7120159Z > os.rmdir(path) | |
2021-07-11T00:40:32.7121207Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7122039Z | |
2021-07-11T00:40:32.7122692Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7123260Z | |
2021-07-11T00:40:32.7123831Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7124316Z | |
2021-07-11T00:40:32.7124720Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7125351Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7126595Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32080>) | |
2021-07-11T00:40:32.7127449Z | |
2021-07-11T00:40:32.7127860Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7128478Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7129110Z def resetperms(path): | |
2021-07-11T00:40:32.7129535Z try: | |
2021-07-11T00:40:32.7129952Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7130463Z except AttributeError: | |
2021-07-11T00:40:32.7130971Z pass | |
2021-07-11T00:40:32.7131396Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7131791Z | |
2021-07-11T00:40:32.7132099Z try: | |
2021-07-11T00:40:32.7132482Z if path != name: | |
2021-07-11T00:40:32.7133018Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7133588Z resetperms(path) | |
2021-07-11T00:40:32.7133959Z | |
2021-07-11T00:40:32.7134289Z try: | |
2021-07-11T00:40:32.7134674Z > _os.unlink(path) | |
2021-07-11T00:40:32.7135486Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7136117Z | |
2021-07-11T00:40:32.7136769Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7137332Z | |
2021-07-11T00:40:32.7137912Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7138410Z | |
2021-07-11T00:40:32.7138927Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7139838Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB51F0> | |
2021-07-11T00:40:32.7140447Z | |
2021-07-11T00:40:32.7140894Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7141340Z try: | |
2021-07-11T00:40:32.7141781Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7142337Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7142836Z except OSError: | |
2021-07-11T00:40:32.7143379Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7143882Z entries = [] | |
2021-07-11T00:40:32.7144312Z for entry in entries: | |
2021-07-11T00:40:32.7144847Z fullname = entry.path | |
2021-07-11T00:40:32.7145343Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7145753Z try: | |
2021-07-11T00:40:32.7146244Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7146895Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7147564Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7148186Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7148834Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7149416Z except OSError: | |
2021-07-11T00:40:32.7150016Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7150590Z continue | |
2021-07-11T00:40:32.7151137Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7151619Z else: | |
2021-07-11T00:40:32.7152012Z try: | |
2021-07-11T00:40:32.7152422Z os.unlink(fullname) | |
2021-07-11T00:40:32.7152903Z except OSError: | |
2021-07-11T00:40:32.7153466Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7153986Z try: | |
2021-07-11T00:40:32.7154381Z > os.rmdir(path) | |
2021-07-11T00:40:32.7155388Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7156217Z | |
2021-07-11T00:40:32.7156871Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7157476Z | |
2021-07-11T00:40:32.7158059Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7158538Z | |
2021-07-11T00:40:32.7158939Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7159634Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7160804Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB327C0>) | |
2021-07-11T00:40:32.7161699Z | |
2021-07-11T00:40:32.7162122Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7162743Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7163374Z def resetperms(path): | |
2021-07-11T00:40:32.7163784Z try: | |
2021-07-11T00:40:32.7164198Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7164704Z except AttributeError: | |
2021-07-11T00:40:32.7165172Z pass | |
2021-07-11T00:40:32.7165609Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7166005Z | |
2021-07-11T00:40:32.7166311Z try: | |
2021-07-11T00:40:32.7166692Z if path != name: | |
2021-07-11T00:40:32.7167238Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7167792Z resetperms(path) | |
2021-07-11T00:40:32.7168175Z | |
2021-07-11T00:40:32.7168487Z try: | |
2021-07-11T00:40:32.7168878Z > _os.unlink(path) | |
2021-07-11T00:40:32.7169677Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7170309Z | |
2021-07-11T00:40:32.7171014Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7171572Z | |
2021-07-11T00:40:32.7172171Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7172693Z | |
2021-07-11T00:40:32.7173207Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7174094Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5310> | |
2021-07-11T00:40:32.7174662Z | |
2021-07-11T00:40:32.7175075Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7175521Z try: | |
2021-07-11T00:40:32.7175964Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7176500Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7176954Z except OSError: | |
2021-07-11T00:40:32.7177610Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7178189Z entries = [] | |
2021-07-11T00:40:32.7178607Z for entry in entries: | |
2021-07-11T00:40:32.7179091Z fullname = entry.path | |
2021-07-11T00:40:32.7179566Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7179998Z try: | |
2021-07-11T00:40:32.7180446Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7181055Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7181711Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7182337Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7182982Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7183597Z except OSError: | |
2021-07-11T00:40:32.7184218Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7184786Z continue | |
2021-07-11T00:40:32.7185291Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7185752Z else: | |
2021-07-11T00:40:32.7186126Z try: | |
2021-07-11T00:40:32.7186560Z os.unlink(fullname) | |
2021-07-11T00:40:32.7187051Z except OSError: | |
2021-07-11T00:40:32.7187611Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7188109Z try: | |
2021-07-11T00:40:32.7188468Z > os.rmdir(path) | |
2021-07-11T00:40:32.7189525Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7190356Z | |
2021-07-11T00:40:32.7191024Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7191605Z | |
2021-07-11T00:40:32.7192209Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7192698Z | |
2021-07-11T00:40:32.7193093Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7193741Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7194972Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32BC0>) | |
2021-07-11T00:40:32.7195833Z | |
2021-07-11T00:40:32.7196258Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7196885Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7197485Z def resetperms(path): | |
2021-07-11T00:40:32.7197900Z try: | |
2021-07-11T00:40:32.7198317Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7198827Z except AttributeError: | |
2021-07-11T00:40:32.7199298Z pass | |
2021-07-11T00:40:32.7199718Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7200079Z | |
2021-07-11T00:40:32.7200400Z try: | |
2021-07-11T00:40:32.7200779Z if path != name: | |
2021-07-11T00:40:32.7201368Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7201973Z resetperms(path) | |
2021-07-11T00:40:32.7202358Z | |
2021-07-11T00:40:32.7202672Z try: | |
2021-07-11T00:40:32.7203065Z > _os.unlink(path) | |
2021-07-11T00:40:32.7203863Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7204498Z | |
2021-07-11T00:40:32.7205172Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7205743Z | |
2021-07-11T00:40:32.7206312Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7206802Z | |
2021-07-11T00:40:32.7207332Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7208290Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5430> | |
2021-07-11T00:40:32.7208923Z | |
2021-07-11T00:40:32.7209339Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7209826Z try: | |
2021-07-11T00:40:32.7210296Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7210822Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7211331Z except OSError: | |
2021-07-11T00:40:32.7211880Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7212431Z entries = [] | |
2021-07-11T00:40:32.7212865Z for entry in entries: | |
2021-07-11T00:40:32.7213352Z fullname = entry.path | |
2021-07-11T00:40:32.7213831Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7214248Z try: | |
2021-07-11T00:40:32.7214660Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7215231Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7215876Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7216515Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7217174Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7217754Z except OSError: | |
2021-07-11T00:40:32.7218405Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7218970Z continue | |
2021-07-11T00:40:32.7219471Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7219935Z else: | |
2021-07-11T00:40:32.7220287Z try: | |
2021-07-11T00:40:32.7220708Z os.unlink(fullname) | |
2021-07-11T00:40:32.7221204Z except OSError: | |
2021-07-11T00:40:32.7221778Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7222263Z try: | |
2021-07-11T00:40:32.7222636Z > os.rmdir(path) | |
2021-07-11T00:40:32.7223626Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7224477Z | |
2021-07-11T00:40:32.7225157Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7225702Z | |
2021-07-11T00:40:32.7226270Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7226757Z | |
2021-07-11T00:40:32.7227143Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7227799Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7229022Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB32780>) | |
2021-07-11T00:40:32.7229859Z | |
2021-07-11T00:40:32.7230278Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7231024Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7231653Z def resetperms(path): | |
2021-07-11T00:40:32.7232077Z try: | |
2021-07-11T00:40:32.7232481Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7233005Z except AttributeError: | |
2021-07-11T00:40:32.7233482Z pass | |
2021-07-11T00:40:32.7233916Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7234278Z | |
2021-07-11T00:40:32.7234600Z try: | |
2021-07-11T00:40:32.7234966Z if path != name: | |
2021-07-11T00:40:32.7235514Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7236066Z resetperms(path) | |
2021-07-11T00:40:32.7236447Z | |
2021-07-11T00:40:32.7236808Z try: | |
2021-07-11T00:40:32.7237208Z > _os.unlink(path) | |
2021-07-11T00:40:32.7238018Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7238636Z | |
2021-07-11T00:40:32.7239374Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7239997Z | |
2021-07-11T00:40:32.7240643Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7241170Z | |
2021-07-11T00:40:32.7241704Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7242585Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5550> | |
2021-07-11T00:40:32.7243155Z | |
2021-07-11T00:40:32.7243578Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7244004Z try: | |
2021-07-11T00:40:32.7244457Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7244982Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7245454Z except OSError: | |
2021-07-11T00:40:32.7245982Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7246497Z entries = [] | |
2021-07-11T00:40:32.7246915Z for entry in entries: | |
2021-07-11T00:40:32.7247407Z fullname = entry.path | |
2021-07-11T00:40:32.7247902Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7248305Z try: | |
2021-07-11T00:40:32.7248732Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7249291Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7249936Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7250545Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7251239Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7251804Z except OSError: | |
2021-07-11T00:40:32.7252412Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7252988Z continue | |
2021-07-11T00:40:32.7253477Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7253952Z else: | |
2021-07-11T00:40:32.7254293Z try: | |
2021-07-11T00:40:32.7254717Z os.unlink(fullname) | |
2021-07-11T00:40:32.7255179Z except OSError: | |
2021-07-11T00:40:32.7255750Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7256234Z try: | |
2021-07-11T00:40:32.7256603Z > os.rmdir(path) | |
2021-07-11T00:40:32.7257616Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7258485Z | |
2021-07-11T00:40:32.7259132Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7259680Z | |
2021-07-11T00:40:32.7260244Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7260727Z | |
2021-07-11T00:40:32.7261202Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7261853Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7263054Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCCDD100>) | |
2021-07-11T00:40:32.7263913Z | |
2021-07-11T00:40:32.7264325Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7264977Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7265580Z def resetperms(path): | |
2021-07-11T00:40:32.7266000Z try: | |
2021-07-11T00:40:32.7266401Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7266923Z except AttributeError: | |
2021-07-11T00:40:32.7267380Z pass | |
2021-07-11T00:40:32.7267790Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7268168Z | |
2021-07-11T00:40:32.7268526Z try: | |
2021-07-11T00:40:32.7268905Z if path != name: | |
2021-07-11T00:40:32.7269435Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7269999Z resetperms(path) | |
2021-07-11T00:40:32.7270501Z | |
2021-07-11T00:40:32.7270944Z try: | |
2021-07-11T00:40:32.7271340Z > _os.unlink(path) | |
2021-07-11T00:40:32.7272165Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7272799Z | |
2021-07-11T00:40:32.7273453Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7274074Z | |
2021-07-11T00:40:32.7274652Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7275127Z | |
2021-07-11T00:40:32.7275681Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7276616Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5670> | |
2021-07-11T00:40:32.7277190Z | |
2021-07-11T00:40:32.7277613Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7278043Z try: | |
2021-07-11T00:40:32.7278501Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7279030Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7279504Z except OSError: | |
2021-07-11T00:40:32.7280041Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7280558Z entries = [] | |
2021-07-11T00:40:32.7281063Z for entry in entries: | |
2021-07-11T00:40:32.7281540Z fullname = entry.path | |
2021-07-11T00:40:32.7282033Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7282434Z try: | |
2021-07-11T00:40:32.7282859Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7283418Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7284120Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7284748Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7285392Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7285972Z except OSError: | |
2021-07-11T00:40:32.7286580Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7287157Z continue | |
2021-07-11T00:40:32.7287647Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7288123Z else: | |
2021-07-11T00:40:32.7288469Z try: | |
2021-07-11T00:40:32.7288895Z os.unlink(fullname) | |
2021-07-11T00:40:32.7289359Z except OSError: | |
2021-07-11T00:40:32.7289981Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7290475Z try: | |
2021-07-11T00:40:32.7290839Z > os.rmdir(path) | |
2021-07-11T00:40:32.7291880Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7292767Z | |
2021-07-11T00:40:32.7293406Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7293957Z | |
2021-07-11T00:40:32.7294522Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7295024Z | |
2021-07-11T00:40:32.7295464Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7296100Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7297297Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCCDDC40>) | |
2021-07-11T00:40:32.7298210Z | |
2021-07-11T00:40:32.7298617Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7299236Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7299835Z def resetperms(path): | |
2021-07-11T00:40:32.7300294Z try: | |
2021-07-11T00:40:32.7300710Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7301255Z except AttributeError: | |
2021-07-11T00:40:32.7301802Z pass | |
2021-07-11T00:40:32.7302283Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7302701Z | |
2021-07-11T00:40:32.7303047Z try: | |
2021-07-11T00:40:32.7303427Z if path != name: | |
2021-07-11T00:40:32.7303966Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7304531Z resetperms(path) | |
2021-07-11T00:40:32.7304906Z | |
2021-07-11T00:40:32.7305231Z try: | |
2021-07-11T00:40:32.7305629Z > _os.unlink(path) | |
2021-07-11T00:40:32.7306480Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7307108Z | |
2021-07-11T00:40:32.7307758Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7308348Z | |
2021-07-11T00:40:32.7308965Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7309453Z | |
2021-07-11T00:40:32.7309973Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7310927Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5790> | |
2021-07-11T00:40:32.7311536Z | |
2021-07-11T00:40:32.7311947Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7312388Z try: | |
2021-07-11T00:40:32.7312830Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7313386Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7313883Z except OSError: | |
2021-07-11T00:40:32.7314426Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7314925Z entries = [] | |
2021-07-11T00:40:32.7315357Z for entry in entries: | |
2021-07-11T00:40:32.7315884Z fullname = entry.path | |
2021-07-11T00:40:32.7316376Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7316772Z try: | |
2021-07-11T00:40:32.7317198Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7317772Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7318444Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7319084Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7319724Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7320304Z except OSError: | |
2021-07-11T00:40:32.7320958Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7321574Z continue | |
2021-07-11T00:40:32.7322062Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7322537Z else: | |
2021-07-11T00:40:32.7322896Z try: | |
2021-07-11T00:40:32.7323304Z os.unlink(fullname) | |
2021-07-11T00:40:32.7323833Z except OSError: | |
2021-07-11T00:40:32.7324392Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7324898Z try: | |
2021-07-11T00:40:32.7325266Z > os.rmdir(path) | |
2021-07-11T00:40:32.7326271Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7327157Z | |
2021-07-11T00:40:32.7327789Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7328337Z | |
2021-07-11T00:40:32.7328935Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7329443Z | |
2021-07-11T00:40:32.7329844Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7330488Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7331804Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFA40540>) | |
2021-07-11T00:40:32.7333258Z | |
2021-07-11T00:40:32.7334009Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7334723Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7335327Z def resetperms(path): | |
2021-07-11T00:40:32.7335745Z try: | |
2021-07-11T00:40:32.7336164Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7336674Z except AttributeError: | |
2021-07-11T00:40:32.7337146Z pass | |
2021-07-11T00:40:32.7337549Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7337923Z | |
2021-07-11T00:40:32.7338232Z try: | |
2021-07-11T00:40:32.7338616Z if path != name: | |
2021-07-11T00:40:32.7339153Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7339730Z resetperms(path) | |
2021-07-11T00:40:32.7340118Z | |
2021-07-11T00:40:32.7340432Z try: | |
2021-07-11T00:40:32.7340822Z > _os.unlink(path) | |
2021-07-11T00:40:32.7341709Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7342356Z | |
2021-07-11T00:40:32.7343027Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7343587Z | |
2021-07-11T00:40:32.7344169Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7344658Z | |
2021-07-11T00:40:32.7345178Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7346080Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB58B0> | |
2021-07-11T00:40:32.7346656Z | |
2021-07-11T00:40:32.7347069Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7347548Z try: | |
2021-07-11T00:40:32.7347989Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7348528Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7348989Z except OSError: | |
2021-07-11T00:40:32.7349537Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7350057Z entries = [] | |
2021-07-11T00:40:32.7350475Z for entry in entries: | |
2021-07-11T00:40:32.7350996Z fullname = entry.path | |
2021-07-11T00:40:32.7351484Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7351900Z try: | |
2021-07-11T00:40:32.7352315Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7352885Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7353514Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7354145Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7354790Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7355370Z except OSError: | |
2021-07-11T00:40:32.7356029Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7356593Z continue | |
2021-07-11T00:40:32.7357103Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7357573Z else: | |
2021-07-11T00:40:32.7357932Z try: | |
2021-07-11T00:40:32.7358341Z os.unlink(fullname) | |
2021-07-11T00:40:32.7358818Z except OSError: | |
2021-07-11T00:40:32.7359380Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7359877Z try: | |
2021-07-11T00:40:32.7360235Z > os.rmdir(path) | |
2021-07-11T00:40:32.7361278Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7362120Z | |
2021-07-11T00:40:32.7362798Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7363369Z | |
2021-07-11T00:40:32.7363950Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7364442Z | |
2021-07-11T00:40:32.7364921Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7365670Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7366865Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFA408C0>) | |
2021-07-11T00:40:32.7367726Z | |
2021-07-11T00:40:32.7368171Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7368799Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7369418Z def resetperms(path): | |
2021-07-11T00:40:32.7369829Z try: | |
2021-07-11T00:40:32.7370243Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7370750Z except AttributeError: | |
2021-07-11T00:40:32.7371267Z pass | |
2021-07-11T00:40:32.7371700Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7372062Z | |
2021-07-11T00:40:32.7372400Z try: | |
2021-07-11T00:40:32.7372775Z if path != name: | |
2021-07-11T00:40:32.7373327Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7373882Z resetperms(path) | |
2021-07-11T00:40:32.7374268Z | |
2021-07-11T00:40:32.7374579Z try: | |
2021-07-11T00:40:32.7374972Z > _os.unlink(path) | |
2021-07-11T00:40:32.7375774Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7376414Z | |
2021-07-11T00:40:32.7377086Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7377655Z | |
2021-07-11T00:40:32.7378222Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7378709Z | |
2021-07-11T00:40:32.7379244Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7380127Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB59D0> | |
2021-07-11T00:40:32.7380701Z | |
2021-07-11T00:40:32.7381148Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7381601Z try: | |
2021-07-11T00:40:32.7382057Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7382586Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7383061Z except OSError: | |
2021-07-11T00:40:32.7383591Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7384105Z entries = [] | |
2021-07-11T00:40:32.7384527Z for entry in entries: | |
2021-07-11T00:40:32.7385017Z fullname = entry.path | |
2021-07-11T00:40:32.7385496Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7385911Z try: | |
2021-07-11T00:40:32.7386322Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7386898Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7387549Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7388168Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7388829Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7389394Z except OSError: | |
2021-07-11T00:40:32.7390008Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7390579Z continue | |
2021-07-11T00:40:32.7391356Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7391909Z else: | |
2021-07-11T00:40:32.7392307Z try: | |
2021-07-11T00:40:32.7392758Z os.unlink(fullname) | |
2021-07-11T00:40:32.7393243Z except OSError: | |
2021-07-11T00:40:32.7393818Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7394308Z try: | |
2021-07-11T00:40:32.7394684Z > os.rmdir(path) | |
2021-07-11T00:40:32.7396507Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7397439Z | |
2021-07-11T00:40:32.7398100Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7398636Z | |
2021-07-11T00:40:32.7399243Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7399751Z | |
2021-07-11T00:40:32.7400143Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7400793Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7402070Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF55A700>) | |
2021-07-11T00:40:32.7402914Z | |
2021-07-11T00:40:32.7403336Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7403946Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7404595Z def resetperms(path): | |
2021-07-11T00:40:32.7405027Z try: | |
2021-07-11T00:40:32.7405437Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7405967Z except AttributeError: | |
2021-07-11T00:40:32.7406426Z pass | |
2021-07-11T00:40:32.7406856Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7407260Z | |
2021-07-11T00:40:32.7407587Z try: | |
2021-07-11T00:40:32.7407951Z if path != name: | |
2021-07-11T00:40:32.7408499Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7409076Z resetperms(path) | |
2021-07-11T00:40:32.7409462Z | |
2021-07-11T00:40:32.7409779Z try: | |
2021-07-11T00:40:32.7410170Z > _os.unlink(path) | |
2021-07-11T00:40:32.7411018Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7411638Z | |
2021-07-11T00:40:32.7412315Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7412938Z | |
2021-07-11T00:40:32.7413510Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7413996Z | |
2021-07-11T00:40:32.7414529Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7415455Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5AF0> | |
2021-07-11T00:40:32.7416048Z | |
2021-07-11T00:40:32.7416479Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7416910Z try: | |
2021-07-11T00:40:32.7417367Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7417901Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7418376Z except OSError: | |
2021-07-11T00:40:32.7418904Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7419420Z entries = [] | |
2021-07-11T00:40:32.7419840Z for entry in entries: | |
2021-07-11T00:40:32.7420329Z fullname = entry.path | |
2021-07-11T00:40:32.7420829Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7421272Z try: | |
2021-07-11T00:40:32.7421696Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7422255Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7422900Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7423530Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7424186Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7424752Z except OSError: | |
2021-07-11T00:40:32.7425367Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7425945Z continue | |
2021-07-11T00:40:32.7426437Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7426915Z else: | |
2021-07-11T00:40:32.7427261Z try: | |
2021-07-11T00:40:32.7427689Z os.unlink(fullname) | |
2021-07-11T00:40:32.7428299Z except OSError: | |
2021-07-11T00:40:32.7428915Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7429403Z try: | |
2021-07-11T00:40:32.7429776Z > os.rmdir(path) | |
2021-07-11T00:40:32.7430771Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7431692Z | |
2021-07-11T00:40:32.7432343Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7432893Z | |
2021-07-11T00:40:32.7433460Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7433948Z | |
2021-07-11T00:40:32.7434363Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7435049Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7436249Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FD119E00>) | |
2021-07-11T00:40:32.7437109Z | |
2021-07-11T00:40:32.7437516Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7438185Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7438774Z def resetperms(path): | |
2021-07-11T00:40:32.7439200Z try: | |
2021-07-11T00:40:32.7439607Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7440131Z except AttributeError: | |
2021-07-11T00:40:32.7440603Z pass | |
2021-07-11T00:40:32.7441097Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7441469Z | |
2021-07-11T00:40:32.7441792Z try: | |
2021-07-11T00:40:32.7442192Z if path != name: | |
2021-07-11T00:40:32.7442731Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7443301Z resetperms(path) | |
2021-07-11T00:40:32.7443678Z | |
2021-07-11T00:40:32.7444016Z try: | |
2021-07-11T00:40:32.7444398Z > _os.unlink(path) | |
2021-07-11T00:40:32.7445261Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7445896Z | |
2021-07-11T00:40:32.7446554Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7447121Z | |
2021-07-11T00:40:32.7447753Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7448227Z | |
2021-07-11T00:40:32.7448757Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7449641Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5C10> | |
2021-07-11T00:40:32.7450238Z | |
2021-07-11T00:40:32.7450665Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7451133Z try: | |
2021-07-11T00:40:32.7451611Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7452146Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7452630Z except OSError: | |
2021-07-11T00:40:32.7453233Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7453735Z entries = [] | |
2021-07-11T00:40:32.7454162Z for entry in entries: | |
2021-07-11T00:40:32.7454632Z fullname = entry.path | |
2021-07-11T00:40:32.7455122Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7455524Z try: | |
2021-07-11T00:40:32.7455952Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7456557Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7457227Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7457841Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7458495Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7459073Z except OSError: | |
2021-07-11T00:40:32.7459816Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7460404Z continue | |
2021-07-11T00:40:32.7460937Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7461429Z else: | |
2021-07-11T00:40:32.7461774Z try: | |
2021-07-11T00:40:32.7462234Z os.unlink(fullname) | |
2021-07-11T00:40:32.7462696Z except OSError: | |
2021-07-11T00:40:32.7463265Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7463781Z try: | |
2021-07-11T00:40:32.7464177Z > os.rmdir(path) | |
2021-07-11T00:40:32.7465181Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7466024Z | |
2021-07-11T00:40:32.7466666Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7467233Z | |
2021-07-11T00:40:32.7467812Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7468303Z | |
2021-07-11T00:40:32.7468710Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7469353Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7470549Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FD119A00>) | |
2021-07-11T00:40:32.7471456Z | |
2021-07-11T00:40:32.7471914Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7472548Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7473129Z def resetperms(path): | |
2021-07-11T00:40:32.7473550Z try: | |
2021-07-11T00:40:32.7473967Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7474480Z except AttributeError: | |
2021-07-11T00:40:32.7474953Z pass | |
2021-07-11T00:40:32.7475370Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7475751Z | |
2021-07-11T00:40:32.7476064Z try: | |
2021-07-11T00:40:32.7476447Z if path != name: | |
2021-07-11T00:40:32.7476980Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7477547Z resetperms(path) | |
2021-07-11T00:40:32.7477931Z | |
2021-07-11T00:40:32.7478259Z try: | |
2021-07-11T00:40:32.7478640Z > _os.unlink(path) | |
2021-07-11T00:40:32.7479449Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7480083Z | |
2021-07-11T00:40:32.7480739Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7481341Z | |
2021-07-11T00:40:32.7481924Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7482414Z | |
2021-07-11T00:40:32.7482932Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7483839Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5D30> | |
2021-07-11T00:40:32.7484415Z | |
2021-07-11T00:40:32.7484822Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7485267Z try: | |
2021-07-11T00:40:32.7485706Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7486243Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7486724Z except OSError: | |
2021-07-11T00:40:32.7487308Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7487815Z entries = [] | |
2021-07-11T00:40:32.7488252Z for entry in entries: | |
2021-07-11T00:40:32.7488732Z fullname = entry.path | |
2021-07-11T00:40:32.7489225Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7489623Z try: | |
2021-07-11T00:40:32.7490046Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7490719Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7491490Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7492123Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7492770Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7493370Z except OSError: | |
2021-07-11T00:40:32.7494012Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7494593Z continue | |
2021-07-11T00:40:32.7495083Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7495555Z else: | |
2021-07-11T00:40:32.7495905Z try: | |
2021-07-11T00:40:32.7496320Z os.unlink(fullname) | |
2021-07-11T00:40:32.7496797Z except OSError: | |
2021-07-11T00:40:32.7497360Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7497862Z try: | |
2021-07-11T00:40:32.7498228Z > os.rmdir(path) | |
2021-07-11T00:40:32.7499249Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7500085Z | |
2021-07-11T00:40:32.7500720Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7501301Z | |
2021-07-11T00:40:32.7501883Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7502356Z | |
2021-07-11T00:40:32.7502779Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7503460Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7504639Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FD119140>) | |
2021-07-11T00:40:32.7505538Z | |
2021-07-11T00:40:32.7505959Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7506576Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7507172Z def resetperms(path): | |
2021-07-11T00:40:32.7507592Z try: | |
2021-07-11T00:40:32.7508010Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7508518Z except AttributeError: | |
2021-07-11T00:40:32.7508984Z pass | |
2021-07-11T00:40:32.7509386Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7509764Z | |
2021-07-11T00:40:32.7510072Z try: | |
2021-07-11T00:40:32.7510457Z if path != name: | |
2021-07-11T00:40:32.7511027Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7511602Z resetperms(path) | |
2021-07-11T00:40:32.7511990Z | |
2021-07-11T00:40:32.7512304Z try: | |
2021-07-11T00:40:32.7512703Z > _os.unlink(path) | |
2021-07-11T00:40:32.7513506Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7514144Z | |
2021-07-11T00:40:32.7514804Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7515413Z | |
2021-07-11T00:40:32.7515997Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7516483Z | |
2021-07-11T00:40:32.7517018Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7517914Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5E50> | |
2021-07-11T00:40:32.7518486Z | |
2021-07-11T00:40:32.7518900Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7519343Z try: | |
2021-07-11T00:40:32.7519795Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7520339Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7520801Z except OSError: | |
2021-07-11T00:40:32.7521403Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7522004Z entries = [] | |
2021-07-11T00:40:32.7522504Z for entry in entries: | |
2021-07-11T00:40:32.7522992Z fullname = entry.path | |
2021-07-11T00:40:32.7523475Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7523929Z try: | |
2021-07-11T00:40:32.7524339Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7524916Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7525550Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7526179Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7526852Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7527433Z except OSError: | |
2021-07-11T00:40:32.7528049Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7528616Z continue | |
2021-07-11T00:40:32.7529144Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7529669Z else: | |
2021-07-11T00:40:32.7530027Z try: | |
2021-07-11T00:40:32.7530445Z os.unlink(fullname) | |
2021-07-11T00:40:32.7530966Z except OSError: | |
2021-07-11T00:40:32.7531531Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7532034Z try: | |
2021-07-11T00:40:32.7532393Z > os.rmdir(path) | |
2021-07-11T00:40:32.7533396Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7534228Z | |
2021-07-11T00:40:32.7534859Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7535413Z | |
2021-07-11T00:40:32.7535991Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7536512Z | |
2021-07-11T00:40:32.7536919Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7537567Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7538744Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCA341C0>) | |
2021-07-11T00:40:32.7539614Z | |
2021-07-11T00:40:32.7540072Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7540680Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7541312Z def resetperms(path): | |
2021-07-11T00:40:32.7541721Z try: | |
2021-07-11T00:40:32.7542136Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7542678Z except AttributeError: | |
2021-07-11T00:40:32.7543165Z pass | |
2021-07-11T00:40:32.7543577Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7543942Z | |
2021-07-11T00:40:32.7544264Z try: | |
2021-07-11T00:40:32.7544631Z if path != name: | |
2021-07-11T00:40:32.7545182Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7545763Z resetperms(path) | |
2021-07-11T00:40:32.7546183Z | |
2021-07-11T00:40:32.7546494Z try: | |
2021-07-11T00:40:32.7546886Z > _os.unlink(path) | |
2021-07-11T00:40:32.7547685Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7548366Z | |
2021-07-11T00:40:32.7549035Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7549608Z | |
2021-07-11T00:40:32.7550176Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7550662Z | |
2021-07-11T00:40:32.7551214Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7552117Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDB5F70> | |
2021-07-11T00:40:32.7552692Z | |
2021-07-11T00:40:32.7553184Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7553696Z try: | |
2021-07-11T00:40:32.7554148Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7554675Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7555152Z except OSError: | |
2021-07-11T00:40:32.7555679Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7556193Z entries = [] | |
2021-07-11T00:40:32.7556613Z for entry in entries: | |
2021-07-11T00:40:32.7557098Z fullname = entry.path | |
2021-07-11T00:40:32.7557575Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7557982Z try: | |
2021-07-11T00:40:32.7558394Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7558961Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7559602Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7560215Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7560910Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7561475Z except OSError: | |
2021-07-11T00:40:32.7562093Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7562663Z continue | |
2021-07-11T00:40:32.7563174Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7563636Z else: | |
2021-07-11T00:40:32.7563992Z try: | |
2021-07-11T00:40:32.7564403Z os.unlink(fullname) | |
2021-07-11T00:40:32.7564882Z except OSError: | |
2021-07-11T00:40:32.7565462Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7565944Z try: | |
2021-07-11T00:40:32.7566319Z > os.rmdir(path) | |
2021-07-11T00:40:32.7567327Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7568169Z | |
2021-07-11T00:40:32.7568812Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7569346Z | |
2021-07-11T00:40:32.7569933Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7570421Z | |
2021-07-11T00:40:32.7570811Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7571494Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7572689Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FCA34680>) | |
2021-07-11T00:40:32.7573533Z | |
2021-07-11T00:40:32.7573953Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7574556Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7575175Z def resetperms(path): | |
2021-07-11T00:40:32.7575601Z try: | |
2021-07-11T00:40:32.7576008Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7576537Z except AttributeError: | |
2021-07-11T00:40:32.7576991Z pass | |
2021-07-11T00:40:32.7577408Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7577811Z | |
2021-07-11T00:40:32.7578152Z try: | |
2021-07-11T00:40:32.7578518Z if path != name: | |
2021-07-11T00:40:32.7579069Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7579625Z resetperms(path) | |
2021-07-11T00:40:32.7580051Z | |
2021-07-11T00:40:32.7580385Z try: | |
2021-07-11T00:40:32.7580778Z > _os.unlink(path) | |
2021-07-11T00:40:32.7581627Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7582286Z | |
2021-07-11T00:40:32.7582976Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7583545Z | |
2021-07-11T00:40:32.7584969Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7585464Z | |
2021-07-11T00:40:32.7585998Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7586925Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA40D0> | |
2021-07-11T00:40:32.7587520Z | |
2021-07-11T00:40:32.7587947Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7588376Z try: | |
2021-07-11T00:40:32.7588829Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7589408Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7589883Z except OSError: | |
2021-07-11T00:40:32.7590411Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7590970Z entries = [] | |
2021-07-11T00:40:32.7591428Z for entry in entries: | |
2021-07-11T00:40:32.7591934Z fullname = entry.path | |
2021-07-11T00:40:32.7592429Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7592843Z try: | |
2021-07-11T00:40:32.7593267Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7593825Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7594490Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7595097Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7595760Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7596324Z except OSError: | |
2021-07-11T00:40:32.7596941Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7597524Z continue | |
2021-07-11T00:40:32.7598017Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7598501Z else: | |
2021-07-11T00:40:32.7598845Z try: | |
2021-07-11T00:40:32.7599269Z os.unlink(fullname) | |
2021-07-11T00:40:32.7599736Z except OSError: | |
2021-07-11T00:40:32.7600313Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7600802Z try: | |
2021-07-11T00:40:32.7601216Z > os.rmdir(path) | |
2021-07-11T00:40:32.7602266Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7603100Z | |
2021-07-11T00:40:32.7603744Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7604313Z | |
2021-07-11T00:40:32.7604881Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7605369Z | |
2021-07-11T00:40:32.7605770Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7606399Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7607654Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF5F1BC0>) | |
2021-07-11T00:40:32.7608520Z | |
2021-07-11T00:40:32.7608933Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7609562Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7610140Z def resetperms(path): | |
2021-07-11T00:40:32.7610561Z try: | |
2021-07-11T00:40:32.7611001Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7611527Z except AttributeError: | |
2021-07-11T00:40:32.7611984Z pass | |
2021-07-11T00:40:32.7612398Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7612762Z | |
2021-07-11T00:40:32.7613081Z try: | |
2021-07-11T00:40:32.7613464Z if path != name: | |
2021-07-11T00:40:32.7613996Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7614561Z resetperms(path) | |
2021-07-11T00:40:32.7614933Z | |
2021-07-11T00:40:32.7615256Z try: | |
2021-07-11T00:40:32.7615808Z > _os.unlink(path) | |
2021-07-11T00:40:32.7616641Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7617271Z | |
2021-07-11T00:40:32.7617919Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7618489Z | |
2021-07-11T00:40:32.7619069Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7619542Z | |
2021-07-11T00:40:32.7620074Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7621000Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA41F0> | |
2021-07-11T00:40:32.7621578Z | |
2021-07-11T00:40:32.7622004Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7622429Z try: | |
2021-07-11T00:40:32.7622882Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7623414Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7623890Z except OSError: | |
2021-07-11T00:40:32.7624434Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7624936Z entries = [] | |
2021-07-11T00:40:32.7625365Z for entry in entries: | |
2021-07-11T00:40:32.7625835Z fullname = entry.path | |
2021-07-11T00:40:32.7626323Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7626721Z try: | |
2021-07-11T00:40:32.7627146Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7627707Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7628350Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7628957Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7629615Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7630187Z except OSError: | |
2021-07-11T00:40:32.7630796Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7631418Z continue | |
2021-07-11T00:40:32.7631909Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7632404Z else: | |
2021-07-11T00:40:32.7632764Z try: | |
2021-07-11T00:40:32.7633204Z os.unlink(fullname) | |
2021-07-11T00:40:32.7633668Z except OSError: | |
2021-07-11T00:40:32.7634241Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7634736Z try: | |
2021-07-11T00:40:32.7635093Z > os.rmdir(path) | |
2021-07-11T00:40:32.7636099Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7636928Z | |
2021-07-11T00:40:32.7637567Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7638117Z | |
2021-07-11T00:40:32.7638685Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7639173Z | |
2021-07-11T00:40:32.7639576Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7640220Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7641542Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF539580>) | |
2021-07-11T00:40:32.7642395Z | |
2021-07-11T00:40:32.7642891Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7643509Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7644092Z def resetperms(path): | |
2021-07-11T00:40:32.7644512Z try: | |
2021-07-11T00:40:32.7644923Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7645444Z except AttributeError: | |
2021-07-11T00:40:32.7645913Z pass | |
2021-07-11T00:40:32.7646400Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7646837Z | |
2021-07-11T00:40:32.7647146Z try: | |
2021-07-11T00:40:32.7647531Z if path != name: | |
2021-07-11T00:40:32.7648066Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7648636Z resetperms(path) | |
2021-07-11T00:40:32.7649007Z | |
2021-07-11T00:40:32.7649334Z try: | |
2021-07-11T00:40:32.7649713Z > _os.unlink(path) | |
2021-07-11T00:40:32.7650519Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7651193Z | |
2021-07-11T00:40:32.7651843Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7652409Z | |
2021-07-11T00:40:32.7652987Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7653476Z | |
2021-07-11T00:40:32.7653990Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7654890Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4310> | |
2021-07-11T00:40:32.7655450Z | |
2021-07-11T00:40:32.7655894Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7656335Z try: | |
2021-07-11T00:40:32.7656780Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7657323Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7657781Z except OSError: | |
2021-07-11T00:40:32.7658325Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7658825Z entries = [] | |
2021-07-11T00:40:32.7659257Z for entry in entries: | |
2021-07-11T00:40:32.7659732Z fullname = entry.path | |
2021-07-11T00:40:32.7660227Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7660624Z try: | |
2021-07-11T00:40:32.7661085Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7661663Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7662304Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7662928Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7663573Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7664167Z except OSError: | |
2021-07-11T00:40:32.7664786Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7665363Z continue | |
2021-07-11T00:40:32.7665852Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7666324Z else: | |
2021-07-11T00:40:32.7666678Z try: | |
2021-07-11T00:40:32.7667087Z os.unlink(fullname) | |
2021-07-11T00:40:32.7667615Z except OSError: | |
2021-07-11T00:40:32.7668173Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7668667Z try: | |
2021-07-11T00:40:32.7669026Z > os.rmdir(path) | |
2021-07-11T00:40:32.7670051Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7670951Z | |
2021-07-11T00:40:32.7671579Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7672128Z | |
2021-07-11T00:40:32.7672707Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7673201Z | |
2021-07-11T00:40:32.7673620Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7674252Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7675438Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF5392C0>) | |
2021-07-11T00:40:32.7676287Z | |
2021-07-11T00:40:32.7676707Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7677401Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7678085Z def resetperms(path): | |
2021-07-11T00:40:32.7678496Z try: | |
2021-07-11T00:40:32.7678915Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7679428Z except AttributeError: | |
2021-07-11T00:40:32.7679899Z pass | |
2021-07-11T00:40:32.7680306Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7680686Z | |
2021-07-11T00:40:32.7681040Z try: | |
2021-07-11T00:40:32.7681423Z if path != name: | |
2021-07-11T00:40:32.7681958Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7682529Z resetperms(path) | |
2021-07-11T00:40:32.7682918Z | |
2021-07-11T00:40:32.7683236Z try: | |
2021-07-11T00:40:32.7683626Z > _os.unlink(path) | |
2021-07-11T00:40:32.7684428Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7685065Z | |
2021-07-11T00:40:32.7685770Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7686344Z | |
2021-07-11T00:40:32.7686928Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7687414Z | |
2021-07-11T00:40:32.7687926Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7688837Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4430> | |
2021-07-11T00:40:32.7689447Z | |
2021-07-11T00:40:32.7689861Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7690300Z try: | |
2021-07-11T00:40:32.7690738Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7691318Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7691779Z except OSError: | |
2021-07-11T00:40:32.7692323Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7692821Z entries = [] | |
2021-07-11T00:40:32.7693257Z for entry in entries: | |
2021-07-11T00:40:32.7693746Z fullname = entry.path | |
2021-07-11T00:40:32.7694244Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7694658Z try: | |
2021-07-11T00:40:32.7695068Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7695639Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7696268Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7696894Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7697555Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7698136Z except OSError: | |
2021-07-11T00:40:32.7698746Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7699312Z continue | |
2021-07-11T00:40:32.7699818Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7700287Z else: | |
2021-07-11T00:40:32.7700645Z try: | |
2021-07-11T00:40:32.7701088Z os.unlink(fullname) | |
2021-07-11T00:40:32.7701564Z except OSError: | |
2021-07-11T00:40:32.7702124Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7702619Z try: | |
2021-07-11T00:40:32.7702981Z > os.rmdir(path) | |
2021-07-11T00:40:32.7703986Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7704815Z | |
2021-07-11T00:40:32.7705445Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7705993Z | |
2021-07-11T00:40:32.7706574Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7707062Z | |
2021-07-11T00:40:32.7707449Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7708158Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7709388Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF539D80>) | |
2021-07-11T00:40:32.7710293Z | |
2021-07-11T00:40:32.7710712Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7711418Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7712013Z def resetperms(path): | |
2021-07-11T00:40:32.7712427Z try: | |
2021-07-11T00:40:32.7712839Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7713348Z except AttributeError: | |
2021-07-11T00:40:32.7713818Z pass | |
2021-07-11T00:40:32.7714229Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7714594Z | |
2021-07-11T00:40:32.7714913Z try: | |
2021-07-11T00:40:32.7715280Z if path != name: | |
2021-07-11T00:40:32.7715831Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7716393Z resetperms(path) | |
2021-07-11T00:40:32.7716778Z | |
2021-07-11T00:40:32.7717090Z try: | |
2021-07-11T00:40:32.7744076Z > _os.unlink(path) | |
2021-07-11T00:40:32.7744927Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7745601Z | |
2021-07-11T00:40:32.7746254Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7746814Z | |
2021-07-11T00:40:32.7747381Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7747860Z | |
2021-07-11T00:40:32.7748393Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7749270Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4550> | |
2021-07-11T00:40:32.7749828Z | |
2021-07-11T00:40:32.7750236Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7750680Z try: | |
2021-07-11T00:40:32.7751176Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7751713Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7752171Z except OSError: | |
2021-07-11T00:40:32.7752713Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7753256Z entries = [] | |
2021-07-11T00:40:32.7753689Z for entry in entries: | |
2021-07-11T00:40:32.7754162Z fullname = entry.path | |
2021-07-11T00:40:32.7754654Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7755052Z try: | |
2021-07-11T00:40:32.7755513Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7756072Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7756720Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7757341Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7758024Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7758624Z except OSError: | |
2021-07-11T00:40:32.7759225Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7759805Z continue | |
2021-07-11T00:40:32.7760295Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7760774Z else: | |
2021-07-11T00:40:32.7761188Z try: | |
2021-07-11T00:40:32.7761628Z os.unlink(fullname) | |
2021-07-11T00:40:32.7762103Z except OSError: | |
2021-07-11T00:40:32.7762662Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7763157Z try: | |
2021-07-11T00:40:32.7763515Z > os.rmdir(path) | |
2021-07-11T00:40:32.7764572Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7765647Z | |
2021-07-11T00:40:32.7766285Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7766889Z | |
2021-07-11T00:40:32.7767462Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7767955Z | |
2021-07-11T00:40:32.7768358Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7769028Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7770240Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF539E00>) | |
2021-07-11T00:40:32.7771137Z | |
2021-07-11T00:40:32.7771547Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7772218Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7772811Z def resetperms(path): | |
2021-07-11T00:40:32.7773222Z try: | |
2021-07-11T00:40:32.7773640Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7774187Z except AttributeError: | |
2021-07-11T00:40:32.7774676Z pass | |
2021-07-11T00:40:32.7775075Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7775452Z | |
2021-07-11T00:40:32.7775760Z try: | |
2021-07-11T00:40:32.7776138Z if path != name: | |
2021-07-11T00:40:32.7776735Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7777321Z resetperms(path) | |
2021-07-11T00:40:32.7777694Z | |
2021-07-11T00:40:32.7778017Z try: | |
2021-07-11T00:40:32.7778394Z > _os.unlink(path) | |
2021-07-11T00:40:32.7779202Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7779886Z | |
2021-07-11T00:40:32.7780537Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7781147Z | |
2021-07-11T00:40:32.7781754Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7782244Z | |
2021-07-11T00:40:32.7782774Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7783667Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4670> | |
2021-07-11T00:40:32.7784235Z | |
2021-07-11T00:40:32.7784643Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7785086Z try: | |
2021-07-11T00:40:32.7785527Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7786067Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7786529Z except OSError: | |
2021-07-11T00:40:32.7787070Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7787574Z entries = [] | |
2021-07-11T00:40:32.7788003Z for entry in entries: | |
2021-07-11T00:40:32.7788493Z fullname = entry.path | |
2021-07-11T00:40:32.7789017Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7789433Z try: | |
2021-07-11T00:40:32.7789850Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7790423Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7791108Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7791770Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7792415Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7793004Z except OSError: | |
2021-07-11T00:40:32.7793607Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7794183Z continue | |
2021-07-11T00:40:32.7794739Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7795201Z else: | |
2021-07-11T00:40:32.7795557Z try: | |
2021-07-11T00:40:32.7795966Z os.unlink(fullname) | |
2021-07-11T00:40:32.7796441Z except OSError: | |
2021-07-11T00:40:32.7797133Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7797693Z try: | |
2021-07-11T00:40:32.7798056Z > os.rmdir(path) | |
2021-07-11T00:40:32.7799068Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7799899Z | |
2021-07-11T00:40:32.7800534Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7801120Z | |
2021-07-11T00:40:32.7801699Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7802187Z | |
2021-07-11T00:40:32.7802600Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7803258Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7804495Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FF539740>) | |
2021-07-11T00:40:32.7805379Z | |
2021-07-11T00:40:32.7805817Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7806425Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7807023Z def resetperms(path): | |
2021-07-11T00:40:32.7807433Z try: | |
2021-07-11T00:40:32.7807850Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7808396Z except AttributeError: | |
2021-07-11T00:40:32.7808885Z pass | |
2021-07-11T00:40:32.7809288Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7809669Z | |
2021-07-11T00:40:32.7809980Z try: | |
2021-07-11T00:40:32.7810365Z if path != name: | |
2021-07-11T00:40:32.7810959Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7811536Z resetperms(path) | |
2021-07-11T00:40:32.7811939Z | |
2021-07-11T00:40:32.7812254Z try: | |
2021-07-11T00:40:32.7812649Z > _os.unlink(path) | |
2021-07-11T00:40:32.7813447Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7814097Z | |
2021-07-11T00:40:32.7814774Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7815328Z | |
2021-07-11T00:40:32.7815914Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7816401Z | |
2021-07-11T00:40:32.7816917Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7817845Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4790> | |
2021-07-11T00:40:32.7818418Z | |
2021-07-11T00:40:32.7818829Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7819271Z try: | |
2021-07-11T00:40:32.7819711Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7820268Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7820752Z except OSError: | |
2021-07-11T00:40:32.7821334Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7821848Z entries = [] | |
2021-07-11T00:40:32.7822267Z for entry in entries: | |
2021-07-11T00:40:32.7822750Z fullname = entry.path | |
2021-07-11T00:40:32.7823227Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7823641Z try: | |
2021-07-11T00:40:32.7824052Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7824623Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7825273Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7825935Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7826593Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7827160Z except OSError: | |
2021-07-11T00:40:32.7827835Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7828488Z continue | |
2021-07-11T00:40:32.7828994Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7829456Z else: | |
2021-07-11T00:40:32.7829811Z try: | |
2021-07-11T00:40:32.7830221Z os.unlink(fullname) | |
2021-07-11T00:40:32.7830695Z except OSError: | |
2021-07-11T00:40:32.7831295Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7831801Z try: | |
2021-07-11T00:40:32.7832178Z > os.rmdir(path) | |
2021-07-11T00:40:32.7833171Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7834003Z | |
2021-07-11T00:40:32.7834647Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7835183Z | |
2021-07-11T00:40:32.7835787Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7836294Z | |
2021-07-11T00:40:32.7836695Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7837337Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7838530Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FE36A1C0>) | |
2021-07-11T00:40:32.7839416Z | |
2021-07-11T00:40:32.7839838Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7840447Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7841121Z def resetperms(path): | |
2021-07-11T00:40:32.7841533Z try: | |
2021-07-11T00:40:32.7841967Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7842510Z except AttributeError: | |
2021-07-11T00:40:32.7842967Z pass | |
2021-07-11T00:40:32.7843383Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7843769Z | |
2021-07-11T00:40:32.7844095Z try: | |
2021-07-11T00:40:32.7844465Z if path != name: | |
2021-07-11T00:40:32.7845013Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7845565Z resetperms(path) | |
2021-07-11T00:40:32.7845949Z | |
2021-07-11T00:40:32.7846259Z try: | |
2021-07-11T00:40:32.7846665Z > _os.unlink(path) | |
2021-07-11T00:40:32.7847497Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7848128Z | |
2021-07-11T00:40:32.7848795Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7849360Z | |
2021-07-11T00:40:32.7849926Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7850409Z | |
2021-07-11T00:40:32.7851006Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7851912Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA48B0> | |
2021-07-11T00:40:32.7852508Z | |
2021-07-11T00:40:32.7852950Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7853382Z try: | |
2021-07-11T00:40:32.7853837Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7854361Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7854834Z except OSError: | |
2021-07-11T00:40:32.7855360Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7855872Z entries = [] | |
2021-07-11T00:40:32.7856288Z for entry in entries: | |
2021-07-11T00:40:32.7856774Z fullname = entry.path | |
2021-07-11T00:40:32.7857248Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7857658Z try: | |
2021-07-11T00:40:32.7858070Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7858638Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7859355Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7860029Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7860683Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7861317Z except OSError: | |
2021-07-11T00:40:32.7861928Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7862497Z continue | |
2021-07-11T00:40:32.7863001Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7863463Z else: | |
2021-07-11T00:40:32.7863819Z try: | |
2021-07-11T00:40:32.7864243Z os.unlink(fullname) | |
2021-07-11T00:40:32.7864703Z except OSError: | |
2021-07-11T00:40:32.7865279Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7865765Z try: | |
2021-07-11T00:40:32.7866159Z > os.rmdir(path) | |
2021-07-11T00:40:32.7867186Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7868016Z | |
2021-07-11T00:40:32.7868675Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7869240Z | |
2021-07-11T00:40:32.7869824Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7870308Z | |
2021-07-11T00:40:32.7870692Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7871401Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7872647Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04C40>) | |
2021-07-11T00:40:32.7873491Z | |
2021-07-11T00:40:32.7873907Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7874575Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7875162Z def resetperms(path): | |
2021-07-11T00:40:32.7875588Z try: | |
2021-07-11T00:40:32.7875994Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7876512Z except AttributeError: | |
2021-07-11T00:40:32.7876982Z pass | |
2021-07-11T00:40:32.7877398Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7877762Z | |
2021-07-11T00:40:32.7878086Z try: | |
2021-07-11T00:40:32.7878455Z if path != name: | |
2021-07-11T00:40:32.7878999Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7879568Z resetperms(path) | |
2021-07-11T00:40:32.7879956Z | |
2021-07-11T00:40:32.7880285Z try: | |
2021-07-11T00:40:32.7880666Z > _os.unlink(path) | |
2021-07-11T00:40:32.7881537Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7882164Z | |
2021-07-11T00:40:32.7882832Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7883404Z | |
2021-07-11T00:40:32.7883973Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7884464Z | |
2021-07-11T00:40:32.7885002Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7885881Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA49D0> | |
2021-07-11T00:40:32.7886454Z | |
2021-07-11T00:40:32.7886881Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7887314Z try: | |
2021-07-11T00:40:32.7887770Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7888297Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7888770Z except OSError: | |
2021-07-11T00:40:32.7889299Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7889836Z entries = [] | |
2021-07-11T00:40:32.7890327Z for entry in entries: | |
2021-07-11T00:40:32.7890932Z fullname = entry.path | |
2021-07-11T00:40:32.7891434Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7891835Z try: | |
2021-07-11T00:40:32.7892297Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7892876Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7893522Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7894136Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7894792Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7895356Z except OSError: | |
2021-07-11T00:40:32.7895977Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7896555Z continue | |
2021-07-11T00:40:32.7897042Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7897535Z else: | |
2021-07-11T00:40:32.7897904Z try: | |
2021-07-11T00:40:32.7898332Z os.unlink(fullname) | |
2021-07-11T00:40:32.7898790Z except OSError: | |
2021-07-11T00:40:32.7899364Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7899850Z try: | |
2021-07-11T00:40:32.7900219Z > os.rmdir(path) | |
2021-07-11T00:40:32.7901326Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7902161Z | |
2021-07-11T00:40:32.7902807Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7903377Z | |
2021-07-11T00:40:32.7903971Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7904458Z | |
2021-07-11T00:40:32.7904856Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7905492Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7906687Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04E40>) | |
2021-07-11T00:40:32.7907550Z | |
2021-07-11T00:40:32.7907961Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7908583Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7909169Z def resetperms(path): | |
2021-07-11T00:40:32.7909590Z try: | |
2021-07-11T00:40:32.7909993Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7910515Z except AttributeError: | |
2021-07-11T00:40:32.7911027Z pass | |
2021-07-11T00:40:32.7911444Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7911820Z | |
2021-07-11T00:40:32.7912126Z try: | |
2021-07-11T00:40:32.7912503Z if path != name: | |
2021-07-11T00:40:32.7913054Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7913653Z resetperms(path) | |
2021-07-11T00:40:32.7914027Z | |
2021-07-11T00:40:32.7914351Z try: | |
2021-07-11T00:40:32.7914731Z > _os.unlink(path) | |
2021-07-11T00:40:32.7915566Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7916232Z | |
2021-07-11T00:40:32.7916891Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7917461Z | |
2021-07-11T00:40:32.7918045Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7918568Z | |
2021-07-11T00:40:32.7919100Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7920002Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4AF0> | |
2021-07-11T00:40:32.7920560Z | |
2021-07-11T00:40:32.7921085Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7922291Z try: | |
2021-07-11T00:40:32.7922823Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7923362Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7923822Z except OSError: | |
2021-07-11T00:40:32.7924422Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7924924Z entries = [] | |
2021-07-11T00:40:32.7925353Z for entry in entries: | |
2021-07-11T00:40:32.7925826Z fullname = entry.path | |
2021-07-11T00:40:32.7926317Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7926737Z try: | |
2021-07-11T00:40:32.7927205Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7927764Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7928410Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7929036Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7929701Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7930285Z except OSError: | |
2021-07-11T00:40:32.7930957Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7931539Z continue | |
2021-07-11T00:40:32.7932027Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7932504Z else: | |
2021-07-11T00:40:32.7932847Z try: | |
2021-07-11T00:40:32.7933269Z os.unlink(fullname) | |
2021-07-11T00:40:32.7933731Z except OSError: | |
2021-07-11T00:40:32.7934303Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7934806Z try: | |
2021-07-11T00:40:32.7935170Z > os.rmdir(path) | |
2021-07-11T00:40:32.7936177Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7937012Z | |
2021-07-11T00:40:32.7937654Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7938206Z | |
2021-07-11T00:40:32.7938773Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7939260Z | |
2021-07-11T00:40:32.7939662Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7940292Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7941602Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04DC0>) | |
2021-07-11T00:40:32.7942463Z | |
2021-07-11T00:40:32.7942877Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7943501Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7944103Z def resetperms(path): | |
2021-07-11T00:40:32.7944545Z try: | |
2021-07-11T00:40:32.7944981Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7945492Z except AttributeError: | |
2021-07-11T00:40:32.7945968Z pass | |
2021-07-11T00:40:32.7946371Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7946763Z | |
2021-07-11T00:40:32.7947090Z try: | |
2021-07-11T00:40:32.7947489Z if path != name: | |
2021-07-11T00:40:32.7948022Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7948588Z resetperms(path) | |
2021-07-11T00:40:32.7948962Z | |
2021-07-11T00:40:32.7949286Z try: | |
2021-07-11T00:40:32.7949664Z > _os.unlink(path) | |
2021-07-11T00:40:32.7950495Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7951219Z | |
2021-07-11T00:40:32.7951868Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7952443Z | |
2021-07-11T00:40:32.7953096Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7953650Z | |
2021-07-11T00:40:32.7954200Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7955122Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4C10> | |
2021-07-11T00:40:32.7955696Z | |
2021-07-11T00:40:32.7956110Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7956553Z try: | |
2021-07-11T00:40:32.7957035Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7957575Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7958034Z except OSError: | |
2021-07-11T00:40:32.7958576Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7959083Z entries = [] | |
2021-07-11T00:40:32.7959513Z for entry in entries: | |
2021-07-11T00:40:32.7959984Z fullname = entry.path | |
2021-07-11T00:40:32.7960476Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7960952Z try: | |
2021-07-11T00:40:32.7961371Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7961944Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7962574Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7963197Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7963844Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7964425Z except OSError: | |
2021-07-11T00:40:32.7965027Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7965605Z continue | |
2021-07-11T00:40:32.7966112Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.7966568Z else: | |
2021-07-11T00:40:32.7966924Z try: | |
2021-07-11T00:40:32.7967335Z os.unlink(fullname) | |
2021-07-11T00:40:32.7967810Z except OSError: | |
2021-07-11T00:40:32.7968393Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7968930Z try: | |
2021-07-11T00:40:32.7969291Z > os.rmdir(path) | |
2021-07-11T00:40:32.7970290Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7971178Z | |
2021-07-11T00:40:32.7971812Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.7972360Z | |
2021-07-11T00:40:32.7972942Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7973413Z | |
2021-07-11T00:40:32.7973812Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.7974451Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7975678Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB048C0>) | |
2021-07-11T00:40:32.7976535Z | |
2021-07-11T00:40:32.7976956Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.7977579Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.7978192Z def resetperms(path): | |
2021-07-11T00:40:32.7978595Z try: | |
2021-07-11T00:40:32.7979009Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.7979543Z except AttributeError: | |
2021-07-11T00:40:32.7980010Z pass | |
2021-07-11T00:40:32.7980412Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.7980790Z | |
2021-07-11T00:40:32.7981158Z try: | |
2021-07-11T00:40:32.7981543Z if path != name: | |
2021-07-11T00:40:32.7982092Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.7982649Z resetperms(path) | |
2021-07-11T00:40:32.7983034Z | |
2021-07-11T00:40:32.7983346Z try: | |
2021-07-11T00:40:32.7983741Z > _os.unlink(path) | |
2021-07-11T00:40:32.7984672Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7985310Z | |
2021-07-11T00:40:32.7985994Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.7986568Z | |
2021-07-11T00:40:32.7987173Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.7987658Z | |
2021-07-11T00:40:32.7988178Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.7989106Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4D30> | |
2021-07-11T00:40:32.7989702Z | |
2021-07-11T00:40:32.7990116Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.7990562Z try: | |
2021-07-11T00:40:32.7991067Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.7991625Z entries = list(scandir_it) | |
2021-07-11T00:40:32.7992121Z except OSError: | |
2021-07-11T00:40:32.7992672Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.7993187Z entries = [] | |
2021-07-11T00:40:32.7993607Z for entry in entries: | |
2021-07-11T00:40:32.7994115Z fullname = entry.path | |
2021-07-11T00:40:32.7994614Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.7995044Z try: | |
2021-07-11T00:40:32.7995456Z if entry.is_symlink(): | |
2021-07-11T00:40:32.7996029Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.7996659Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.7997319Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.7997991Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.7998555Z except OSError: | |
2021-07-11T00:40:32.7999168Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.7999756Z continue | |
2021-07-11T00:40:32.8000267Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8000727Z else: | |
2021-07-11T00:40:32.8001143Z try: | |
2021-07-11T00:40:32.8001555Z os.unlink(fullname) | |
2021-07-11T00:40:32.8002031Z except OSError: | |
2021-07-11T00:40:32.8002593Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8003093Z try: | |
2021-07-11T00:40:32.8003470Z > os.rmdir(path) | |
2021-07-11T00:40:32.8004460Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8005294Z | |
2021-07-11T00:40:32.8005939Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8006470Z | |
2021-07-11T00:40:32.8007057Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8007548Z | |
2021-07-11T00:40:32.8007938Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8008584Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8009761Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04940>) | |
2021-07-11T00:40:32.8010610Z | |
2021-07-11T00:40:32.8011090Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8011708Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8012303Z def resetperms(path): | |
2021-07-11T00:40:32.8012711Z try: | |
2021-07-11T00:40:32.8013127Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8013635Z except AttributeError: | |
2021-07-11T00:40:32.8014100Z pass | |
2021-07-11T00:40:32.8014517Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8014877Z | |
2021-07-11T00:40:32.8015276Z try: | |
2021-07-11T00:40:32.8015698Z if path != name: | |
2021-07-11T00:40:32.8016245Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8016802Z resetperms(path) | |
2021-07-11T00:40:32.8017185Z | |
2021-07-11T00:40:32.8017499Z try: | |
2021-07-11T00:40:32.8017890Z > _os.unlink(path) | |
2021-07-11T00:40:32.8018684Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8019315Z | |
2021-07-11T00:40:32.8020020Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8020606Z | |
2021-07-11T00:40:32.8021458Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8021967Z | |
2021-07-11T00:40:32.8022522Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8023453Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4E50> | |
2021-07-11T00:40:32.8024030Z | |
2021-07-11T00:40:32.8024445Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8024898Z try: | |
2021-07-11T00:40:32.8025389Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8025933Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8026403Z except OSError: | |
2021-07-11T00:40:32.8026934Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8027446Z entries = [] | |
2021-07-11T00:40:32.8027881Z for entry in entries: | |
2021-07-11T00:40:32.8028386Z fullname = entry.path | |
2021-07-11T00:40:32.8028879Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8029288Z try: | |
2021-07-11T00:40:32.8029703Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8030291Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8031011Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8031625Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8032274Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8032855Z except OSError: | |
2021-07-11T00:40:32.8033468Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8034039Z continue | |
2021-07-11T00:40:32.8034540Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8034999Z else: | |
2021-07-11T00:40:32.8035356Z try: | |
2021-07-11T00:40:32.8035783Z os.unlink(fullname) | |
2021-07-11T00:40:32.8036245Z except OSError: | |
2021-07-11T00:40:32.8036836Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8037357Z try: | |
2021-07-11T00:40:32.8037729Z > os.rmdir(path) | |
2021-07-11T00:40:32.8038731Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8039560Z | |
2021-07-11T00:40:32.8040199Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8040745Z | |
2021-07-11T00:40:32.8041342Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8041843Z | |
2021-07-11T00:40:32.8042256Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8042914Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8044133Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04CC0>) | |
2021-07-11T00:40:32.8044974Z | |
2021-07-11T00:40:32.8045397Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8046021Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8046743Z def resetperms(path): | |
2021-07-11T00:40:32.8047255Z try: | |
2021-07-11T00:40:32.8047658Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8048181Z except AttributeError: | |
2021-07-11T00:40:32.8048635Z pass | |
2021-07-11T00:40:32.8049052Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8049417Z | |
2021-07-11T00:40:32.8049759Z try: | |
2021-07-11T00:40:32.8050144Z if path != name: | |
2021-07-11T00:40:32.8050710Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8051308Z resetperms(path) | |
2021-07-11T00:40:32.8051691Z | |
2021-07-11T00:40:32.8052015Z try: | |
2021-07-11T00:40:32.8052391Z > _os.unlink(path) | |
2021-07-11T00:40:32.8053228Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8053846Z | |
2021-07-11T00:40:32.8054543Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8055119Z | |
2021-07-11T00:40:32.8055691Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8056178Z | |
2021-07-11T00:40:32.8056705Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8057587Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFDA4F70> | |
2021-07-11T00:40:32.8058162Z | |
2021-07-11T00:40:32.8058588Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8059018Z try: | |
2021-07-11T00:40:32.8059473Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8060003Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8060475Z except OSError: | |
2021-07-11T00:40:32.8061038Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8061556Z entries = [] | |
2021-07-11T00:40:32.8061977Z for entry in entries: | |
2021-07-11T00:40:32.8062464Z fullname = entry.path | |
2021-07-11T00:40:32.8062960Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8063363Z try: | |
2021-07-11T00:40:32.8063788Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8064347Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8064995Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8065603Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8066256Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8066841Z except OSError: | |
2021-07-11T00:40:32.8067458Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8068032Z continue | |
2021-07-11T00:40:32.8068541Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8069020Z else: | |
2021-07-11T00:40:32.8069385Z try: | |
2021-07-11T00:40:32.8069813Z os.unlink(fullname) | |
2021-07-11T00:40:32.8070292Z except OSError: | |
2021-07-11T00:40:32.8070863Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8071382Z try: | |
2021-07-11T00:40:32.8071774Z > os.rmdir(path) | |
2021-07-11T00:40:32.8072781Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8073625Z | |
2021-07-11T00:40:32.8074268Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8074835Z | |
2021-07-11T00:40:32.8075421Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8075925Z | |
2021-07-11T00:40:32.8076330Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8076955Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8078241Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04280>) | |
2021-07-11T00:40:32.8079173Z | |
2021-07-11T00:40:32.8079580Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8080206Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8080822Z def resetperms(path): | |
2021-07-11T00:40:32.8081284Z try: | |
2021-07-11T00:40:32.8081689Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8082218Z except AttributeError: | |
2021-07-11T00:40:32.8082676Z pass | |
2021-07-11T00:40:32.8083111Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8083490Z | |
2021-07-11T00:40:32.8083795Z try: | |
2021-07-11T00:40:32.8084198Z if path != name: | |
2021-07-11T00:40:32.8084754Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8085330Z resetperms(path) | |
2021-07-11T00:40:32.8085706Z | |
2021-07-11T00:40:32.8086050Z try: | |
2021-07-11T00:40:32.8086428Z > _os.unlink(path) | |
2021-07-11T00:40:32.8087259Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8087891Z | |
2021-07-11T00:40:32.8088547Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8089118Z | |
2021-07-11T00:40:32.8089699Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8090171Z | |
2021-07-11T00:40:32.8090700Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8091659Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B0D0> | |
2021-07-11T00:40:32.8092237Z | |
2021-07-11T00:40:32.8092663Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8093110Z try: | |
2021-07-11T00:40:32.8093570Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8094114Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8094572Z except OSError: | |
2021-07-11T00:40:32.8095131Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8095628Z entries = [] | |
2021-07-11T00:40:32.8096075Z for entry in entries: | |
2021-07-11T00:40:32.8096544Z fullname = entry.path | |
2021-07-11T00:40:32.8097030Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8097433Z try: | |
2021-07-11T00:40:32.8097872Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8098434Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8099094Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8099738Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8100381Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8101017Z except OSError: | |
2021-07-11T00:40:32.8101641Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8102239Z continue | |
2021-07-11T00:40:32.8102733Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8103207Z else: | |
2021-07-11T00:40:32.8103571Z try: | |
2021-07-11T00:40:32.8103994Z os.unlink(fullname) | |
2021-07-11T00:40:32.8104477Z except OSError: | |
2021-07-11T00:40:32.8105076Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8105575Z try: | |
2021-07-11T00:40:32.8105935Z > os.rmdir(path) | |
2021-07-11T00:40:32.8106936Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8107790Z | |
2021-07-11T00:40:32.8108491Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8109702Z | |
2021-07-11T00:40:32.8110273Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8110764Z | |
2021-07-11T00:40:32.8111217Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8111850Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8113043Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFB04900>) | |
2021-07-11T00:40:32.8113902Z | |
2021-07-11T00:40:32.8114312Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8114931Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8115511Z def resetperms(path): | |
2021-07-11T00:40:32.8115935Z try: | |
2021-07-11T00:40:32.8116354Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8116866Z except AttributeError: | |
2021-07-11T00:40:32.8117340Z pass | |
2021-07-11T00:40:32.8117745Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8118124Z | |
2021-07-11T00:40:32.8118434Z try: | |
2021-07-11T00:40:32.8118816Z if path != name: | |
2021-07-11T00:40:32.8119347Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8119915Z resetperms(path) | |
2021-07-11T00:40:32.8120285Z | |
2021-07-11T00:40:32.8120611Z try: | |
2021-07-11T00:40:32.8121027Z > _os.unlink(path) | |
2021-07-11T00:40:32.8121834Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8122466Z | |
2021-07-11T00:40:32.8123117Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8123687Z | |
2021-07-11T00:40:32.8124268Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8124757Z | |
2021-07-11T00:40:32.8125276Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8126170Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B1F0> | |
2021-07-11T00:40:32.8126743Z | |
2021-07-11T00:40:32.8127153Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8127590Z try: | |
2021-07-11T00:40:32.8128033Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8128571Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8129053Z except OSError: | |
2021-07-11T00:40:32.8129679Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8130217Z entries = [] | |
2021-07-11T00:40:32.8130665Z for entry in entries: | |
2021-07-11T00:40:32.8131178Z fullname = entry.path | |
2021-07-11T00:40:32.8131670Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8132090Z try: | |
2021-07-11T00:40:32.8132515Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8133107Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8133745Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8134369Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8135012Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8135608Z except OSError: | |
2021-07-11T00:40:32.8136234Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8136810Z continue | |
2021-07-11T00:40:32.8137310Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8137772Z else: | |
2021-07-11T00:40:32.8138128Z try: | |
2021-07-11T00:40:32.8138557Z os.unlink(fullname) | |
2021-07-11T00:40:32.8139036Z except OSError: | |
2021-07-11T00:40:32.8139697Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8140268Z try: | |
2021-07-11T00:40:32.8140631Z > os.rmdir(path) | |
2021-07-11T00:40:32.8141678Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8142506Z | |
2021-07-11T00:40:32.8143135Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8143679Z | |
2021-07-11T00:40:32.8144264Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8144735Z | |
2021-07-11T00:40:32.8145161Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8145804Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8146976Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FE380EC0>) | |
2021-07-11T00:40:32.8147841Z | |
2021-07-11T00:40:32.8148271Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8148876Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8149484Z def resetperms(path): | |
2021-07-11T00:40:32.8149896Z try: | |
2021-07-11T00:40:32.8150308Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8150817Z except AttributeError: | |
2021-07-11T00:40:32.8151323Z pass | |
2021-07-11T00:40:32.8151731Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8152112Z | |
2021-07-11T00:40:32.8152420Z try: | |
2021-07-11T00:40:32.8152798Z if path != name: | |
2021-07-11T00:40:32.8153345Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8153897Z resetperms(path) | |
2021-07-11T00:40:32.8154283Z | |
2021-07-11T00:40:32.8154595Z try: | |
2021-07-11T00:40:32.8154986Z > _os.unlink(path) | |
2021-07-11T00:40:32.8155784Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8156419Z | |
2021-07-11T00:40:32.8157110Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8157671Z | |
2021-07-11T00:40:32.8158262Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8158746Z | |
2021-07-11T00:40:32.8159259Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8160167Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B310> | |
2021-07-11T00:40:32.8160736Z | |
2021-07-11T00:40:32.8161203Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8161648Z try: | |
2021-07-11T00:40:32.8162087Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8162646Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8163109Z except OSError: | |
2021-07-11T00:40:32.8163652Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8164170Z entries = [] | |
2021-07-11T00:40:32.8164584Z for entry in entries: | |
2021-07-11T00:40:32.8165072Z fullname = entry.path | |
2021-07-11T00:40:32.8165568Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8165980Z try: | |
2021-07-11T00:40:32.8166389Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8166977Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8167610Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8168246Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8168886Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8169467Z except OSError: | |
2021-07-11T00:40:32.8170082Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8170648Z continue | |
2021-07-11T00:40:32.8171321Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8171792Z else: | |
2021-07-11T00:40:32.8172150Z try: | |
2021-07-11T00:40:32.8172563Z os.unlink(fullname) | |
2021-07-11T00:40:32.8173046Z except OSError: | |
2021-07-11T00:40:32.8173604Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8174104Z try: | |
2021-07-11T00:40:32.8174469Z > os.rmdir(path) | |
2021-07-11T00:40:32.8175474Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8176311Z | |
2021-07-11T00:40:32.8176943Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8177493Z | |
2021-07-11T00:40:32.8178078Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8178562Z | |
2021-07-11T00:40:32.8178960Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8179602Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8180773Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FE34A240>) | |
2021-07-11T00:40:32.8181666Z | |
2021-07-11T00:40:32.8182088Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8182690Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8183283Z def resetperms(path): | |
2021-07-11T00:40:32.8183690Z try: | |
2021-07-11T00:40:32.8184107Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8184613Z except AttributeError: | |
2021-07-11T00:40:32.8185103Z pass | |
2021-07-11T00:40:32.8185523Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8185884Z | |
2021-07-11T00:40:32.8186224Z try: | |
2021-07-11T00:40:32.8186599Z if path != name: | |
2021-07-11T00:40:32.8187145Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8187700Z resetperms(path) | |
2021-07-11T00:40:32.8188142Z | |
2021-07-11T00:40:32.8188452Z try: | |
2021-07-11T00:40:32.8188839Z > _os.unlink(path) | |
2021-07-11T00:40:32.8189632Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8190265Z | |
2021-07-11T00:40:32.8190967Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8191536Z | |
2021-07-11T00:40:32.8192104Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8192592Z | |
2021-07-11T00:40:32.8193134Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8194020Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B430> | |
2021-07-11T00:40:32.8194614Z | |
2021-07-11T00:40:32.8195028Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8195469Z try: | |
2021-07-11T00:40:32.8195927Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8196454Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8196927Z except OSError: | |
2021-07-11T00:40:32.8197456Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8197972Z entries = [] | |
2021-07-11T00:40:32.8198393Z for entry in entries: | |
2021-07-11T00:40:32.8198880Z fullname = entry.path | |
2021-07-11T00:40:32.8199353Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8199769Z try: | |
2021-07-11T00:40:32.8200181Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8200752Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8201533Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8202221Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8202939Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8203504Z except OSError: | |
2021-07-11T00:40:32.8204144Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8204712Z continue | |
2021-07-11T00:40:32.8205219Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8205722Z else: | |
2021-07-11T00:40:32.8206077Z try: | |
2021-07-11T00:40:32.8206501Z os.unlink(fullname) | |
2021-07-11T00:40:32.8206980Z except OSError: | |
2021-07-11T00:40:32.8207555Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8208037Z try: | |
2021-07-11T00:40:32.8208433Z > os.rmdir(path) | |
2021-07-11T00:40:32.8209431Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8210287Z | |
2021-07-11T00:40:32.8211017Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8211568Z | |
2021-07-11T00:40:32.8212141Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8212628Z | |
2021-07-11T00:40:32.8213016Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8213663Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8214855Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FE34A480>) | |
2021-07-11T00:40:32.8215693Z | |
2021-07-11T00:40:32.8216114Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8216722Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8217315Z def resetperms(path): | |
2021-07-11T00:40:32.8217748Z try: | |
2021-07-11T00:40:32.8218151Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8218694Z except AttributeError: | |
2021-07-11T00:40:32.8219155Z pass | |
2021-07-11T00:40:32.8219570Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8219934Z | |
2021-07-11T00:40:32.8220276Z try: | |
2021-07-11T00:40:32.8220645Z if path != name: | |
2021-07-11T00:40:32.8221236Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8221809Z resetperms(path) | |
2021-07-11T00:40:32.8222195Z | |
2021-07-11T00:40:32.8222518Z try: | |
2021-07-11T00:40:32.8222914Z > _os.unlink(path) | |
2021-07-11T00:40:32.8223734Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8224368Z | |
2021-07-11T00:40:32.8225039Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8225615Z | |
2021-07-11T00:40:32.8226200Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8226687Z | |
2021-07-11T00:40:32.8227233Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8228114Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B550> | |
2021-07-11T00:40:32.8228705Z | |
2021-07-11T00:40:32.8229128Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8229558Z try: | |
2021-07-11T00:40:32.8230027Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8230551Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8231061Z except OSError: | |
2021-07-11T00:40:32.8231593Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8232106Z entries = [] | |
2021-07-11T00:40:32.8232523Z for entry in entries: | |
2021-07-11T00:40:32.8233013Z fullname = entry.path | |
2021-07-11T00:40:32.8233636Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8234059Z try: | |
2021-07-11T00:40:32.8234486Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8235045Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8235701Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8236308Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8236981Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8237548Z except OSError: | |
2021-07-11T00:40:32.8238164Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8238759Z continue | |
2021-07-11T00:40:32.8239248Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8239739Z else: | |
2021-07-11T00:40:32.8240079Z try: | |
2021-07-11T00:40:32.8240506Z os.unlink(fullname) | |
2021-07-11T00:40:32.8241009Z except OSError: | |
2021-07-11T00:40:32.8241582Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8242068Z try: | |
2021-07-11T00:40:32.8242441Z > os.rmdir(path) | |
2021-07-11T00:40:32.8243436Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8244264Z | |
2021-07-11T00:40:32.8244911Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8245460Z | |
2021-07-11T00:40:32.8246028Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8246512Z | |
2021-07-11T00:40:32.8246909Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8247541Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8248741Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FD160C00>) | |
2021-07-11T00:40:32.8249593Z | |
2021-07-11T00:40:32.8250018Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8250638Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8251276Z def resetperms(path): | |
2021-07-11T00:40:32.8251698Z try: | |
2021-07-11T00:40:32.8252102Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8252628Z except AttributeError: | |
2021-07-11T00:40:32.8253079Z pass | |
2021-07-11T00:40:32.8253493Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8253857Z | |
2021-07-11T00:40:32.8254180Z try: | |
2021-07-11T00:40:32.8254562Z if path != name: | |
2021-07-11T00:40:32.8255095Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8255660Z resetperms(path) | |
2021-07-11T00:40:32.8256039Z | |
2021-07-11T00:40:32.8256369Z try: | |
2021-07-11T00:40:32.8256746Z > _os.unlink(path) | |
2021-07-11T00:40:32.8257555Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8258188Z | |
2021-07-11T00:40:32.8258839Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8259409Z | |
2021-07-11T00:40:32.8259989Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8260459Z | |
2021-07-11T00:40:32.8261024Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8261910Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B670> | |
2021-07-11T00:40:32.8262477Z | |
2021-07-11T00:40:32.8262899Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8263331Z try: | |
2021-07-11T00:40:32.8263856Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8264436Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8264913Z except OSError: | |
2021-07-11T00:40:32.8265457Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8265959Z entries = [] | |
2021-07-11T00:40:32.8266392Z for entry in entries: | |
2021-07-11T00:40:32.8266867Z fullname = entry.path | |
2021-07-11T00:40:32.8267359Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8267759Z try: | |
2021-07-11T00:40:32.8268187Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8268745Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8269394Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8270015Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8270658Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8271284Z except OSError: | |
2021-07-11T00:40:32.8271889Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8272466Z continue | |
2021-07-11T00:40:32.8272951Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8273429Z else: | |
2021-07-11T00:40:32.8273774Z try: | |
2021-07-11T00:40:32.8274197Z os.unlink(fullname) | |
2021-07-11T00:40:32.8274661Z except OSError: | |
2021-07-11T00:40:32.8275231Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8275732Z try: | |
2021-07-11T00:40:32.8276090Z > os.rmdir(path) | |
2021-07-11T00:40:32.8277086Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8277914Z | |
2021-07-11T00:40:32.8278546Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8279100Z | |
2021-07-11T00:40:32.8279666Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8280151Z | |
2021-07-11T00:40:32.8280556Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8281245Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8282428Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC35800>) | |
2021-07-11T00:40:32.8283285Z | |
2021-07-11T00:40:32.8283688Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8284313Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8284919Z def resetperms(path): | |
2021-07-11T00:40:32.8285362Z try: | |
2021-07-11T00:40:32.8285777Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8286303Z except AttributeError: | |
2021-07-11T00:40:32.8286780Z pass | |
2021-07-11T00:40:32.8287185Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8287562Z | |
2021-07-11T00:40:32.8287867Z try: | |
2021-07-11T00:40:32.8288249Z if path != name: | |
2021-07-11T00:40:32.8288780Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8289346Z resetperms(path) | |
2021-07-11T00:40:32.8289721Z | |
2021-07-11T00:40:32.8290044Z try: | |
2021-07-11T00:40:32.8290418Z > _os.unlink(path) | |
2021-07-11T00:40:32.8291260Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8291890Z | |
2021-07-11T00:40:32.8292545Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8293109Z | |
2021-07-11T00:40:32.8293690Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8294173Z | |
2021-07-11T00:40:32.8294787Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8295761Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B790> | |
2021-07-11T00:40:32.8296329Z | |
2021-07-11T00:40:32.8296742Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8297182Z try: | |
2021-07-11T00:40:32.8297639Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8298195Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8298656Z except OSError: | |
2021-07-11T00:40:32.8299218Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8299720Z entries = [] | |
2021-07-11T00:40:32.8300167Z for entry in entries: | |
2021-07-11T00:40:32.8300642Z fullname = entry.path | |
2021-07-11T00:40:32.8301174Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8301594Z try: | |
2021-07-11T00:40:32.8302021Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8302597Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8303254Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8303896Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8304557Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8305136Z except OSError: | |
2021-07-11T00:40:32.8305733Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8306326Z continue | |
2021-07-11T00:40:32.8306834Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8307325Z else: | |
2021-07-11T00:40:32.8307680Z try: | |
2021-07-11T00:40:32.8308090Z os.unlink(fullname) | |
2021-07-11T00:40:32.8308568Z except OSError: | |
2021-07-11T00:40:32.8309142Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8309642Z try: | |
2021-07-11T00:40:32.8310005Z > os.rmdir(path) | |
2021-07-11T00:40:32.8311045Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8311889Z | |
2021-07-11T00:40:32.8312538Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8313110Z | |
2021-07-11T00:40:32.8313711Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8314180Z | |
2021-07-11T00:40:32.8314582Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8315239Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8316414Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC35780>) | |
2021-07-11T00:40:32.8317263Z | |
2021-07-11T00:40:32.8317686Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8318298Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8318890Z def resetperms(path): | |
2021-07-11T00:40:32.8319298Z try: | |
2021-07-11T00:40:32.8319711Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8320219Z except AttributeError: | |
2021-07-11T00:40:32.8320687Z pass | |
2021-07-11T00:40:32.8321123Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8321502Z | |
2021-07-11T00:40:32.8321811Z try: | |
2021-07-11T00:40:32.8322194Z if path != name: | |
2021-07-11T00:40:32.8322745Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8323311Z resetperms(path) | |
2021-07-11T00:40:32.8323697Z | |
2021-07-11T00:40:32.8324007Z try: | |
2021-07-11T00:40:32.8324397Z > _os.unlink(path) | |
2021-07-11T00:40:32.8325266Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8325953Z | |
2021-07-11T00:40:32.8326622Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8327179Z | |
2021-07-11T00:40:32.8327764Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8328250Z | |
2021-07-11T00:40:32.8328766Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8329666Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B8B0> | |
2021-07-11T00:40:32.8330238Z | |
2021-07-11T00:40:32.8330650Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8331133Z try: | |
2021-07-11T00:40:32.8331577Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8332121Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8332582Z except OSError: | |
2021-07-11T00:40:32.8333124Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8333645Z entries = [] | |
2021-07-11T00:40:32.8334062Z for entry in entries: | |
2021-07-11T00:40:32.8334549Z fullname = entry.path | |
2021-07-11T00:40:32.8335028Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8335440Z try: | |
2021-07-11T00:40:32.8335847Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8336415Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8337047Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8337674Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8338339Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8338928Z except OSError: | |
2021-07-11T00:40:32.8339539Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8340100Z continue | |
2021-07-11T00:40:32.8340615Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8341116Z else: | |
2021-07-11T00:40:32.8341470Z try: | |
2021-07-11T00:40:32.8341877Z os.unlink(fullname) | |
2021-07-11T00:40:32.8342349Z except OSError: | |
2021-07-11T00:40:32.8342910Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8343409Z try: | |
2021-07-11T00:40:32.8343765Z > os.rmdir(path) | |
2021-07-11T00:40:32.8344771Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8345606Z | |
2021-07-11T00:40:32.8346238Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8346785Z | |
2021-07-11T00:40:32.8347372Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8347860Z | |
2021-07-11T00:40:32.8348249Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8348891Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8350072Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC35A40>) | |
2021-07-11T00:40:32.8350969Z | |
2021-07-11T00:40:32.8351389Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8351996Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8352593Z def resetperms(path): | |
2021-07-11T00:40:32.8352997Z try: | |
2021-07-11T00:40:32.8353410Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8353918Z except AttributeError: | |
2021-07-11T00:40:32.8354387Z pass | |
2021-07-11T00:40:32.8354820Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8355203Z | |
2021-07-11T00:40:32.8355523Z try: | |
2021-07-11T00:40:32.8355987Z if path != name: | |
2021-07-11T00:40:32.8356670Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8357227Z resetperms(path) | |
2021-07-11T00:40:32.8357615Z | |
2021-07-11T00:40:32.8357946Z try: | |
2021-07-11T00:40:32.8358343Z > _os.unlink(path) | |
2021-07-11T00:40:32.8359156Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8359807Z | |
2021-07-11T00:40:32.8360472Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8361115Z | |
2021-07-11T00:40:32.8361704Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8362191Z | |
2021-07-11T00:40:32.8362728Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8363612Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9B9D0> | |
2021-07-11T00:40:32.8364184Z | |
2021-07-11T00:40:32.8364606Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8365049Z try: | |
2021-07-11T00:40:32.8365502Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8366028Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8366501Z except OSError: | |
2021-07-11T00:40:32.8367030Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8367544Z entries = [] | |
2021-07-11T00:40:32.8367963Z for entry in entries: | |
2021-07-11T00:40:32.8368452Z fullname = entry.path | |
2021-07-11T00:40:32.8368931Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8369341Z try: | |
2021-07-11T00:40:32.8369750Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8370321Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8371028Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8371644Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8372324Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8372904Z except OSError: | |
2021-07-11T00:40:32.8373519Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8374092Z continue | |
2021-07-11T00:40:32.8374598Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8375058Z else: | |
2021-07-11T00:40:32.8375416Z try: | |
2021-07-11T00:40:32.8375849Z os.unlink(fullname) | |
2021-07-11T00:40:32.8376328Z except OSError: | |
2021-07-11T00:40:32.8376919Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8377406Z try: | |
2021-07-11T00:40:32.8377802Z > os.rmdir(path) | |
2021-07-11T00:40:32.8378816Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8379670Z | |
2021-07-11T00:40:32.8380333Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8380868Z | |
2021-07-11T00:40:32.8381529Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8382022Z | |
2021-07-11T00:40:32.8382411Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8383072Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8384315Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC35D80>) | |
2021-07-11T00:40:32.8385162Z | |
2021-07-11T00:40:32.8385602Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8386265Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8386876Z def resetperms(path): | |
2021-07-11T00:40:32.8387368Z try: | |
2021-07-11T00:40:32.8387823Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8388346Z except AttributeError: | |
2021-07-11T00:40:32.8388801Z pass | |
2021-07-11T00:40:32.8389217Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8389582Z | |
2021-07-11T00:40:32.8389907Z try: | |
2021-07-11T00:40:32.8390295Z if path != name: | |
2021-07-11T00:40:32.8390836Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8391459Z resetperms(path) | |
2021-07-11T00:40:32.8391843Z | |
2021-07-11T00:40:32.8392155Z try: | |
2021-07-11T00:40:32.8392553Z > _os.unlink(path) | |
2021-07-11T00:40:32.8393388Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8394023Z | |
2021-07-11T00:40:32.8394706Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8395281Z | |
2021-07-11T00:40:32.8395869Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8396359Z | |
2021-07-11T00:40:32.8396886Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8397793Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9BAF0> | |
2021-07-11T00:40:32.8398382Z | |
2021-07-11T00:40:32.8398807Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8399237Z try: | |
2021-07-11T00:40:32.8399693Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8400238Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8400715Z except OSError: | |
2021-07-11T00:40:32.8401309Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8401824Z entries = [] | |
2021-07-11T00:40:32.8402245Z for entry in entries: | |
2021-07-11T00:40:32.8402732Z fullname = entry.path | |
2021-07-11T00:40:32.8403245Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8403646Z try: | |
2021-07-11T00:40:32.8404072Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8404643Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8405288Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8405893Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8406568Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8407134Z except OSError: | |
2021-07-11T00:40:32.8407764Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8408339Z continue | |
2021-07-11T00:40:32.8408829Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8409320Z else: | |
2021-07-11T00:40:32.8409664Z try: | |
2021-07-11T00:40:32.8410086Z os.unlink(fullname) | |
2021-07-11T00:40:32.8410582Z except OSError: | |
2021-07-11T00:40:32.8411214Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8411699Z try: | |
2021-07-11T00:40:32.8412089Z > os.rmdir(path) | |
2021-07-11T00:40:32.8413095Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8413921Z | |
2021-07-11T00:40:32.8414563Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8415110Z | |
2021-07-11T00:40:32.8415674Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8416178Z | |
2021-07-11T00:40:32.8416580Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8417224Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8419130Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFC35E40>) | |
2021-07-11T00:40:32.8420089Z | |
2021-07-11T00:40:32.8420499Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8421188Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8421793Z def resetperms(path): | |
2021-07-11T00:40:32.8422216Z try: | |
2021-07-11T00:40:32.8422620Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8423163Z except AttributeError: | |
2021-07-11T00:40:32.8423621Z pass | |
2021-07-11T00:40:32.8424038Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8424402Z | |
2021-07-11T00:40:32.8424724Z try: | |
2021-07-11T00:40:32.8425107Z if path != name: | |
2021-07-11T00:40:32.8425642Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8426212Z resetperms(path) | |
2021-07-11T00:40:32.8426584Z | |
2021-07-11T00:40:32.8426914Z try: | |
2021-07-11T00:40:32.8427297Z > _os.unlink(path) | |
2021-07-11T00:40:32.8428107Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8428738Z | |
2021-07-11T00:40:32.8429393Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8429977Z | |
2021-07-11T00:40:32.8430559Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8431109Z | |
2021-07-11T00:40:32.8431665Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8432548Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9BC10> | |
2021-07-11T00:40:32.8433126Z | |
2021-07-11T00:40:32.8433558Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8433989Z try: | |
2021-07-11T00:40:32.8434444Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8434975Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8435451Z except OSError: | |
2021-07-11T00:40:32.8435997Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8436498Z entries = [] | |
2021-07-11T00:40:32.8436932Z for entry in entries: | |
2021-07-11T00:40:32.8437404Z fullname = entry.path | |
2021-07-11T00:40:32.8437894Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8438294Z try: | |
2021-07-11T00:40:32.8438718Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8439280Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8439921Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8440533Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8441260Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8441846Z except OSError: | |
2021-07-11T00:40:32.8442454Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8443053Z continue | |
2021-07-11T00:40:32.8443543Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8444021Z else: | |
2021-07-11T00:40:32.8444387Z try: | |
2021-07-11T00:40:32.8444810Z os.unlink(fullname) | |
2021-07-11T00:40:32.8445268Z except OSError: | |
2021-07-11T00:40:32.8445857Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8446355Z try: | |
2021-07-11T00:40:32.8446714Z > os.rmdir(path) | |
2021-07-11T00:40:32.8447714Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8448558Z | |
2021-07-11T00:40:32.8449190Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8449804Z | |
2021-07-11T00:40:32.8450438Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8451011Z | |
2021-07-11T00:40:32.8451414Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8452039Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8453237Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADA740>) | |
2021-07-11T00:40:32.8454096Z | |
2021-07-11T00:40:32.8454507Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8455128Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8455710Z def resetperms(path): | |
2021-07-11T00:40:32.8456134Z try: | |
2021-07-11T00:40:32.8456538Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8457067Z except AttributeError: | |
2021-07-11T00:40:32.8457541Z pass | |
2021-07-11T00:40:32.8457946Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8458324Z | |
2021-07-11T00:40:32.8458632Z try: | |
2021-07-11T00:40:32.8459012Z if path != name: | |
2021-07-11T00:40:32.8459546Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8460117Z resetperms(path) | |
2021-07-11T00:40:32.8460486Z | |
2021-07-11T00:40:32.8460808Z try: | |
2021-07-11T00:40:32.8461245Z > _os.unlink(path) | |
2021-07-11T00:40:32.8462060Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8462688Z | |
2021-07-11T00:40:32.8463340Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8463905Z | |
2021-07-11T00:40:32.8464481Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8464967Z | |
2021-07-11T00:40:32.8465488Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8466390Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9BD30> | |
2021-07-11T00:40:32.8466963Z | |
2021-07-11T00:40:32.8467372Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8467811Z try: | |
2021-07-11T00:40:32.8468249Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8468792Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8469252Z except OSError: | |
2021-07-11T00:40:32.8469793Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8470293Z entries = [] | |
2021-07-11T00:40:32.8470744Z for entry in entries: | |
2021-07-11T00:40:32.8471282Z fullname = entry.path | |
2021-07-11T00:40:32.8471772Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8472195Z try: | |
2021-07-11T00:40:32.8472624Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8473202Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8473858Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8474483Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8475146Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8475729Z except OSError: | |
2021-07-11T00:40:32.8476325Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8476921Z continue | |
2021-07-11T00:40:32.8477410Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8477905Z else: | |
2021-07-11T00:40:32.8478257Z try: | |
2021-07-11T00:40:32.8478665Z os.unlink(fullname) | |
2021-07-11T00:40:32.8479162Z except OSError: | |
2021-07-11T00:40:32.8479718Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8480211Z try: | |
2021-07-11T00:40:32.8480646Z > os.rmdir(path) | |
2021-07-11T00:40:32.8481768Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8482597Z | |
2021-07-11T00:40:32.8483227Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8483775Z | |
2021-07-11T00:40:32.8484355Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8484828Z | |
2021-07-11T00:40:32.8485232Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8485873Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8487056Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADAA00>) | |
2021-07-11T00:40:32.8487920Z | |
2021-07-11T00:40:32.8488342Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8488957Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8489551Z def resetperms(path): | |
2021-07-11T00:40:32.8489963Z try: | |
2021-07-11T00:40:32.8490377Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8490886Z except AttributeError: | |
2021-07-11T00:40:32.8491432Z pass | |
2021-07-11T00:40:32.8491830Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8492209Z | |
2021-07-11T00:40:32.8492520Z try: | |
2021-07-11T00:40:32.8492902Z if path != name: | |
2021-07-11T00:40:32.8493440Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8494009Z resetperms(path) | |
2021-07-11T00:40:32.8494397Z | |
2021-07-11T00:40:32.8494710Z try: | |
2021-07-11T00:40:32.8495100Z > _os.unlink(path) | |
2021-07-11T00:40:32.8495918Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8496553Z | |
2021-07-11T00:40:32.8497237Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8497793Z | |
2021-07-11T00:40:32.8498370Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8498876Z | |
2021-07-11T00:40:32.8499388Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8500305Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9BE50> | |
2021-07-11T00:40:32.8500873Z | |
2021-07-11T00:40:32.8501369Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8501812Z try: | |
2021-07-11T00:40:32.8502254Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8502812Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8503273Z except OSError: | |
2021-07-11T00:40:32.8503814Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8504341Z entries = [] | |
2021-07-11T00:40:32.8504780Z for entry in entries: | |
2021-07-11T00:40:32.8505264Z fullname = entry.path | |
2021-07-11T00:40:32.8505759Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8506173Z try: | |
2021-07-11T00:40:32.8506583Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8507184Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8507815Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8508439Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8509083Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8509666Z except OSError: | |
2021-07-11T00:40:32.8510281Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8510846Z continue | |
2021-07-11T00:40:32.8511475Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8511993Z else: | |
2021-07-11T00:40:32.8512347Z try: | |
2021-07-11T00:40:32.8512780Z os.unlink(fullname) | |
2021-07-11T00:40:32.8513259Z except OSError: | |
2021-07-11T00:40:32.8513817Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8514328Z try: | |
2021-07-11T00:40:32.8514687Z > os.rmdir(path) | |
2021-07-11T00:40:32.8515709Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8516534Z | |
2021-07-11T00:40:32.8517183Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8517727Z | |
2021-07-11T00:40:32.8518325Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8518808Z | |
2021-07-11T00:40:32.8519196Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8519861Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8521117Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADA200>) | |
2021-07-11T00:40:32.8521980Z | |
2021-07-11T00:40:32.8522421Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8523026Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8523620Z def resetperms(path): | |
2021-07-11T00:40:32.8524050Z try: | |
2021-07-11T00:40:32.8524464Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8524972Z except AttributeError: | |
2021-07-11T00:40:32.8525459Z pass | |
2021-07-11T00:40:32.8525872Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8526238Z | |
2021-07-11T00:40:32.8526558Z try: | |
2021-07-11T00:40:32.8526944Z if path != name: | |
2021-07-11T00:40:32.8527492Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8528066Z resetperms(path) | |
2021-07-11T00:40:32.8528457Z | |
2021-07-11T00:40:32.8528773Z try: | |
2021-07-11T00:40:32.8529164Z > _os.unlink(path) | |
2021-07-11T00:40:32.8529973Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8530608Z | |
2021-07-11T00:40:32.8531331Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8531899Z | |
2021-07-11T00:40:32.8532468Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8532956Z | |
2021-07-11T00:40:32.8533468Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8534356Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9BF70> | |
2021-07-11T00:40:32.8534933Z | |
2021-07-11T00:40:32.8535349Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8535797Z try: | |
2021-07-11T00:40:32.8536239Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8536795Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8537269Z except OSError: | |
2021-07-11T00:40:32.8537818Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8538331Z entries = [] | |
2021-07-11T00:40:32.8538745Z for entry in entries: | |
2021-07-11T00:40:32.8539231Z fullname = entry.path | |
2021-07-11T00:40:32.8539706Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8540117Z try: | |
2021-07-11T00:40:32.8540530Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8541160Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8541802Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8542430Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8543207Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8543797Z except OSError: | |
2021-07-11T00:40:32.8544409Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8544993Z continue | |
2021-07-11T00:40:32.8545499Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8545961Z else: | |
2021-07-11T00:40:32.8546336Z try: | |
2021-07-11T00:40:32.8546747Z os.unlink(fullname) | |
2021-07-11T00:40:32.8547221Z except OSError: | |
2021-07-11T00:40:32.8547812Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8548294Z try: | |
2021-07-11T00:40:32.8548668Z > os.rmdir(path) | |
2021-07-11T00:40:32.8549684Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8550518Z | |
2021-07-11T00:40:32.8551226Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8551761Z | |
2021-07-11T00:40:32.8552336Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8552823Z | |
2021-07-11T00:40:32.8553215Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8553856Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8555063Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADA480>) | |
2021-07-11T00:40:32.8555939Z | |
2021-07-11T00:40:32.8556361Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8556967Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8557566Z def resetperms(path): | |
2021-07-11T00:40:32.8557989Z try: | |
2021-07-11T00:40:32.8558396Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8558920Z except AttributeError: | |
2021-07-11T00:40:32.8559378Z pass | |
2021-07-11T00:40:32.8559790Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8560152Z | |
2021-07-11T00:40:32.8560470Z try: | |
2021-07-11T00:40:32.8560836Z if path != name: | |
2021-07-11T00:40:32.8561441Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8561995Z resetperms(path) | |
2021-07-11T00:40:32.8562378Z | |
2021-07-11T00:40:32.8562689Z try: | |
2021-07-11T00:40:32.8563081Z > _os.unlink(path) | |
2021-07-11T00:40:32.8563891Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8564505Z | |
2021-07-11T00:40:32.8565168Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8565734Z | |
2021-07-11T00:40:32.8566309Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8566795Z | |
2021-07-11T00:40:32.8567324Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8568205Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9E0D0> | |
2021-07-11T00:40:32.8568776Z | |
2021-07-11T00:40:32.8569223Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8569653Z try: | |
2021-07-11T00:40:32.8570109Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8570632Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8571163Z except OSError: | |
2021-07-11T00:40:32.8571694Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8572227Z entries = [] | |
2021-07-11T00:40:32.8572642Z for entry in entries: | |
2021-07-11T00:40:32.8573124Z fullname = entry.path | |
2021-07-11T00:40:32.8573636Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8574150Z try: | |
2021-07-11T00:40:32.8574579Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8575156Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8575807Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8576437Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8577093Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8577678Z except OSError: | |
2021-07-11T00:40:32.8578291Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8578883Z continue | |
2021-07-11T00:40:32.8579372Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8579847Z else: | |
2021-07-11T00:40:32.8580186Z try: | |
2021-07-11T00:40:32.8580627Z os.unlink(fullname) | |
2021-07-11T00:40:32.8581154Z except OSError: | |
2021-07-11T00:40:32.8581750Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8582234Z try: | |
2021-07-11T00:40:32.8582607Z > os.rmdir(path) | |
2021-07-11T00:40:32.8583618Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8584448Z | |
2021-07-11T00:40:32.8585098Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8585650Z | |
2021-07-11T00:40:32.8586218Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8586707Z | |
2021-07-11T00:40:32.8587109Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8587732Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8588932Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADA500>) | |
2021-07-11T00:40:32.8589816Z | |
2021-07-11T00:40:32.8590224Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8590863Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8591506Z def resetperms(path): | |
2021-07-11T00:40:32.8591929Z try: | |
2021-07-11T00:40:32.8592355Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8592884Z except AttributeError: | |
2021-07-11T00:40:32.8593339Z pass | |
2021-07-11T00:40:32.8593773Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8594137Z | |
2021-07-11T00:40:32.8594460Z try: | |
2021-07-11T00:40:32.8594845Z if path != name: | |
2021-07-11T00:40:32.8595403Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8595970Z resetperms(path) | |
2021-07-11T00:40:32.8596341Z | |
2021-07-11T00:40:32.8596684Z try: | |
2021-07-11T00:40:32.8597072Z > _os.unlink(path) | |
2021-07-11T00:40:32.8597898Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8598529Z | |
2021-07-11T00:40:32.8599177Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8599763Z | |
2021-07-11T00:40:32.8600344Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8600837Z | |
2021-07-11T00:40:32.8601430Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8602331Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9E1F0> | |
2021-07-11T00:40:32.8602902Z | |
2021-07-11T00:40:32.8603326Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8603773Z try: | |
2021-07-11T00:40:32.8604223Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8604808Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8605985Z except OSError: | |
2021-07-11T00:40:32.8606548Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8607051Z entries = [] | |
2021-07-11T00:40:32.8607484Z for entry in entries: | |
2021-07-11T00:40:32.8607976Z fullname = entry.path | |
2021-07-11T00:40:32.8608469Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8608870Z try: | |
2021-07-11T00:40:32.8609311Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8609871Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8619396Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8620123Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8620826Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8621513Z except OSError: | |
2021-07-11T00:40:32.8622159Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8622750Z continue | |
2021-07-11T00:40:32.8623262Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8623741Z else: | |
2021-07-11T00:40:32.8624085Z try: | |
2021-07-11T00:40:32.8624527Z os.unlink(fullname) | |
2021-07-11T00:40:32.8624990Z except OSError: | |
2021-07-11T00:40:32.8625567Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8626051Z try: | |
2021-07-11T00:40:32.8626426Z > os.rmdir(path) | |
2021-07-11T00:40:32.8627452Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8628296Z | |
2021-07-11T00:40:32.8628946Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8629495Z | |
2021-07-11T00:40:32.8630088Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8630577Z | |
2021-07-11T00:40:32.8631094Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8631729Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8632948Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADAA40>) | |
2021-07-11T00:40:32.8633814Z | |
2021-07-11T00:40:32.8634237Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8634857Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8635442Z def resetperms(path): | |
2021-07-11T00:40:32.8635871Z try: | |
2021-07-11T00:40:32.8636275Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8636796Z except AttributeError: | |
2021-07-11T00:40:32.8637265Z pass | |
2021-07-11T00:40:32.8637674Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8638051Z | |
2021-07-11T00:40:32.8638359Z try: | |
2021-07-11T00:40:32.8638742Z if path != name: | |
2021-07-11T00:40:32.8639274Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8639842Z resetperms(path) | |
2021-07-11T00:40:32.8640213Z | |
2021-07-11T00:40:32.8640538Z try: | |
2021-07-11T00:40:32.8640976Z > _os.unlink(path) | |
2021-07-11T00:40:32.8641791Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8642422Z | |
2021-07-11T00:40:32.8643077Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8643647Z | |
2021-07-11T00:40:32.8644225Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8644713Z | |
2021-07-11T00:40:32.8645248Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8646406Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9E310> | |
2021-07-11T00:40:32.8646971Z | |
2021-07-11T00:40:32.8647396Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8647857Z try: | |
2021-07-11T00:40:32.8648298Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8648841Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8649304Z except OSError: | |
2021-07-11T00:40:32.8649863Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8650366Z entries = [] | |
2021-07-11T00:40:32.8650795Z for entry in entries: | |
2021-07-11T00:40:32.8651351Z fullname = entry.path | |
2021-07-11T00:40:32.8651845Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8652266Z try: | |
2021-07-11T00:40:32.8652696Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8653271Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8653928Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8654555Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8655201Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8655783Z except OSError: | |
2021-07-11T00:40:32.8656383Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8656965Z continue | |
2021-07-11T00:40:32.8657456Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8657936Z else: | |
2021-07-11T00:40:32.8658294Z try: | |
2021-07-11T00:40:32.8658718Z os.unlink(fullname) | |
2021-07-11T00:40:32.8659195Z except OSError: | |
2021-07-11T00:40:32.8659774Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8660274Z try: | |
2021-07-11T00:40:32.8660637Z > os.rmdir(path) | |
2021-07-11T00:40:32.8661723Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8662558Z | |
2021-07-11T00:40:32.8663186Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8663736Z | |
2021-07-11T00:40:32.8664319Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8664790Z | |
2021-07-11T00:40:32.8665213Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8665863Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8667087Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADAE40>) | |
2021-07-11T00:40:32.8667969Z | |
2021-07-11T00:40:32.8668400Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8669022Z if issubclass(exc_info[0], PermissionError): | |
2021-07-11T00:40:32.8669642Z def resetperms(path): | |
2021-07-11T00:40:32.8670075Z try: | |
2021-07-11T00:40:32.8670491Z _os.chflags(path, 0) | |
2021-07-11T00:40:32.8671065Z except AttributeError: | |
2021-07-11T00:40:32.8671535Z pass | |
2021-07-11T00:40:32.8671957Z _os.chmod(path, 0o700) | |
2021-07-11T00:40:32.8672339Z | |
2021-07-11T00:40:32.8672648Z try: | |
2021-07-11T00:40:32.8673032Z if path != name: | |
2021-07-11T00:40:32.8673583Z resetperms(_os.path.dirname(path)) | |
2021-07-11T00:40:32.8674177Z resetperms(path) | |
2021-07-11T00:40:32.8674564Z | |
2021-07-11T00:40:32.8674896Z try: | |
2021-07-11T00:40:32.8675289Z > _os.unlink(path) | |
2021-07-11T00:40:32.8676102Z E PermissionError: [WinError 5] Access is denied: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8676883Z | |
2021-07-11T00:40:32.8677584Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\tempfile.py:802: PermissionError | |
2021-07-11T00:40:32.8678160Z | |
2021-07-11T00:40:32.8678748Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8679251Z | |
2021-07-11T00:40:32.8679775Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8680672Z onerror = <function TemporaryDirectory._rmtree.<locals>.onerror at 0x00000291FFD9E430> | |
2021-07-11T00:40:32.8681311Z | |
2021-07-11T00:40:32.8681720Z def _rmtree_unsafe(path, onerror): | |
2021-07-11T00:40:32.8682187Z try: | |
2021-07-11T00:40:32.8682629Z with os.scandir(path) as scandir_it: | |
2021-07-11T00:40:32.8683190Z entries = list(scandir_it) | |
2021-07-11T00:40:32.8683672Z except OSError: | |
2021-07-11T00:40:32.8684216Z onerror(os.scandir, path, sys.exc_info()) | |
2021-07-11T00:40:32.8684713Z entries = [] | |
2021-07-11T00:40:32.8685148Z for entry in entries: | |
2021-07-11T00:40:32.8685661Z fullname = entry.path | |
2021-07-11T00:40:32.8686156Z if _rmtree_isdir(entry): | |
2021-07-11T00:40:32.8686573Z try: | |
2021-07-11T00:40:32.8687006Z if entry.is_symlink(): | |
2021-07-11T00:40:32.8687584Z # This can only happen if someone replaces | |
2021-07-11T00:40:32.8688234Z # a directory with a symlink after the call to | |
2021-07-11T00:40:32.8688878Z # os.scandir or entry.is_dir above. | |
2021-07-11T00:40:32.8689520Z raise OSError("Cannot call rmtree on a symbolic link") | |
2021-07-11T00:40:32.8690112Z except OSError: | |
2021-07-11T00:40:32.8690727Z onerror(os.path.islink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8691353Z continue | |
2021-07-11T00:40:32.8691860Z _rmtree_unsafe(fullname, onerror) | |
2021-07-11T00:40:32.8692322Z else: | |
2021-07-11T00:40:32.8692678Z try: | |
2021-07-11T00:40:32.8693090Z os.unlink(fullname) | |
2021-07-11T00:40:32.8693597Z except OSError: | |
2021-07-11T00:40:32.8694158Z onerror(os.unlink, fullname, sys.exc_info()) | |
2021-07-11T00:40:32.8694659Z try: | |
2021-07-11T00:40:32.8695017Z > os.rmdir(path) | |
2021-07-11T00:40:32.8696020Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8696848Z | |
2021-07-11T00:40:32.8697483Z c:\hostedtoolcache\windows\python\3.8.10\x64\lib\shutil.py:620: PermissionError | |
2021-07-11T00:40:32.8698031Z | |
2021-07-11T00:40:32.8698616Z During handling of the above exception, another exception occurred: | |
2021-07-11T00:40:32.8699103Z | |
2021-07-11T00:40:32.8699492Z func = <built-in function rmdir> | |
2021-07-11T00:40:32.8700146Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp5zjzmj6d\\t' | |
2021-07-11T00:40:32.8701400Z exc_info = (<class 'PermissionError'>, PermissionError(13, 'The process cannot access the file because it is being used by another process'), <traceback object at 0x00000291FFADAAC0>) | |
2021-07-11T00:40:32.8702271Z | |
2021-07-11T00:40:32.8702689Z def onerror(func, path, exc_info): | |
2021-07-11T00:40:32.8703295Z if issubclass(exc_info[0], PermissionError |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment