Skip to content

Instantly share code, notes, and snippets.

@simonw

simonw/raw.log Secret

Created July 11, 2021 01:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonw/2900ef33693c1bbda09188eb31c8212d to your computer and use it in GitHub Desktop.
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.
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 pip install -e '.[test]'
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 pytest -n auto -m "not serial"
2021-07-10T23:49:47.6841603Z pytest -m "serial"
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