Skip to content

Instantly share code, notes, and snippets.

@simonw

simonw/log.log Secret

Created Jul 11, 2021
Embed
What would you like to do?
2021-07-11T01:33:24.6523019Z Found online and idle hosted runner(s) in the current repository's organization account that matches the required labels: 'windows-latest'
2021-07-11T01:33:24.6523075Z Waiting for a hosted runner in 'organization' to pick this job...
2021-07-11T01:33:33.2631120Z Current runner version: '2.278.0'
2021-07-11T01:33:33.2871347Z ##[group]Operating System
2021-07-11T01:33:33.2872225Z Microsoft Windows Server 2019
2021-07-11T01:33:33.2872652Z 10.0.17763
2021-07-11T01:33:33.2873062Z Datacenter
2021-07-11T01:33:33.2873486Z ##[endgroup]
2021-07-11T01:33:33.2873979Z ##[group]Virtual Environment
2021-07-11T01:33:33.2874520Z Environment: windows-2019
2021-07-11T01:33:33.2875010Z Version: 20210628.1
2021-07-11T01:33:33.2875902Z Included Software: https://github.com/actions/virtual-environments/blob/win19/20210628.1/images/win/Windows2019-Readme.md
2021-07-11T01:33:33.2877096Z Image Release: https://github.com/actions/virtual-environments/releases/tag/win19%2F20210628.1
2021-07-11T01:33:33.2877861Z ##[endgroup]
2021-07-11T01:33:33.2879671Z ##[group]GITHUB_TOKEN Permissions
2021-07-11T01:33:33.2880738Z Actions: write
2021-07-11T01:33:33.2881190Z Checks: write
2021-07-11T01:33:33.2881597Z Contents: write
2021-07-11T01:33:33.2882185Z Deployments: write
2021-07-11T01:33:33.2882691Z Discussions: write
2021-07-11T01:33:33.2883154Z Issues: write
2021-07-11T01:33:33.2883556Z Metadata: read
2021-07-11T01:33:33.2884019Z Packages: write
2021-07-11T01:33:33.2884478Z PullRequests: write
2021-07-11T01:33:33.2885039Z RepositoryProjects: write
2021-07-11T01:33:33.2885572Z SecurityEvents: write
2021-07-11T01:33:33.2886066Z Statuses: write
2021-07-11T01:33:33.2886594Z ##[endgroup]
2021-07-11T01:33:33.2889426Z Prepare workflow directory
2021-07-11T01:33:33.3575364Z Prepare all required actions
2021-07-11T01:33:33.3585723Z Getting action download info
2021-07-11T01:33:33.7001415Z Download action repository 'actions/checkout@v2'
2021-07-11T01:33:34.5363832Z Download action repository 'actions/setup-python@v2'
2021-07-11T01:33:34.7934038Z Download action repository 'actions/cache@v2'
2021-07-11T01:33:35.7728426Z ##[group]Run actions/checkout@v2
2021-07-11T01:33:35.7729125Z with:
2021-07-11T01:33:35.7729565Z repository: simonw/datasette
2021-07-11T01:33:35.7730489Z token: ***
2021-07-11T01:33:35.7730923Z ssh-strict: true
2021-07-11T01:33:35.7731460Z persist-credentials: true
2021-07-11T01:33:35.7731945Z clean: true
2021-07-11T01:33:35.7732339Z fetch-depth: 1
2021-07-11T01:33:35.7732741Z lfs: false
2021-07-11T01:33:35.7733131Z submodules: false
2021-07-11T01:33:35.7733553Z ##[endgroup]
2021-07-11T01:33:38.2088535Z Syncing repository: simonw/datasette
2021-07-11T01:33:38.2301241Z ##[group]Getting Git version info
2021-07-11T01:33:38.2302300Z Working directory is 'D:\a\datasette\datasette'
2021-07-11T01:33:38.2596547Z [command]"C:\Program Files\Git\bin\git.exe" version
2021-07-11T01:33:38.2781586Z git version 2.32.0.windows.1
2021-07-11T01:33:38.2824465Z ##[endgroup]
2021-07-11T01:33:38.2829880Z Deleting the contents of 'D:\a\datasette\datasette'
2021-07-11T01:33:38.2834047Z ##[group]Initializing the repository
2021-07-11T01:33:38.2843845Z [command]"C:\Program Files\Git\bin\git.exe" init D:\a\datasette\datasette
2021-07-11T01:33:38.4523279Z Initialized empty Git repository in D:/a/datasette/datasette/.git/
2021-07-11T01:33:38.4573403Z [command]"C:\Program Files\Git\bin\git.exe" remote add origin https://github.com/simonw/datasette
2021-07-11T01:33:38.5019383Z ##[endgroup]
2021-07-11T01:33:38.5020392Z ##[group]Disabling automatic garbage collection
2021-07-11T01:33:38.5045809Z [command]"C:\Program Files\Git\bin\git.exe" config --local gc.auto 0
2021-07-11T01:33:38.5544584Z ##[endgroup]
2021-07-11T01:33:38.5582695Z ##[group]Setting up auth
2021-07-11T01:33:38.5584287Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp core\.sshCommand
2021-07-11T01:33:38.5791205Z [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-11T01:33:40.4690056Z [command]"C:\Program Files\Git\bin\git.exe" config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader
2021-07-11T01:33:40.4898505Z [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-11T01:33:40.9059645Z [command]"C:\Program Files\Git\bin\git.exe" config --local http.https://github.com/.extraheader "AUTHORIZATION: basic ***"
2021-07-11T01:33:40.9297088Z ##[endgroup]
2021-07-11T01:33:40.9300916Z ##[group]Fetching the repository
2021-07-11T01:33:40.9311979Z [command]"C:\Program Files\Git\bin\git.exe" -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +b990abf1e045887f59f664e80d1c4f22cff2b781:refs/remotes/origin/windows-github-actions
2021-07-11T01:33:42.5265252Z remote: Enumerating objects: 203, done.
2021-07-11T01:33:42.5270227Z remote: Counting objects: 0% (1/203)
2021-07-11T01:33:42.5271161Z remote: Counting objects: 1% (3/203)
2021-07-11T01:33:42.5271654Z remote: Counting objects: 2% (5/203)
2021-07-11T01:33:42.5273136Z remote: Counting objects: 3% (7/203)
2021-07-11T01:33:42.5274722Z remote: Counting objects: 4% (9/203)
2021-07-11T01:33:42.5276931Z remote: Counting objects: 5% (11/203)
2021-07-11T01:33:42.5277478Z remote: Counting objects: 6% (13/203)
2021-07-11T01:33:42.5277944Z remote: Counting objects: 7% (15/203)
2021-07-11T01:33:42.5278407Z remote: Counting objects: 8% (17/203)
2021-07-11T01:33:42.5278849Z remote: Counting objects: 9% (19/203)
2021-07-11T01:33:42.5279309Z remote: Counting objects: 10% (21/203)
2021-07-11T01:33:42.5280836Z remote: Counting objects: 11% (23/203)
2021-07-11T01:33:42.5284456Z remote: Counting objects: 12% (25/203)
2021-07-11T01:33:42.5285897Z remote: Counting objects: 13% (27/203)
2021-07-11T01:33:42.5287615Z remote: Counting objects: 14% (29/203)
2021-07-11T01:33:42.5288181Z remote: Counting objects: 15% (31/203)
2021-07-11T01:33:42.5288643Z remote: Counting objects: 16% (33/203)
2021-07-11T01:33:42.5289102Z remote: Counting objects: 17% (35/203)
2021-07-11T01:33:42.5291099Z remote: Counting objects: 18% (37/203)
2021-07-11T01:33:42.5291587Z remote: Counting objects: 19% (39/203)
2021-07-11T01:33:42.5293012Z remote: Counting objects: 20% (41/203)
2021-07-11T01:33:42.5293482Z remote: Counting objects: 21% (43/203)
2021-07-11T01:33:42.5294990Z remote: Counting objects: 22% (45/203)
2021-07-11T01:33:42.5295479Z remote: Counting objects: 23% (47/203)
2021-07-11T01:33:42.5295925Z remote: Counting objects: 24% (49/203)
2021-07-11T01:33:42.5296399Z remote: Counting objects: 25% (51/203)
2021-07-11T01:33:42.5296940Z remote: Counting objects: 26% (53/203)
2021-07-11T01:33:42.5298174Z remote: Counting objects: 27% (55/203)
2021-07-11T01:33:42.5298671Z remote: Counting objects: 28% (57/203)
2021-07-11T01:33:42.5299116Z remote: Counting objects: 29% (59/203)
2021-07-11T01:33:42.5299578Z remote: Counting objects: 30% (61/203)
2021-07-11T01:33:42.5300777Z remote: Counting objects: 31% (63/203)
2021-07-11T01:33:42.5301375Z remote: Counting objects: 32% (65/203)
2021-07-11T01:33:42.5301838Z remote: Counting objects: 33% (67/203)
2021-07-11T01:33:42.5302281Z remote: Counting objects: 34% (70/203)
2021-07-11T01:33:42.5303300Z remote: Counting objects: 35% (72/203)
2021-07-11T01:33:42.5303806Z remote: Counting objects: 36% (74/203)
2021-07-11T01:33:42.5304265Z remote: Counting objects: 37% (76/203)
2021-07-11T01:33:42.5304723Z remote: Counting objects: 38% (78/203)
2021-07-11T01:33:42.5305175Z remote: Counting objects: 39% (80/203)
2021-07-11T01:33:42.5305615Z remote: Counting objects: 40% (82/203)
2021-07-11T01:33:42.5307972Z remote: Counting objects: 41% (84/203)
2021-07-11T01:33:42.5310103Z remote: Counting objects: 42% (86/203)
2021-07-11T01:33:42.5310647Z remote: Counting objects: 43% (88/203)
2021-07-11T01:33:42.5311110Z remote: Counting objects: 44% (90/203)
2021-07-11T01:33:42.5311554Z remote: Counting objects: 45% (92/203)
2021-07-11T01:33:42.5312008Z remote: Counting objects: 46% (94/203)
2021-07-11T01:33:42.5313442Z remote: Counting objects: 47% (96/203)
2021-07-11T01:33:42.5314578Z remote: Counting objects: 48% (98/203)
2021-07-11T01:33:42.5315038Z remote: Counting objects: 49% (100/203)
2021-07-11T01:33:42.5316208Z remote: Counting objects: 50% (102/203)
2021-07-11T01:33:42.5317364Z remote: Counting objects: 51% (104/203)
2021-07-11T01:33:42.5317929Z remote: Counting objects: 52% (106/203)
2021-07-11T01:33:42.5319024Z remote: Counting objects: 53% (108/203)
2021-07-11T01:33:42.5320521Z remote: Counting objects: 54% (110/203)
2021-07-11T01:33:42.5321047Z remote: Counting objects: 55% (112/203)
2021-07-11T01:33:42.5321497Z remote: Counting objects: 56% (114/203)
2021-07-11T01:33:42.5321953Z remote: Counting objects: 57% (116/203)
2021-07-11T01:33:42.5322393Z remote: Counting objects: 58% (118/203)
2021-07-11T01:33:42.5322853Z remote: Counting objects: 59% (120/203)
2021-07-11T01:33:42.5324202Z remote: Counting objects: 60% (122/203)
2021-07-11T01:33:42.5326126Z remote: Counting objects: 61% (124/203)
2021-07-11T01:33:42.5328058Z remote: Counting objects: 62% (126/203)
2021-07-11T01:33:42.5328629Z remote: Counting objects: 63% (128/203)
2021-07-11T01:33:42.5329868Z remote: Counting objects: 64% (130/203)
2021-07-11T01:33:42.5331360Z remote: Counting objects: 65% (132/203)
2021-07-11T01:33:42.5332504Z remote: Counting objects: 66% (134/203)
2021-07-11T01:33:42.5332972Z remote: Counting objects: 67% (137/203)
2021-07-11T01:33:42.5334266Z remote: Counting objects: 68% (139/203)
2021-07-11T01:33:42.5335358Z remote: Counting objects: 69% (141/203)
2021-07-11T01:33:42.5335867Z remote: Counting objects: 70% (143/203)
2021-07-11T01:33:42.5337040Z remote: Counting objects: 71% (145/203)
2021-07-11T01:33:42.5338472Z remote: Counting objects: 72% (147/203)
2021-07-11T01:33:42.5339696Z remote: Counting objects: 73% (149/203)
2021-07-11T01:33:42.5340159Z remote: Counting objects: 74% (151/203)
2021-07-11T01:33:42.5340622Z remote: Counting objects: 75% (153/203)
2021-07-11T01:33:42.5341925Z remote: Counting objects: 76% (155/203)
2021-07-11T01:33:42.5343033Z remote: Counting objects: 77% (157/203)
2021-07-11T01:33:42.5343524Z remote: Counting objects: 78% (159/203)
2021-07-11T01:33:42.5344792Z remote: Counting objects: 79% (161/203)
2021-07-11T01:33:42.5345870Z remote: Counting objects: 80% (163/203)
2021-07-11T01:33:42.5347285Z remote: Counting objects: 81% (165/203)
2021-07-11T01:33:42.5347781Z remote: Counting objects: 82% (167/203)
2021-07-11T01:33:42.5348952Z remote: Counting objects: 83% (169/203)
2021-07-11T01:33:42.5350506Z remote: Counting objects: 84% (171/203)
2021-07-11T01:33:42.5352355Z remote: Counting objects: 85% (173/203)
2021-07-11T01:33:42.5352953Z remote: Counting objects: 86% (175/203)
2021-07-11T01:33:42.5353409Z remote: Counting objects: 87% (177/203)
2021-07-11T01:33:42.5353875Z remote: Counting objects: 88% (179/203)
2021-07-11T01:33:42.5354321Z remote: Counting objects: 89% (181/203)
2021-07-11T01:33:42.5356311Z remote: Counting objects: 90% (183/203)
2021-07-11T01:33:42.5356990Z remote: Counting objects: 91% (185/203)
2021-07-11T01:33:42.5357446Z remote: Counting objects: 92% (187/203)
2021-07-11T01:33:42.5357916Z remote: Counting objects: 93% (189/203)
2021-07-11T01:33:42.5360930Z remote: Counting objects: 94% (191/203)
2021-07-11T01:33:42.5361448Z remote: Counting objects: 95% (193/203)
2021-07-11T01:33:42.5362927Z remote: Counting objects: 96% (195/203)
2021-07-11T01:33:42.5363398Z remote: Counting objects: 97% (197/203)
2021-07-11T01:33:42.5363861Z remote: Counting objects: 98% (199/203)
2021-07-11T01:33:42.5364306Z remote: Counting objects: 99% (201/203)
2021-07-11T01:33:42.5364766Z remote: Counting objects: 100% (203/203)
2021-07-11T01:33:42.5366958Z remote: Counting objects: 100% (203/203), done.
2021-07-11T01:33:42.5367524Z remote: Compressing objects: 0% (1/180)
2021-07-11T01:33:42.5368049Z remote: Compressing objects: 1% (2/180)
2021-07-11T01:33:42.5369289Z remote: Compressing objects: 2% (4/180)
2021-07-11T01:33:42.5369809Z remote: Compressing objects: 3% (6/180)
2021-07-11T01:33:42.5370314Z remote: Compressing objects: 4% (8/180)
2021-07-11T01:33:42.5373645Z remote: Compressing objects: 5% (9/180)
2021-07-11T01:33:42.5374154Z remote: Compressing objects: 6% (11/180)
2021-07-11T01:33:42.5375587Z remote: Compressing objects: 7% (13/180)
2021-07-11T01:33:42.5378417Z remote: Compressing objects: 8% (15/180)
2021-07-11T01:33:42.5378952Z remote: Compressing objects: 9% (17/180)
2021-07-11T01:33:42.5379458Z remote: Compressing objects: 10% (18/180)
2021-07-11T01:33:42.5380733Z remote: Compressing objects: 11% (20/180)
2021-07-11T01:33:42.5381277Z remote: Compressing objects: 12% (22/180)
2021-07-11T01:33:42.5383231Z remote: Compressing objects: 13% (24/180)
2021-07-11T01:33:42.5385059Z remote: Compressing objects: 14% (26/180)
2021-07-11T01:33:42.5386287Z remote: Compressing objects: 15% (27/180)
2021-07-11T01:33:42.5386846Z remote: Compressing objects: 16% (29/180)
2021-07-11T01:33:42.5387351Z remote: Compressing objects: 17% (31/180)
2021-07-11T01:33:42.5387850Z remote: Compressing objects: 18% (33/180)
2021-07-11T01:33:42.5388358Z remote: Compressing objects: 19% (35/180)
2021-07-11T01:33:42.5388841Z remote: Compressing objects: 20% (36/180)
2021-07-11T01:33:42.5389343Z remote: Compressing objects: 21% (38/180)
2021-07-11T01:33:42.5389824Z remote: Compressing objects: 22% (40/180)
2021-07-11T01:33:42.5390320Z remote: Compressing objects: 23% (42/180)
2021-07-11T01:33:42.5390805Z remote: Compressing objects: 24% (44/180)
2021-07-11T01:33:42.5391301Z remote: Compressing objects: 25% (45/180)
2021-07-11T01:33:42.5391789Z remote: Compressing objects: 26% (47/180)
2021-07-11T01:33:42.5392282Z remote: Compressing objects: 27% (49/180)
2021-07-11T01:33:42.5392777Z remote: Compressing objects: 28% (51/180)
2021-07-11T01:33:42.5393255Z remote: Compressing objects: 29% (53/180)
2021-07-11T01:33:42.5393752Z remote: Compressing objects: 30% (54/180)
2021-07-11T01:33:42.5394230Z remote: Compressing objects: 31% (56/180)
2021-07-11T01:33:42.5394726Z remote: Compressing objects: 32% (58/180)
2021-07-11T01:33:42.5395206Z remote: Compressing objects: 33% (60/180)
2021-07-11T01:33:42.5395696Z remote: Compressing objects: 34% (62/180)
2021-07-11T01:33:42.5396989Z remote: Compressing objects: 35% (63/180)
2021-07-11T01:33:42.5397577Z remote: Compressing objects: 36% (65/180)
2021-07-11T01:33:42.5398093Z remote: Compressing objects: 37% (67/180)
2021-07-11T01:33:42.5398579Z remote: Compressing objects: 38% (69/180)
2021-07-11T01:33:42.5399097Z remote: Compressing objects: 39% (71/180)
2021-07-11T01:33:42.5399579Z remote: Compressing objects: 40% (72/180)
2021-07-11T01:33:42.5400073Z remote: Compressing objects: 41% (74/180)
2021-07-11T01:33:42.5400668Z remote: Compressing objects: 42% (76/180)
2021-07-11T01:33:42.5401988Z remote: Compressing objects: 43% (78/180)
2021-07-11T01:33:42.5402499Z remote: Compressing objects: 44% (80/180)
2021-07-11T01:33:42.5403001Z remote: Compressing objects: 45% (81/180)
2021-07-11T01:33:42.5403504Z remote: Compressing objects: 46% (83/180)
2021-07-11T01:33:42.5403989Z remote: Compressing objects: 47% (85/180)
2021-07-11T01:33:42.5405853Z remote: Compressing objects: 48% (87/180)
2021-07-11T01:33:42.5407432Z remote: Compressing objects: 49% (89/180)
2021-07-11T01:33:42.5407963Z remote: Compressing objects: 50% (90/180)
2021-07-11T01:33:42.5408456Z remote: Compressing objects: 51% (92/180)
2021-07-11T01:33:42.5410261Z remote: Compressing objects: 52% (94/180)
2021-07-11T01:33:42.5412249Z remote: Compressing objects: 53% (96/180)
2021-07-11T01:33:42.5413335Z remote: Compressing objects: 54% (98/180)
2021-07-11T01:33:42.5413894Z remote: Compressing objects: 55% (99/180)
2021-07-11T01:33:42.5415723Z remote: Compressing objects: 56% (101/180)
2021-07-11T01:33:42.5416275Z remote: Compressing objects: 57% (103/180)
2021-07-11T01:33:42.5416807Z remote: Compressing objects: 58% (105/180)
2021-07-11T01:33:42.5417309Z remote: Compressing objects: 59% (107/180)
2021-07-11T01:33:42.5417793Z remote: Compressing objects: 60% (108/180)
2021-07-11T01:33:42.5418288Z remote: Compressing objects: 61% (110/180)
2021-07-11T01:33:42.5418773Z remote: Compressing objects: 62% (112/180)
2021-07-11T01:33:42.5419273Z remote: Compressing objects: 63% (114/180)
2021-07-11T01:33:42.5420896Z remote: Compressing objects: 64% (116/180)
2021-07-11T01:33:42.5421422Z remote: Compressing objects: 65% (117/180)
2021-07-11T01:33:42.5422898Z remote: Compressing objects: 66% (119/180)
2021-07-11T01:33:42.5425468Z remote: Compressing objects: 67% (121/180)
2021-07-11T01:33:42.5427285Z remote: Compressing objects: 68% (123/180)
2021-07-11T01:33:42.5427849Z remote: Compressing objects: 69% (125/180)
2021-07-11T01:33:42.5428355Z remote: Compressing objects: 70% (126/180)
2021-07-11T01:33:42.5429580Z remote: Compressing objects: 71% (128/180)
2021-07-11T01:33:42.5430094Z remote: Compressing objects: 72% (130/180)
2021-07-11T01:33:42.5430595Z remote: Compressing objects: 73% (132/180)
2021-07-11T01:33:42.5432275Z remote: Compressing objects: 74% (134/180)
2021-07-11T01:33:42.5432808Z remote: Compressing objects: 75% (135/180)
2021-07-11T01:33:42.5433295Z remote: Compressing objects: 76% (137/180)
2021-07-11T01:33:42.5436518Z remote: Compressing objects: 77% (139/180)
2021-07-11T01:33:42.5437093Z remote: Compressing objects: 78% (141/180)
2021-07-11T01:33:42.5437592Z remote: Compressing objects: 79% (143/180)
2021-07-11T01:33:42.5438084Z remote: Compressing objects: 80% (144/180)
2021-07-11T01:33:42.5439163Z remote: Compressing objects: 81% (146/180)
2021-07-11T01:33:42.5440225Z remote: Compressing objects: 82% (148/180)
2021-07-11T01:33:42.5440864Z remote: Compressing objects: 83% (150/180)
2021-07-11T01:33:42.5441369Z remote: Compressing objects: 84% (152/180)
2021-07-11T01:33:42.5441853Z remote: Compressing objects: 85% (153/180)
2021-07-11T01:33:42.5442349Z remote: Compressing objects: 86% (155/180)
2021-07-11T01:33:42.5442834Z remote: Compressing objects: 87% (157/180)
2021-07-11T01:33:42.5443533Z remote: Compressing objects: 88% (159/180)
2021-07-11T01:33:42.5448752Z remote: Compressing objects: 89% (161/180)
2021-07-11T01:33:42.5449298Z remote: Compressing objects: 90% (162/180)
2021-07-11T01:33:42.5449814Z remote: Compressing objects: 91% (164/180)
2021-07-11T01:33:42.5452023Z remote: Compressing objects: 92% (166/180)
2021-07-11T01:33:42.5452679Z remote: Compressing objects: 93% (168/180)
2021-07-11T01:33:42.5454108Z remote: Compressing objects: 94% (170/180)
2021-07-11T01:33:42.5454656Z remote: Compressing objects: 95% (171/180)
2021-07-11T01:33:42.5455152Z remote: Compressing objects: 96% (173/180)
2021-07-11T01:33:42.5455657Z remote: Compressing objects: 97% (175/180)
2021-07-11T01:33:42.5456135Z remote: Compressing objects: 98% (177/180)
2021-07-11T01:33:42.5456633Z remote: Compressing objects: 99% (179/180)
2021-07-11T01:33:42.5457131Z remote: Compressing objects: 100% (180/180)
2021-07-11T01:33:42.5457674Z remote: Compressing objects: 100% (180/180), done.
2021-07-11T01:33:42.5458165Z Receiving objects: 0% (1/203)
2021-07-11T01:33:42.5458567Z Receiving objects: 1% (3/203)
2021-07-11T01:33:42.5458976Z Receiving objects: 2% (5/203)
2021-07-11T01:33:42.5459374Z Receiving objects: 3% (7/203)
2021-07-11T01:33:42.5459790Z Receiving objects: 4% (9/203)
2021-07-11T01:33:42.5460186Z Receiving objects: 5% (11/203)
2021-07-11T01:33:42.5460593Z Receiving objects: 6% (13/203)
2021-07-11T01:33:42.5460989Z Receiving objects: 7% (15/203)
2021-07-11T01:33:42.5461389Z Receiving objects: 8% (17/203)
2021-07-11T01:33:42.5461801Z Receiving objects: 9% (19/203)
2021-07-11T01:33:42.5462195Z Receiving objects: 10% (21/203)
2021-07-11T01:33:42.5462605Z Receiving objects: 11% (23/203)
2021-07-11T01:33:42.5463000Z Receiving objects: 12% (25/203)
2021-07-11T01:33:42.5463401Z Receiving objects: 13% (27/203)
2021-07-11T01:33:42.5463799Z Receiving objects: 14% (29/203)
2021-07-11T01:33:42.5464204Z Receiving objects: 15% (31/203)
2021-07-11T01:33:42.5465017Z Receiving objects: 16% (33/203)
2021-07-11T01:33:42.5465450Z Receiving objects: 17% (35/203)
2021-07-11T01:33:42.5465847Z Receiving objects: 18% (37/203)
2021-07-11T01:33:42.5466258Z Receiving objects: 19% (39/203)
2021-07-11T01:33:42.5466740Z Receiving objects: 20% (41/203)
2021-07-11T01:33:42.5467151Z Receiving objects: 21% (43/203)
2021-07-11T01:33:42.5467543Z Receiving objects: 22% (45/203)
2021-07-11T01:33:42.5467947Z Receiving objects: 23% (47/203)
2021-07-11T01:33:42.5468342Z Receiving objects: 24% (49/203)
2021-07-11T01:33:42.5468746Z Receiving objects: 25% (51/203)
2021-07-11T01:33:42.5469135Z Receiving objects: 26% (53/203)
2021-07-11T01:33:42.5469538Z Receiving objects: 27% (55/203)
2021-07-11T01:33:42.5469929Z Receiving objects: 28% (57/203)
2021-07-11T01:33:42.5470337Z Receiving objects: 29% (59/203)
2021-07-11T01:33:42.5470728Z Receiving objects: 30% (61/203)
2021-07-11T01:33:42.5471133Z Receiving objects: 31% (63/203)
2021-07-11T01:33:42.5471524Z Receiving objects: 32% (65/203)
2021-07-11T01:33:42.5471934Z Receiving objects: 33% (67/203)
2021-07-11T01:33:42.5472338Z Receiving objects: 34% (70/203)
2021-07-11T01:33:42.5472728Z Receiving objects: 35% (72/203)
2021-07-11T01:33:42.5473134Z Receiving objects: 36% (74/203)
2021-07-11T01:33:42.5473527Z Receiving objects: 37% (76/203)
2021-07-11T01:33:42.5473928Z Receiving objects: 38% (78/203)
2021-07-11T01:33:42.5478446Z Receiving objects: 39% (80/203)
2021-07-11T01:33:42.5479018Z Receiving objects: 40% (82/203)
2021-07-11T01:33:42.5479512Z Receiving objects: 41% (84/203)
2021-07-11T01:33:42.5479988Z Receiving objects: 42% (86/203)
2021-07-11T01:33:42.5480475Z Receiving objects: 43% (88/203)
2021-07-11T01:33:42.5480942Z Receiving objects: 44% (90/203)
2021-07-11T01:33:42.5481420Z Receiving objects: 45% (92/203)
2021-07-11T01:33:42.5481897Z Receiving objects: 46% (94/203)
2021-07-11T01:33:42.5482357Z Receiving objects: 47% (96/203)
2021-07-11T01:33:42.5482845Z Receiving objects: 48% (98/203)
2021-07-11T01:33:42.5483329Z Receiving objects: 49% (100/203)
2021-07-11T01:33:42.5483815Z Receiving objects: 50% (102/203)
2021-07-11T01:33:42.5484289Z Receiving objects: 51% (104/203)
2021-07-11T01:33:42.5484881Z Receiving objects: 52% (106/203)
2021-07-11T01:33:42.5485360Z Receiving objects: 53% (108/203)
2021-07-11T01:33:42.5485826Z Receiving objects: 54% (110/203)
2021-07-11T01:33:42.5486311Z Receiving objects: 55% (112/203)
2021-07-11T01:33:42.5486822Z Receiving objects: 56% (114/203)
2021-07-11T01:33:42.5487290Z Receiving objects: 57% (116/203)
2021-07-11T01:33:42.5487769Z Receiving objects: 58% (118/203)
2021-07-11T01:33:42.5488233Z Receiving objects: 59% (120/203)
2021-07-11T01:33:42.5488715Z Receiving objects: 60% (122/203)
2021-07-11T01:33:42.5489191Z Receiving objects: 61% (124/203)
2021-07-11T01:33:42.5489652Z Receiving objects: 62% (126/203)
2021-07-11T01:33:42.5490124Z Receiving objects: 63% (128/203)
2021-07-11T01:33:42.5490585Z Receiving objects: 64% (130/203)
2021-07-11T01:33:42.5491074Z Receiving objects: 65% (132/203)
2021-07-11T01:33:42.5491548Z Receiving objects: 66% (134/203)
2021-07-11T01:33:42.5492006Z Receiving objects: 67% (137/203)
2021-07-11T01:33:42.5492484Z Receiving objects: 68% (139/203)
2021-07-11T01:33:42.5492945Z Receiving objects: 69% (141/203)
2021-07-11T01:33:42.5493426Z Receiving objects: 70% (143/203)
2021-07-11T01:33:42.5493899Z Receiving objects: 71% (145/203)
2021-07-11T01:33:42.5494362Z Receiving objects: 72% (147/203)
2021-07-11T01:33:42.5494840Z Receiving objects: 73% (149/203)
2021-07-11T01:33:42.5495307Z Receiving objects: 74% (151/203)
2021-07-11T01:33:42.5495790Z Receiving objects: 75% (153/203)
2021-07-11T01:33:42.5496262Z Receiving objects: 76% (155/203)
2021-07-11T01:33:42.5496744Z Receiving objects: 77% (157/203)
2021-07-11T01:33:42.5497219Z Receiving objects: 78% (159/203)
2021-07-11T01:33:42.5497679Z Receiving objects: 79% (161/203)
2021-07-11T01:33:42.5498153Z Receiving objects: 80% (163/203)
2021-07-11T01:33:42.5498725Z Receiving objects: 81% (165/203)
2021-07-11T01:33:42.5499198Z Receiving objects: 82% (167/203)
2021-07-11T01:33:42.5499673Z Receiving objects: 83% (169/203)
2021-07-11T01:33:42.5500142Z Receiving objects: 84% (171/203)
2021-07-11T01:33:42.5500618Z Receiving objects: 85% (173/203)
2021-07-11T01:33:42.5501096Z Receiving objects: 86% (175/203)
2021-07-11T01:33:42.5501557Z Receiving objects: 87% (177/203)
2021-07-11T01:33:42.5502035Z Receiving objects: 88% (179/203)
2021-07-11T01:33:42.5502500Z Receiving objects: 89% (181/203)
2021-07-11T01:33:42.5503086Z remote: Total 203 (delta 11), reused 87 (delta 3), pack-reused 0
2021-07-11T01:33:42.5503667Z Receiving objects: 90% (183/203)
2021-07-11T01:33:42.5504217Z Receiving objects: 91% (185/203)
2021-07-11T01:33:42.5504630Z Receiving objects: 92% (187/203)
2021-07-11T01:33:42.5505022Z Receiving objects: 93% (189/203)
2021-07-11T01:33:42.5505431Z Receiving objects: 94% (191/203)
2021-07-11T01:33:42.5505826Z Receiving objects: 95% (193/203)
2021-07-11T01:33:42.5506237Z Receiving objects: 96% (195/203)
2021-07-11T01:33:42.5506654Z Receiving objects: 97% (197/203)
2021-07-11T01:33:42.5507064Z Receiving objects: 98% (199/203)
2021-07-11T01:33:42.5507474Z Receiving objects: 99% (201/203)
2021-07-11T01:33:42.5507862Z Receiving objects: 100% (203/203)
2021-07-11T01:33:42.5508331Z Receiving objects: 100% (203/203), 610.31 KiB | 11.10 MiB/s, done.
2021-07-11T01:33:42.5508776Z Resolving deltas: 0% (0/11)
2021-07-11T01:33:42.5509170Z Resolving deltas: 9% (1/11)
2021-07-11T01:33:42.5509549Z Resolving deltas: 18% (2/11)
2021-07-11T01:33:42.5510045Z Resolving deltas: 27% (3/11)
2021-07-11T01:33:42.5510489Z Resolving deltas: 36% (4/11)
2021-07-11T01:33:42.5510952Z Resolving deltas: 45% (5/11)
2021-07-11T01:33:42.5511418Z Resolving deltas: 54% (6/11)
2021-07-11T01:33:42.5511862Z Resolving deltas: 63% (7/11)
2021-07-11T01:33:42.5512327Z Resolving deltas: 72% (8/11)
2021-07-11T01:33:42.5512784Z Resolving deltas: 81% (9/11)
2021-07-11T01:33:42.5513253Z Resolving deltas: 90% (10/11)
2021-07-11T01:33:42.5513720Z Resolving deltas: 100% (11/11)
2021-07-11T01:33:42.5514195Z Resolving deltas: 100% (11/11), done.
2021-07-11T01:33:42.5964295Z From https://github.com/simonw/datasette
2021-07-11T01:33:42.5965655Z * [new ref] b990abf1e045887f59f664e80d1c4f22cff2b781 -> origin/windows-github-actions
2021-07-11T01:33:42.6119803Z ##[endgroup]
2021-07-11T01:33:42.6120727Z ##[group]Determining the checkout info
2021-07-11T01:33:42.6121789Z ##[endgroup]
2021-07-11T01:33:42.6122336Z ##[group]Checking out the ref
2021-07-11T01:33:42.6133261Z [command]"C:\Program Files\Git\bin\git.exe" checkout --progress --force -B windows-github-actions refs/remotes/origin/windows-github-actions
2021-07-11T01:33:42.7209613Z Branch 'windows-github-actions' set up to track remote branch 'windows-github-actions' from 'origin'.
2021-07-11T01:33:42.7212622Z Switched to a new branch 'windows-github-actions'
2021-07-11T01:33:42.7251248Z ##[endgroup]
2021-07-11T01:33:42.7502960Z [command]"C:\Program Files\Git\bin\git.exe" log -1 --format='%H'
2021-07-11T01:33:42.7681970Z 'b990abf1e045887f59f664e80d1c4f22cff2b781'
2021-07-11T01:33:42.8025562Z ##[group]Run actions/setup-python@v2
2021-07-11T01:33:42.8026065Z with:
2021-07-11T01:33:42.8026417Z python-version: 3.6
2021-07-11T01:33:42.8027362Z token: ***
2021-07-11T01:33:42.8027687Z ##[endgroup]
2021-07-11T01:33:42.8988861Z Successfully setup CPython (3.6.8)
2021-07-11T01:33:43.0742926Z ##[group]Run actions/cache@v2
2021-07-11T01:33:43.0743376Z with:
2021-07-11T01:33:43.0743686Z path: ~/.cache/pip
2021-07-11T01:33:43.0744864Z key: Windows-pip-5fb95955e4801facaf1a888a36a1e6fe50d07529b2102fa1a054765c07aa87ca
2021-07-11T01:33:43.0746140Z restore-keys: Windows-pip-
2021-07-11T01:33:43.0746533Z env:
2021-07-11T01:33:43.0747139Z pythonLocation: C:\hostedtoolcache\windows\Python\3.6.8\x64
2021-07-11T01:33:43.0747645Z ##[endgroup]
2021-07-11T01:33:43.8037126Z Received 30 of 30 (100.0%), 0.0 MBs/sec
2021-07-11T01:33:43.8039021Z Cache Size: ~0 MB (30 B)
2021-07-11T01:33:43.8056977Z [command]C:\Windows\System32\tar.exe -z -xf D:/a/_temp/1853589a-62c3-4cd5-8d60-9dd9e8ed2836/cache.tgz -P -C D:/a/datasette/datasette
2021-07-11T01:33:43.8155135Z Cache restored successfully
2021-07-11T01:33:43.9055597Z Cache restored from key: Windows-pip-5fb95955e4801facaf1a888a36a1e6fe50d07529b2102fa1a054765c07aa87ca
2021-07-11T01:33:43.9312782Z ##[group]Run pip install -e '.[test]'
2021-07-11T01:33:43.9313415Z pip install -e '.[test]'
2021-07-11T01:33:43.9359141Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
2021-07-11T01:33:43.9359688Z env:
2021-07-11T01:33:43.9360215Z pythonLocation: C:\hostedtoolcache\windows\Python\3.6.8\x64
2021-07-11T01:33:43.9360889Z ##[endgroup]
2021-07-11T01:33:51.2134070Z Obtaining file:///D:/a/datasette/datasette
2021-07-11T01:33:53.7248412Z Collecting asgiref<3.4.0,>=3.2.10
2021-07-11T01:33:53.7926772Z Downloading asgiref-3.3.4-py3-none-any.whl (22 kB)
2021-07-11T01:33:54.0029151Z Collecting click<8.1.0,>=7.1.1
2021-07-11T01:33:54.0113367Z Downloading click-8.0.1-py3-none-any.whl (97 kB)
2021-07-11T01:33:54.1808788Z Collecting click-default-group~=1.2.2
2021-07-11T01:33:54.1869460Z Downloading click-default-group-1.2.2.tar.gz (3.3 kB)
2021-07-11T01:33:54.7054196Z Collecting Jinja2<3.1.0,>=2.10.3
2021-07-11T01:33:54.7148099Z Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
2021-07-11T01:33:54.7961809Z Collecting hupper~=1.9
2021-07-11T01:33:54.8050512Z Downloading hupper-1.10.3-py2.py3-none-any.whl (26 kB)
2021-07-11T01:33:54.8713647Z Collecting httpx>=0.17
2021-07-11T01:33:54.8801895Z Downloading httpx-0.18.2-py3-none-any.whl (76 kB)
2021-07-11T01:33:54.9399015Z Collecting pint~=0.9
2021-07-11T01:33:54.9713138Z Downloading Pint-0.17-py2.py3-none-any.whl (204 kB)
2021-07-11T01:33:55.0365379Z Collecting pluggy~=0.13.0
2021-07-11T01:33:55.0457651Z Downloading pluggy-0.13.1-py2.py3-none-any.whl (18 kB)
2021-07-11T01:33:55.1165135Z Collecting uvicorn~=0.11
2021-07-11T01:33:55.1254844Z Downloading uvicorn-0.14.0-py3-none-any.whl (50 kB)
2021-07-11T01:33:55.1690525Z Collecting aiofiles<0.8,>=0.4
2021-07-11T01:33:55.1777455Z Downloading aiofiles-0.7.0-py3-none-any.whl (13 kB)
2021-07-11T01:33:55.2203578Z Collecting janus<0.7,>=0.4
2021-07-11T01:33:55.2295973Z Downloading janus-0.6.1-py3-none-any.whl (11 kB)
2021-07-11T01:33:55.2643814Z Collecting asgi-csrf>=0.9
2021-07-11T01:33:55.2729516Z Downloading asgi_csrf-0.9-py3-none-any.whl (10 kB)
2021-07-11T01:33:55.3657325Z Collecting PyYAML~=5.3
2021-07-11T01:33:55.3764166Z Downloading PyYAML-5.4.1-cp36-cp36m-win_amd64.whl (209 kB)
2021-07-11T01:33:55.4426915Z Collecting mergedeep<1.4.0,>=1.1.1
2021-07-11T01:33:55.4509243Z Downloading mergedeep-1.3.4-py3-none-any.whl (6.4 kB)
2021-07-11T01:33:55.4900698Z Collecting itsdangerous<3.0,>=1.1
2021-07-11T01:33:55.4983519Z Downloading itsdangerous-2.0.1-py3-none-any.whl (18 kB)
2021-07-11T01:33:55.5303406Z Collecting python-baseconv==1.2.2
2021-07-11T01:33:55.5379461Z Downloading python-baseconv-1.2.2.tar.gz (4.9 kB)
2021-07-11T01:33:55.9494165Z Collecting pytest<6.3.0,>=5.2.2
2021-07-11T01:33:55.9587011Z Downloading pytest-6.2.4-py3-none-any.whl (280 kB)
2021-07-11T01:33:56.0497758Z Collecting pytest-xdist<2.4,>=2.2.1
2021-07-11T01:33:56.0583519Z Downloading pytest_xdist-2.3.0-py3-none-any.whl (37 kB)
2021-07-11T01:33:56.1076548Z Collecting pytest-asyncio<0.16,>=0.10
2021-07-11T01:33:56.1158237Z Downloading pytest_asyncio-0.15.1-py3-none-any.whl (12 kB)
2021-07-11T01:33:56.1643041Z Collecting beautifulsoup4<4.10.0,>=4.8.1
2021-07-11T01:33:56.1712819Z Downloading beautifulsoup4-4.9.3-py3-none-any.whl (115 kB)
2021-07-11T01:33:56.2268736Z Collecting black==21.6b0
2021-07-11T01:33:56.2361202Z Downloading black-21.6b0-py3-none-any.whl (140 kB)
2021-07-11T01:33:56.2813079Z Collecting pytest-timeout<1.5,>=1.4.2
2021-07-11T01:33:56.2896910Z Downloading pytest_timeout-1.4.2-py2.py3-none-any.whl (10 kB)
2021-07-11T01:33:56.3386154Z Collecting trustme<0.9,>=0.7
2021-07-11T01:33:56.3452311Z Downloading trustme-0.8.0-py2.py3-none-any.whl (16 kB)
2021-07-11T01:33:57.0092123Z Collecting regex>=2020.1.8
2021-07-11T01:33:57.0216220Z Downloading regex-2021.7.6-cp36-cp36m-win_amd64.whl (270 kB)
2021-07-11T01:33:57.0810786Z Collecting pathspec<1,>=0.8.1
2021-07-11T01:33:57.0903002Z Downloading pathspec-0.8.1-py2.py3-none-any.whl (28 kB)
2021-07-11T01:33:57.1986211Z Collecting typed-ast>=1.4.2
2021-07-11T01:33:57.2085061Z Downloading typed_ast-1.4.3-cp36-cp36m-win_amd64.whl (155 kB)
2021-07-11T01:33:57.2607393Z Collecting toml>=0.10.1
2021-07-11T01:33:57.2691469Z Downloading toml-0.10.2-py2.py3-none-any.whl (16 kB)
2021-07-11T01:33:57.3012417Z Collecting dataclasses>=0.6
2021-07-11T01:33:57.3099130Z Downloading dataclasses-0.8-py3-none-any.whl (19 kB)
2021-07-11T01:33:57.3459353Z Collecting mypy-extensions>=0.4.3
2021-07-11T01:33:57.3543480Z Downloading mypy_extensions-0.4.3-py2.py3-none-any.whl (4.5 kB)
2021-07-11T01:33:57.3876503Z Collecting appdirs
2021-07-11T01:33:57.3962051Z Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
2021-07-11T01:33:57.4341071Z Collecting typing-extensions>=3.7.4
2021-07-11T01:33:57.4430699Z Downloading typing_extensions-3.10.0.0-py3-none-any.whl (26 kB)
2021-07-11T01:33:57.4856825Z Collecting python-multipart
2021-07-11T01:33:57.4956325Z Downloading python-multipart-0.0.5.tar.gz (32 kB)
2021-07-11T01:33:57.9165383Z Collecting soupsieve>1.2
2021-07-11T01:33:57.9254263Z Downloading soupsieve-2.2.1-py3-none-any.whl (33 kB)
2021-07-11T01:33:57.9869431Z Collecting colorama
2021-07-11T01:33:57.9956797Z Downloading colorama-0.4.4-py2.py3-none-any.whl (16 kB)
2021-07-11T01:33:58.0940830Z Collecting importlib-metadata
2021-07-11T01:33:58.1033494Z Downloading importlib_metadata-4.6.1-py3-none-any.whl (17 kB)
2021-07-11T01:33:58.1692473Z Collecting certifi
2021-07-11T01:33:58.1799804Z Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
2021-07-11T01:33:58.2467726Z Collecting httpcore<0.14.0,>=0.13.3
2021-07-11T01:33:58.2557990Z Downloading httpcore-0.13.6-py3-none-any.whl (58 kB)
2021-07-11T01:33:58.2963622Z Collecting rfc3986[idna2008]<2,>=1.3
2021-07-11T01:33:58.3047709Z Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)
2021-07-11T01:33:58.3345562Z Collecting sniffio
2021-07-11T01:33:58.3430000Z Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)
2021-07-11T01:33:58.3793858Z Collecting async-generator
2021-07-11T01:33:58.3881147Z Downloading async_generator-1.10-py3-none-any.whl (18 kB)
2021-07-11T01:33:58.4347953Z Collecting h11<0.13,>=0.11
2021-07-11T01:33:58.4434716Z Downloading h11-0.12.0-py3-none-any.whl (54 kB)
2021-07-11T01:33:58.4986961Z Collecting anyio==3.*
2021-07-11T01:33:58.5070026Z Downloading anyio-3.2.1-py3-none-any.whl (75 kB)
2021-07-11T01:33:58.5845925Z Collecting idna>=2.8
2021-07-11T01:33:58.5930401Z Downloading idna-3.2-py3-none-any.whl (59 kB)
2021-07-11T01:33:58.6316225Z Collecting contextvars>=2.1
2021-07-11T01:33:58.6404982Z Downloading contextvars-2.4.tar.gz (9.6 kB)
2021-07-11T01:33:58.9968985Z Collecting immutables>=0.9
2021-07-11T01:33:59.0063773Z Downloading immutables-0.15-cp36-cp36m-win_amd64.whl (56 kB)
2021-07-11T01:33:59.1661886Z Collecting MarkupSafe>=2.0
2021-07-11T01:33:59.1761748Z Downloading MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl (14 kB)
2021-07-11T01:34:01.5351934Z Collecting packaging
2021-07-11T01:34:01.5352654Z Downloading packaging-21.0-py3-none-any.whl (40 kB)
2021-07-11T01:34:01.5353344Z Collecting importlib-resources
2021-07-11T01:34:01.5354098Z Downloading importlib_resources-5.2.0-py3-none-any.whl (27 kB)
2021-07-11T01:34:01.5354731Z Collecting zipp>=0.5
2021-07-11T01:34:01.5355247Z Downloading zipp-3.5.0-py3-none-any.whl (5.7 kB)
2021-07-11T01:34:01.5355777Z Collecting attrs>=19.2.0
2021-07-11T01:34:01.5356357Z Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB)
2021-07-11T01:34:01.5356958Z Collecting atomicwrites>=1.0
2021-07-11T01:34:01.5357707Z Downloading atomicwrites-1.4.0-py2.py3-none-any.whl (6.8 kB)
2021-07-11T01:34:01.5358414Z Collecting iniconfig
2021-07-11T01:34:01.5359145Z Downloading iniconfig-1.1.1-py2.py3-none-any.whl (5.0 kB)
2021-07-11T01:34:01.5359784Z Collecting py>=1.8.2
2021-07-11T01:34:01.5360300Z Downloading py-1.10.0-py2.py3-none-any.whl (97 kB)
2021-07-11T01:34:01.5361319Z Collecting pytest-forked
2021-07-11T01:34:01.5362007Z Downloading pytest_forked-1.3.0-py2.py3-none-any.whl (4.7 kB)
2021-07-11T01:34:01.5362631Z Collecting execnet>=1.1
2021-07-11T01:34:01.5363272Z Downloading execnet-1.9.0-py2.py3-none-any.whl (39 kB)
2021-07-11T01:34:01.5363919Z Collecting cryptography
2021-07-11T01:34:01.5364589Z Downloading cryptography-3.4.7-cp36-abi3-win_amd64.whl (1.6 MB)
2021-07-11T01:34:01.5365222Z Collecting cffi>=1.12
2021-07-11T01:34:01.5365757Z Downloading cffi-1.14.6-cp36-cp36m-win_amd64.whl (178 kB)
2021-07-11T01:34:01.5366286Z Collecting pycparser
2021-07-11T01:34:01.5366955Z Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
2021-07-11T01:34:01.5367600Z Collecting pyparsing>=2.0.2
2021-07-11T01:34:01.5368275Z Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
2021-07-11T01:34:01.6305345Z Collecting six>=1.4.0
2021-07-11T01:34:01.6393107Z Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
2021-07-11T01:34:01.6696867Z Using legacy 'setup.py install' for python-baseconv, since package 'wheel' is not installed.
2021-07-11T01:34:01.6699950Z Using legacy 'setup.py install' for click-default-group, since package 'wheel' is not installed.
2021-07-11T01:34:01.6703089Z Using legacy 'setup.py install' for contextvars, since package 'wheel' is not installed.
2021-07-11T01:34:01.6708475Z Using legacy 'setup.py install' for python-multipart, since package 'wheel' is not installed.
2021-07-11T01:34:01.9687376Z Installing collected packages: immutables, zipp, typing-extensions, contextvars, sniffio, pyparsing, importlib-metadata, idna, dataclasses, async-generator, toml, six, rfc3986, pycparser, py, pluggy, packaging, iniconfig, h11, colorama, attrs, atomicwrites, anyio, python-multipart, pytest, MarkupSafe, itsdangerous, importlib-resources, httpcore, click, cffi, certifi, asgiref, uvicorn, typed-ast, 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-11T01:34:02.0981893Z Running setup.py install for contextvars: started
2021-07-11T01:34:02.4313384Z Running setup.py install for contextvars: finished with status 'done'
2021-07-11T01:34:04.9127120Z Running setup.py install for python-multipart: started
2021-07-11T01:34:05.5177956Z Running setup.py install for python-multipart: finished with status 'done'
2021-07-11T01:34:07.8706157Z Running setup.py install for python-baseconv: started
2021-07-11T01:34:08.1755030Z Running setup.py install for python-baseconv: finished with status 'done'
2021-07-11T01:34:09.5866544Z Running setup.py install for click-default-group: started
2021-07-11T01:34:09.9083295Z Running setup.py install for click-default-group: finished with status 'done'
2021-07-11T01:34:10.3037965Z Running setup.py develop for datasette
2021-07-11T01:34:11.4384145Z 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 async-generator-1.10 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 contextvars-2.4 cryptography-3.4.7 dataclasses-0.8 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 immutables-0.15 importlib-metadata-4.6.1 importlib-resources-5.2.0 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 typed-ast-1.4.3 typing-extensions-3.10.0.0 uvicorn-0.14.0 zipp-3.5.0
2021-07-11T01:34:12.2320223Z ##[group]Run pytest
2021-07-11T01:34:12.2320710Z pytest
2021-07-11T01:34:12.2363849Z shell: C:\Program Files\PowerShell\7\pwsh.EXE -command ". '{0}'"
2021-07-11T01:34:12.2364355Z env:
2021-07-11T01:34:12.2364869Z pythonLocation: C:\hostedtoolcache\windows\Python\3.6.8\x64
2021-07-11T01:34:12.2365413Z ##[endgroup]
2021-07-11T01:34:16.5029601Z ============================= test session starts =============================
2021-07-11T01:34:16.5030752Z platform win32 -- Python 3.6.8, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
2021-07-11T01:34:16.5031500Z SQLite: 3.21.0
2021-07-11T01:34:16.5032207Z rootdir: D:\a\datasette\datasette, configfile: pytest.ini
2021-07-11T01:34:16.5033222Z plugins: anyio-3.2.1, asyncio-0.15.1, forked-1.3.0, timeout-1.4.2, xdist-2.3.0
2021-07-11T01:34:16.5034068Z collected 924 items
2021-07-11T01:34:16.5034473Z
2021-07-11T01:34:16.5576711Z tests\test_package.py FF [ 0%]
2021-07-11T01:34:36.6683854Z tests\test_cli.py . [ 0%]
2021-07-11T01:34:36.7771763Z tests\test_cli_serve_get.py .F [ 0%]
2021-07-11T01:34:36.8002187Z tests\test_cli.py . [ 0%]
2021-07-11T01:34:41.4709754Z tests\test_black.py . [ 0%]
2021-07-11T01:36:17.8703920Z tests\test_api.py ....................................................F. [ 6%]
2021-07-11T01:43:31.4341601Z ...FFFF.........ss..F......................FF....................F...FF. [ 14%]
2021-07-11T01:44:39.0972339Z .....................s.............. [ 18%]
2021-07-11T01:45:03.5604090Z tests\test_auth.py ............ [ 19%]
2021-07-11T01:52:14.7760301Z tests\test_canned_queries.py ..E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E........ [ 22%]
2021-07-11T01:52:14.9693264Z ...... [ 23%]
2021-07-11T01:52:37.8993077Z tests\test_cli.py F.F.................... [ 25%]
2021-07-11T01:52:44.3657967Z tests\test_cli_serve_server.py ..s [ 25%]
2021-07-11T01:52:44.8172677Z tests\test_config_dir.py .....F.... [ 26%]
2021-07-11T01:53:07.1250365Z tests\test_crossdb.py ... [ 27%]
2021-07-11T01:54:32.6644901Z tests\test_csv.py ............... [ 28%]
2021-07-11T01:55:16.2637690Z tests\test_custom_pages.py FFFFFFFFF.... [ 30%]
2021-07-11T01:55:16.9207530Z tests\test_docs.py ................................................EEEEE [ 36%]
2021-07-11T01:55:17.1172730Z EEEEEE................... [ 38%]
2021-07-11T01:55:38.3586304Z tests\test_facets.py .....sss.F. [ 39%]
2021-07-11T01:55:38.3861011Z tests\test_filters.py ..............F [ 41%]
2021-07-11T01:58:53.1452371Z tests\test_html.py .....FFF.........FF.................................. [ 47%]
2021-07-11T02:04:37.9935370Z ...........F.FFF.........................F...F.F..............FF...FFFFF [ 55%]
2021-07-11T02:04:38.0048155Z . [ 55%]
2021-07-11T02:04:58.9495095Z tests\test_internal_db.py ..... [ 55%]
2021-07-11T02:05:40.8303267Z tests\test_internals_database.py .......................... [ 58%]
2021-07-11T02:06:02.1998730Z tests\test_internals_datasette.py ........... [ 59%]
2021-07-11T02:06:24.7399796Z tests\test_internals_datasette_client.py .......... [ 60%]
2021-07-11T02:06:24.7525281Z tests\test_internals_request.py ....... [ 61%]
2021-07-11T02:06:24.7602866Z tests\test_internals_response.py ..... [ 62%]
2021-07-11T02:06:44.9494886Z tests\test_internals_urls.py .......................... [ 64%]
2021-07-11T02:07:07.7129844Z tests\test_messages.py .... [ 65%]
2021-07-11T02:14:24.7683842Z tests\test_permissions.py FFFFFFFFFFFFFFF............FF................. [ 70%]
2021-07-11T02:14:25.1998467Z ....................... [ 72%]
2021-07-11T02:15:48.9761156Z tests\test_plugins.py ........................................FF........ [ 78%]
2021-07-11T02:17:17.6775237Z .......................F..F.....FF...... [ 82%]
2021-07-11T02:17:17.7240268Z tests\test_publish_cloudrun.py ..FFFFF..FFFFF [ 84%]
2021-07-11T02:17:17.7637775Z tests\test_publish_heroku.py ...FF [ 84%]
2021-07-11T02:17:17.8624832Z tests\test_utils.py ........................................FF.......... [ 90%]
2021-07-11T02:17:18.3974318Z ...FFF.................................................................. [ 98%]
2021-07-11T02:17:18.7640576Z ..................E [100%]
2021-07-11T02:17:18.7641116Z
2021-07-11T02:17:18.7641628Z =================================== ERRORS ====================================
2021-07-11T02:17:18.7642233Z ______________________ ERROR at teardown of test_insert _______________________
2021-07-11T02:17:18.7642670Z
2021-07-11T02:17:18.7643104Z @pytest.fixture
2021-07-11T02:17:18.7643705Z def canned_write_client():
2021-07-11T02:17:18.7644256Z with make_app_client(
2021-07-11T02:17:18.7644875Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7646179Z metadata={
2021-07-11T02:17:18.7646680Z "databases": {
2021-07-11T02:17:18.7647128Z "data": {
2021-07-11T02:17:18.7647627Z "queries": {
2021-07-11T02:17:18.7648217Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7648760Z "add_name": {
2021-07-11T02:17:18.7649377Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7649990Z "write": True,
2021-07-11T02:17:18.7650649Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7651196Z },
2021-07-11T02:17:18.7651713Z "add_name_specify_id": {
2021-07-11T02:17:18.7652399Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7653176Z "write": True,
2021-07-11T02:17:18.7653794Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7654386Z },
2021-07-11T02:17:18.7654863Z "delete_name": {
2021-07-11T02:17:18.7655432Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7656026Z "write": True,
2021-07-11T02:17:18.7656609Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7657198Z "allow": {"id": "root"},
2021-07-11T02:17:18.7657636Z },
2021-07-11T02:17:18.7658120Z "update_name": {
2021-07-11T02:17:18.7658746Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7659376Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7659936Z "write": True,
2021-07-11T02:17:18.7660411Z },
2021-07-11T02:17:18.7661388Z }
2021-07-11T02:17:18.7661804Z }
2021-07-11T02:17:18.7662208Z }
2021-07-11T02:17:18.7662607Z },
2021-07-11T02:17:18.7662997Z ) as client:
2021-07-11T02:17:18.7663450Z > yield client
2021-07-11T02:17:18.7663770Z
2021-07-11T02:17:18.7664353Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7664946Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7665650Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7666350Z next(self.gen)
2021-07-11T02:17:18.7666968Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7667638Z yield TestClient(ds)
2021-07-11T02:17:18.7668356Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7669010Z self.cleanup()
2021-07-11T02:17:18.7669738Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7670482Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7671240Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7671945Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7672706Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7673493Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7674033Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7674361Z
2021-07-11T02:17:18.7674949Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpne5yrjng'
2021-07-11T02:17:18.7675719Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B03CE510>
2021-07-11T02:17:18.7676289Z
2021-07-11T02:17:18.7676746Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7677250Z try:
2021-07-11T02:17:18.7677757Z if os.path.islink(path):
2021-07-11T02:17:18.7678382Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7679108Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7679709Z except OSError:
2021-07-11T02:17:18.7680318Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7681010Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7681554Z return
2021-07-11T02:17:18.7681979Z names = []
2021-07-11T02:17:18.7682362Z try:
2021-07-11T02:17:18.7682848Z names = os.listdir(path)
2021-07-11T02:17:18.7683388Z except OSError:
2021-07-11T02:17:18.7683949Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7684529Z for name in names:
2021-07-11T02:17:18.7685095Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7685625Z try:
2021-07-11T02:17:18.7686098Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7686665Z except OSError:
2021-07-11T02:17:18.7687143Z mode = 0
2021-07-11T02:17:18.7687593Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7688174Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7688705Z else:
2021-07-11T02:17:18.7689091Z try:
2021-07-11T02:17:18.7689566Z > os.unlink(fullname)
2021-07-11T02:17:18.7690661Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpne5yrjng\\data.db'
2021-07-11T02:17:18.7691642Z
2021-07-11T02:17:18.7692765Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7706134Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[canned_read-False] _
2021-07-11T02:17:18.7706807Z
2021-07-11T02:17:18.7707310Z @pytest.fixture
2021-07-11T02:17:18.7708003Z def canned_write_client():
2021-07-11T02:17:18.7708560Z with make_app_client(
2021-07-11T02:17:18.7709232Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7709827Z metadata={
2021-07-11T02:17:18.7710327Z "databases": {
2021-07-11T02:17:18.7710865Z "data": {
2021-07-11T02:17:18.7711322Z "queries": {
2021-07-11T02:17:18.7711919Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7712506Z "add_name": {
2021-07-11T02:17:18.7713079Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7713716Z "write": True,
2021-07-11T02:17:18.7714367Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7714950Z },
2021-07-11T02:17:18.7715431Z "add_name_specify_id": {
2021-07-11T02:17:18.7716110Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7716757Z "write": True,
2021-07-11T02:17:18.7717366Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7717974Z },
2021-07-11T02:17:18.7718467Z "delete_name": {
2021-07-11T02:17:18.7719052Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7719670Z "write": True,
2021-07-11T02:17:18.7720286Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7721490Z "allow": {"id": "root"},
2021-07-11T02:17:18.7722330Z },
2021-07-11T02:17:18.7722946Z "update_name": {
2021-07-11T02:17:18.7723781Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7724545Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7725219Z "write": True,
2021-07-11T02:17:18.7725784Z },
2021-07-11T02:17:18.7726253Z }
2021-07-11T02:17:18.7726755Z }
2021-07-11T02:17:18.7727241Z }
2021-07-11T02:17:18.7727717Z },
2021-07-11T02:17:18.7728185Z ) as client:
2021-07-11T02:17:18.7728728Z > yield client
2021-07-11T02:17:18.7729124Z
2021-07-11T02:17:18.7729781Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7730974Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7731782Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7733044Z next(self.gen)
2021-07-11T02:17:18.7733680Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7734262Z yield TestClient(ds)
2021-07-11T02:17:18.7734911Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7735529Z self.cleanup()
2021-07-11T02:17:18.7736127Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7736799Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7737452Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7738074Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7738752Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7739476Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7739948Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7740211Z
2021-07-11T02:17:18.7740885Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpzqkd9az3'
2021-07-11T02:17:18.7741548Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B06031E0>
2021-07-11T02:17:18.7741933Z
2021-07-11T02:17:18.7742348Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7742774Z try:
2021-07-11T02:17:18.7743160Z if os.path.islink(path):
2021-07-11T02:17:18.7743747Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7744364Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7744896Z except OSError:
2021-07-11T02:17:18.7745436Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7746018Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7746634Z return
2021-07-11T02:17:18.7747022Z names = []
2021-07-11T02:17:18.7747906Z try:
2021-07-11T02:17:18.7748380Z names = os.listdir(path)
2021-07-11T02:17:18.7748867Z except OSError:
2021-07-11T02:17:18.7749352Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7749854Z for name in names:
2021-07-11T02:17:18.7750313Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7750841Z try:
2021-07-11T02:17:18.7751288Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7751734Z except OSError:
2021-07-11T02:17:18.7752141Z mode = 0
2021-07-11T02:17:18.7752550Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7753026Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7753487Z else:
2021-07-11T02:17:18.7753846Z try:
2021-07-11T02:17:18.7754242Z > os.unlink(fullname)
2021-07-11T02:17:18.7755375Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpzqkd9az3\\data.db'
2021-07-11T02:17:18.7756159Z
2021-07-11T02:17:18.7756778Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7757604Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[add_name_specify_id-True] _
2021-07-11T02:17:18.7758071Z
2021-07-11T02:17:18.7758450Z @pytest.fixture
2021-07-11T02:17:18.7758869Z def canned_write_client():
2021-07-11T02:17:18.7759317Z with make_app_client(
2021-07-11T02:17:18.7759897Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7760410Z metadata={
2021-07-11T02:17:18.7761978Z "databases": {
2021-07-11T02:17:18.7762380Z "data": {
2021-07-11T02:17:18.7762742Z "queries": {
2021-07-11T02:17:18.7763261Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7763717Z "add_name": {
2021-07-11T02:17:18.7764241Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7764766Z "write": True,
2021-07-11T02:17:18.7765277Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7765773Z },
2021-07-11T02:17:18.7766202Z "add_name_specify_id": {
2021-07-11T02:17:18.7766752Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7767335Z "write": True,
2021-07-11T02:17:18.7767905Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7768384Z },
2021-07-11T02:17:18.7768793Z "delete_name": {
2021-07-11T02:17:18.7769321Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7770345Z "write": True,
2021-07-11T02:17:18.7770958Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7771482Z "allow": {"id": "root"},
2021-07-11T02:17:18.7771848Z },
2021-07-11T02:17:18.7772254Z "update_name": {
2021-07-11T02:17:18.7772812Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7773887Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7774378Z "write": True,
2021-07-11T02:17:18.7774781Z },
2021-07-11T02:17:18.7775095Z }
2021-07-11T02:17:18.7775441Z }
2021-07-11T02:17:18.7775747Z }
2021-07-11T02:17:18.7776075Z },
2021-07-11T02:17:18.7776427Z ) as client:
2021-07-11T02:17:18.7776780Z > yield client
2021-07-11T02:17:18.7777035Z
2021-07-11T02:17:18.7777552Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7778082Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7778715Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7779336Z next(self.gen)
2021-07-11T02:17:18.7779885Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7780541Z yield TestClient(ds)
2021-07-11T02:17:18.7781179Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7781756Z self.cleanup()
2021-07-11T02:17:18.7782385Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7783142Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7783755Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7784420Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7785121Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7786889Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7787402Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7787670Z
2021-07-11T02:17:18.7788152Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwe8vjdy5'
2021-07-11T02:17:18.7788851Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B046F048>
2021-07-11T02:17:18.7789240Z
2021-07-11T02:17:18.7789664Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7790058Z try:
2021-07-11T02:17:18.7790543Z if os.path.islink(path):
2021-07-11T02:17:18.7791138Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7791761Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7792294Z except OSError:
2021-07-11T02:17:18.7792804Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7793432Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7793913Z return
2021-07-11T02:17:18.7794244Z names = []
2021-07-11T02:17:18.7794605Z try:
2021-07-11T02:17:18.7795020Z names = os.listdir(path)
2021-07-11T02:17:18.7795437Z except OSError:
2021-07-11T02:17:18.7795955Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7796458Z for name in names:
2021-07-11T02:17:18.7796912Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7797365Z try:
2021-07-11T02:17:18.7798249Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7798762Z except OSError:
2021-07-11T02:17:18.7799177Z mode = 0
2021-07-11T02:17:18.7799553Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7800142Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7800668Z else:
2021-07-11T02:17:18.7800990Z try:
2021-07-11T02:17:18.7801530Z > os.unlink(fullname)
2021-07-11T02:17:18.7802522Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwe8vjdy5\\data.db'
2021-07-11T02:17:18.7803297Z
2021-07-11T02:17:18.7803878Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7804718Z _ ERROR at teardown of test_canned_query_form_csrf_hidden_field[add_name-True] _
2021-07-11T02:17:18.7805160Z
2021-07-11T02:17:18.7805521Z @pytest.fixture
2021-07-11T02:17:18.7805978Z def canned_write_client():
2021-07-11T02:17:18.7806439Z with make_app_client(
2021-07-11T02:17:18.7806971Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7807510Z metadata={
2021-07-11T02:17:18.7807924Z "databases": {
2021-07-11T02:17:18.7808282Z "data": {
2021-07-11T02:17:18.7808681Z "queries": {
2021-07-11T02:17:18.7809145Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7809630Z "add_name": {
2021-07-11T02:17:18.7811264Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7811751Z "write": True,
2021-07-11T02:17:18.7812294Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7812797Z },
2021-07-11T02:17:18.7813199Z "add_name_specify_id": {
2021-07-11T02:17:18.7814341Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7814907Z "write": True,
2021-07-11T02:17:18.7815440Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7815956Z },
2021-07-11T02:17:18.7816374Z "delete_name": {
2021-07-11T02:17:18.7816869Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7817390Z "write": True,
2021-07-11T02:17:18.7817905Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7818392Z "allow": {"id": "root"},
2021-07-11T02:17:18.7818798Z },
2021-07-11T02:17:18.7819206Z "update_name": {
2021-07-11T02:17:18.7819727Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7820328Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7820888Z "write": True,
2021-07-11T02:17:18.7821250Z },
2021-07-11T02:17:18.7821612Z }
2021-07-11T02:17:18.7821923Z }
2021-07-11T02:17:18.7822264Z }
2021-07-11T02:17:18.7822609Z },
2021-07-11T02:17:18.7822937Z ) as client:
2021-07-11T02:17:18.7823333Z > yield client
2021-07-11T02:17:18.7823591Z
2021-07-11T02:17:18.7824509Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7825096Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7825729Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7826317Z next(self.gen)
2021-07-11T02:17:18.7826903Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7827520Z yield TestClient(ds)
2021-07-11T02:17:18.7828205Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7828834Z self.cleanup()
2021-07-11T02:17:18.7829469Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7830107Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7830822Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7831485Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7832136Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7832857Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7833375Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7833600Z
2021-07-11T02:17:18.7834115Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpi9aadbh8'
2021-07-11T02:17:18.7834818Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B0632F28>
2021-07-11T02:17:18.7835207Z
2021-07-11T02:17:18.7835590Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7836023Z try:
2021-07-11T02:17:18.7836451Z if os.path.islink(path):
2021-07-11T02:17:18.7837004Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7837667Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7838170Z except OSError:
2021-07-11T02:17:18.7839742Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7840371Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7840866Z return
2021-07-11T02:17:18.7841233Z names = []
2021-07-11T02:17:18.7841589Z try:
2021-07-11T02:17:18.7841970Z names = os.listdir(path)
2021-07-11T02:17:18.7842434Z except OSError:
2021-07-11T02:17:18.7843061Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7843537Z for name in names:
2021-07-11T02:17:18.7844042Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7844509Z try:
2021-07-11T02:17:18.7844947Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7845425Z except OSError:
2021-07-11T02:17:18.7845797Z mode = 0
2021-07-11T02:17:18.7846212Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7846726Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7847154Z else:
2021-07-11T02:17:18.7847524Z try:
2021-07-11T02:17:18.7847940Z > os.unlink(fullname)
2021-07-11T02:17:18.7848885Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpi9aadbh8\\data.db'
2021-07-11T02:17:18.7849658Z
2021-07-11T02:17:18.7850274Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7851091Z _________ ERROR at teardown of test_insert_with_cookies_requires_csrf _________
2021-07-11T02:17:18.7851498Z
2021-07-11T02:17:18.7851879Z @pytest.fixture
2021-07-11T02:17:18.7852345Z def canned_write_client():
2021-07-11T02:17:18.7852764Z with make_app_client(
2021-07-11T02:17:18.7854063Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7854605Z metadata={
2021-07-11T02:17:18.7854976Z "databases": {
2021-07-11T02:17:18.7855370Z "data": {
2021-07-11T02:17:18.7855770Z "queries": {
2021-07-11T02:17:18.7856232Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7856729Z "add_name": {
2021-07-11T02:17:18.7857206Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7857730Z "write": True,
2021-07-11T02:17:18.7858365Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7858835Z },
2021-07-11T02:17:18.7859264Z "add_name_specify_id": {
2021-07-11T02:17:18.7859860Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7860384Z "write": True,
2021-07-11T02:17:18.7861004Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7861526Z },
2021-07-11T02:17:18.7861903Z "delete_name": {
2021-07-11T02:17:18.7862440Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7862973Z "write": True,
2021-07-11T02:17:18.7863456Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7863974Z "allow": {"id": "root"},
2021-07-11T02:17:18.7864385Z },
2021-07-11T02:17:18.7864751Z "update_name": {
2021-07-11T02:17:18.7865306Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7865905Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7866352Z "write": True,
2021-07-11T02:17:18.7866755Z },
2021-07-11T02:17:18.7867117Z }
2021-07-11T02:17:18.7867426Z }
2021-07-11T02:17:18.7867765Z }
2021-07-11T02:17:18.7868059Z },
2021-07-11T02:17:18.7868420Z ) as client:
2021-07-11T02:17:18.7868816Z > yield client
2021-07-11T02:17:18.7869072Z
2021-07-11T02:17:18.7869640Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7870219Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7870869Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7871501Z next(self.gen)
2021-07-11T02:17:18.7872097Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7872669Z yield TestClient(ds)
2021-07-11T02:17:18.7873307Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7873927Z self.cleanup()
2021-07-11T02:17:18.7874524Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7875207Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7875857Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7876478Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7877175Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7877913Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7878395Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7878661Z
2021-07-11T02:17:18.7879164Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp_jjxtgrs'
2021-07-11T02:17:18.7879805Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B182B950>
2021-07-11T02:17:18.7880194Z
2021-07-11T02:17:18.7880661Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7881097Z try:
2021-07-11T02:17:18.7881487Z if os.path.islink(path):
2021-07-11T02:17:18.7882087Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7882747Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7883248Z except OSError:
2021-07-11T02:17:18.7883803Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7884398Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7884878Z return
2021-07-11T02:17:18.7885246Z names = []
2021-07-11T02:17:18.7886010Z try:
2021-07-11T02:17:18.7886457Z names = os.listdir(path)
2021-07-11T02:17:18.7886917Z except OSError:
2021-07-11T02:17:18.7887399Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7887904Z for name in names:
2021-07-11T02:17:18.7888401Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7888820Z try:
2021-07-11T02:17:18.7889269Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7889717Z except OSError:
2021-07-11T02:17:18.7890126Z mode = 0
2021-07-11T02:17:18.7890607Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7891086Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7891554Z else:
2021-07-11T02:17:18.7891925Z try:
2021-07-11T02:17:18.7892300Z > os.unlink(fullname)
2021-07-11T02:17:18.7893307Z E 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_jjxtgrs\\fixtures.db'
2021-07-11T02:17:18.7894095Z
2021-07-11T02:17:18.7895264Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7896063Z _____________ ERROR at teardown of test_insert_no_cookies_no_csrf _____________
2021-07-11T02:17:18.7896442Z
2021-07-11T02:17:18.7896829Z @pytest.fixture
2021-07-11T02:17:18.7897252Z def canned_write_client():
2021-07-11T02:17:18.7897712Z with make_app_client(
2021-07-11T02:17:18.7898286Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7898784Z metadata={
2021-07-11T02:17:18.7899197Z "databases": {
2021-07-11T02:17:18.7899644Z "data": {
2021-07-11T02:17:18.7900047Z "queries": {
2021-07-11T02:17:18.7900611Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7901069Z "add_name": {
2021-07-11T02:17:18.7901577Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7902098Z "write": True,
2021-07-11T02:17:18.7902611Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7903117Z },
2021-07-11T02:17:18.7903555Z "add_name_specify_id": {
2021-07-11T02:17:18.7904103Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7904661Z "write": True,
2021-07-11T02:17:18.7905228Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7905711Z },
2021-07-11T02:17:18.7906125Z "delete_name": {
2021-07-11T02:17:18.7906662Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7907152Z "write": True,
2021-07-11T02:17:18.7907673Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7908198Z "allow": {"id": "root"},
2021-07-11T02:17:18.7908564Z },
2021-07-11T02:17:18.7908982Z "update_name": {
2021-07-11T02:17:18.7909542Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7910104Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7911216Z "write": True,
2021-07-11T02:17:18.7911638Z },
2021-07-11T02:17:18.7911964Z }
2021-07-11T02:17:18.7912323Z }
2021-07-11T02:17:18.7912631Z }
2021-07-11T02:17:18.7913056Z },
2021-07-11T02:17:18.7913421Z ) as client:
2021-07-11T02:17:18.7913773Z > yield client
2021-07-11T02:17:18.7914033Z
2021-07-11T02:17:18.7914549Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7915075Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7915700Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7916318Z next(self.gen)
2021-07-11T02:17:18.7916869Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7917491Z yield TestClient(ds)
2021-07-11T02:17:18.7918127Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7918708Z self.cleanup()
2021-07-11T02:17:18.7919341Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7920011Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7920691Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7921360Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7922053Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7922734Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7923255Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7923519Z
2021-07-11T02:17:18.7924006Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmposhxucrj'
2021-07-11T02:17:18.7924706Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B048AF28>
2021-07-11T02:17:18.7925097Z
2021-07-11T02:17:18.7925521Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7925919Z try:
2021-07-11T02:17:18.7926415Z if os.path.islink(path):
2021-07-11T02:17:18.7926973Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7927637Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7928189Z except OSError:
2021-07-11T02:17:18.7928699Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7929325Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7929804Z return
2021-07-11T02:17:18.7930134Z names = []
2021-07-11T02:17:18.7930539Z try:
2021-07-11T02:17:18.7930958Z names = os.listdir(path)
2021-07-11T02:17:18.7932525Z except OSError:
2021-07-11T02:17:18.7933058Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7933524Z for name in names:
2021-07-11T02:17:18.7934023Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7934478Z try:
2021-07-11T02:17:18.7934896Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7935381Z except OSError:
2021-07-11T02:17:18.7935792Z mode = 0
2021-07-11T02:17:18.7936167Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7936678Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7937140Z else:
2021-07-11T02:17:18.7937463Z try:
2021-07-11T02:17:18.7937875Z > os.unlink(fullname)
2021-07-11T02:17:18.7938857Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmposhxucrj\\data.db'
2021-07-11T02:17:18.7939593Z
2021-07-11T02:17:18.7940201Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7941031Z ______________ ERROR at teardown of test_custom_success_message _______________
2021-07-11T02:17:18.7941411Z
2021-07-11T02:17:18.7941753Z @pytest.fixture
2021-07-11T02:17:18.7942215Z def canned_write_client():
2021-07-11T02:17:18.7942676Z with make_app_client(
2021-07-11T02:17:18.7943295Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7943867Z metadata={
2021-07-11T02:17:18.7944238Z "databases": {
2021-07-11T02:17:18.7944664Z "data": {
2021-07-11T02:17:18.7945064Z "queries": {
2021-07-11T02:17:18.7945527Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7946016Z "add_name": {
2021-07-11T02:17:18.7946528Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7947011Z "write": True,
2021-07-11T02:17:18.7947551Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7948045Z },
2021-07-11T02:17:18.7948438Z "add_name_specify_id": {
2021-07-11T02:17:18.7949030Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7949595Z "write": True,
2021-07-11T02:17:18.7950118Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7950683Z },
2021-07-11T02:17:18.7951094Z "delete_name": {
2021-07-11T02:17:18.7951589Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7952115Z "write": True,
2021-07-11T02:17:18.7952637Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7953122Z "allow": {"id": "root"},
2021-07-11T02:17:18.7953523Z },
2021-07-11T02:17:18.7953889Z "update_name": {
2021-07-11T02:17:18.7954528Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.7955133Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.7955590Z "write": True,
2021-07-11T02:17:18.7955992Z },
2021-07-11T02:17:18.7956346Z }
2021-07-11T02:17:18.7956654Z }
2021-07-11T02:17:18.7956996Z }
2021-07-11T02:17:18.7957346Z },
2021-07-11T02:17:18.7958224Z ) as client:
2021-07-11T02:17:18.7958649Z > yield client
2021-07-11T02:17:18.7958908Z
2021-07-11T02:17:18.7959392Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.7959953Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7960633Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.7961223Z next(self.gen)
2021-07-11T02:17:18.7961823Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.7962436Z yield TestClient(ds)
2021-07-11T02:17:18.7963036Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.7963661Z self.cleanup()
2021-07-11T02:17:18.7964294Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.7964919Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.7965571Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.7966235Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.7966887Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.7967608Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.7968083Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.7968352Z
2021-07-11T02:17:18.7968868Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpk1uqybu0'
2021-07-11T02:17:18.7969576Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B18CEEA0>
2021-07-11T02:17:18.7970211Z
2021-07-11T02:17:18.7970647Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.7971084Z try:
2021-07-11T02:17:18.7971468Z if os.path.islink(path):
2021-07-11T02:17:18.7972064Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.7972725Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.7973226Z except OSError:
2021-07-11T02:17:18.7973776Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.7974405Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.7974842Z return
2021-07-11T02:17:18.7975207Z names = []
2021-07-11T02:17:18.7975558Z try:
2021-07-11T02:17:18.7975930Z names = os.listdir(path)
2021-07-11T02:17:18.7976391Z except OSError:
2021-07-11T02:17:18.7976868Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.7977373Z for name in names:
2021-07-11T02:17:18.7977873Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.7978287Z try:
2021-07-11T02:17:18.7978724Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.7979209Z except OSError:
2021-07-11T02:17:18.7979578Z mode = 0
2021-07-11T02:17:18.7979989Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.7980546Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.7980970Z else:
2021-07-11T02:17:18.7981326Z try:
2021-07-11T02:17:18.7981695Z > os.unlink(fullname)
2021-07-11T02:17:18.7982675Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpk1uqybu0\\data.db'
2021-07-11T02:17:18.7984693Z
2021-07-11T02:17:18.7985319Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.7986035Z ___________________ ERROR at teardown of test_insert_error ____________________
2021-07-11T02:17:18.7986385Z
2021-07-11T02:17:18.7986773Z @pytest.fixture
2021-07-11T02:17:18.7987195Z def canned_write_client():
2021-07-11T02:17:18.7987651Z with make_app_client(
2021-07-11T02:17:18.7988226Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.7988732Z metadata={
2021-07-11T02:17:18.7989146Z "databases": {
2021-07-11T02:17:18.7989538Z "data": {
2021-07-11T02:17:18.7989899Z "queries": {
2021-07-11T02:17:18.7990407Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.7990954Z "add_name": {
2021-07-11T02:17:18.7991437Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.7991960Z "write": True,
2021-07-11T02:17:18.7992524Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.7992980Z },
2021-07-11T02:17:18.7993412Z "add_name_specify_id": {
2021-07-11T02:17:18.7994005Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.7994524Z "write": True,
2021-07-11T02:17:18.7995096Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.7995607Z },
2021-07-11T02:17:18.7995976Z "delete_name": {
2021-07-11T02:17:18.7996513Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.7997050Z "write": True,
2021-07-11T02:17:18.7997531Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.7998118Z "allow": {"id": "root"},
2021-07-11T02:17:18.7998504Z },
2021-07-11T02:17:18.7998911Z "update_name": {
2021-07-11T02:17:18.7999473Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8000034Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8000578Z "write": True,
2021-07-11T02:17:18.8000979Z },
2021-07-11T02:17:18.8001296Z }
2021-07-11T02:17:18.8001644Z }
2021-07-11T02:17:18.8001990Z }
2021-07-11T02:17:18.8002288Z },
2021-07-11T02:17:18.8002646Z ) as client:
2021-07-11T02:17:18.8003003Z > yield client
2021-07-11T02:17:18.8003256Z
2021-07-11T02:17:18.8003778Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8004346Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8004933Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8005552Z next(self.gen)
2021-07-11T02:17:18.8006145Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8006711Z yield TestClient(ds)
2021-07-11T02:17:18.8007349Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8007973Z self.cleanup()
2021-07-11T02:17:18.8008572Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8009244Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8009861Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8010656Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8011354Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8012051Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8012569Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8012840Z
2021-07-11T02:17:18.8013359Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdx06adcm'
2021-07-11T02:17:18.8014018Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B04BBD90>
2021-07-11T02:17:18.8014413Z
2021-07-11T02:17:18.8014831Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8015223Z try:
2021-07-11T02:17:18.8015650Z if os.path.islink(path):
2021-07-11T02:17:18.8016247Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8016864Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8017411Z except OSError:
2021-07-11T02:17:18.8017965Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8018552Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8019031Z return
2021-07-11T02:17:18.8019396Z names = []
2021-07-11T02:17:18.8019712Z try:
2021-07-11T02:17:18.8020126Z names = os.listdir(path)
2021-07-11T02:17:18.8020598Z except OSError:
2021-07-11T02:17:18.8021115Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8021622Z for name in names:
2021-07-11T02:17:18.8022080Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8022537Z try:
2021-07-11T02:17:18.8022982Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8023424Z except OSError:
2021-07-11T02:17:18.8023844Z mode = 0
2021-07-11T02:17:18.8024261Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8024733Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8025203Z else:
2021-07-11T02:17:18.8025525Z try:
2021-07-11T02:17:18.8025940Z > os.unlink(fullname)
2021-07-11T02:17:18.8026974Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpdx06adcm\\data.db'
2021-07-11T02:17:18.8027743Z
2021-07-11T02:17:18.8028323Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8029145Z ---------------------------- Captured stderr call -----------------------------
2021-07-11T02:17:18.8030328Z UNIQUE constraint failed: names.rowid
2021-07-11T02:17:18.8030912Z UNIQUE constraint failed: names.rowid
2021-07-11T02:17:18.8031504Z ___________________ ERROR at teardown of test_custom_params ___________________
2021-07-11T02:17:18.8031857Z
2021-07-11T02:17:18.8032203Z @pytest.fixture
2021-07-11T02:17:18.8032694Z def canned_write_client():
2021-07-11T02:17:18.8033159Z with make_app_client(
2021-07-11T02:17:18.8033701Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8034245Z metadata={
2021-07-11T02:17:18.8034663Z "databases": {
2021-07-11T02:17:18.8035027Z "data": {
2021-07-11T02:17:18.8035433Z "queries": {
2021-07-11T02:17:18.8035937Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8036390Z "add_name": {
2021-07-11T02:17:18.8036923Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8037451Z "write": True,
2021-07-11T02:17:18.8037960Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8038455Z },
2021-07-11T02:17:18.8038845Z "add_name_specify_id": {
2021-07-11T02:17:18.8039509Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8040085Z "write": True,
2021-07-11T02:17:18.8040654Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8041170Z },
2021-07-11T02:17:18.8041582Z "delete_name": {
2021-07-11T02:17:18.8042079Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8042606Z "write": True,
2021-07-11T02:17:18.8043123Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8043608Z "allow": {"id": "root"},
2021-07-11T02:17:18.8044011Z },
2021-07-11T02:17:18.8044430Z "update_name": {
2021-07-11T02:17:18.8044980Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8045580Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8046065Z "write": True,
2021-07-11T02:17:18.8046421Z },
2021-07-11T02:17:18.8046780Z }
2021-07-11T02:17:18.8047129Z }
2021-07-11T02:17:18.8047429Z }
2021-07-11T02:17:18.8047760Z },
2021-07-11T02:17:18.8048078Z ) as client:
2021-07-11T02:17:18.8048468Z > yield client
2021-07-11T02:17:18.8048726Z
2021-07-11T02:17:18.8049243Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8049773Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8050405Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8051071Z next(self.gen)
2021-07-11T02:17:18.8051630Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8052244Z yield TestClient(ds)
2021-07-11T02:17:18.8052928Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8053551Z self.cleanup()
2021-07-11T02:17:18.8054186Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8054818Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8055475Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8056141Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8056793Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8057510Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8058023Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8058283Z
2021-07-11T02:17:18.8058759Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3awq3t9_'
2021-07-11T02:17:18.8059446Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B0558158>
2021-07-11T02:17:18.8059830Z
2021-07-11T02:17:18.8060216Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8060702Z try:
2021-07-11T02:17:18.8061135Z if os.path.islink(path):
2021-07-11T02:17:18.8061693Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8062365Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8062906Z except OSError:
2021-07-11T02:17:18.8063416Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8064052Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8064490Z return
2021-07-11T02:17:18.8064851Z names = []
2021-07-11T02:17:18.8065200Z try:
2021-07-11T02:17:18.8065572Z names = os.listdir(path)
2021-07-11T02:17:18.8066098Z except OSError:
2021-07-11T02:17:18.8066615Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8067083Z for name in names:
2021-07-11T02:17:18.8067587Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8068042Z try:
2021-07-11T02:17:18.8068676Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8069165Z except OSError:
2021-07-11T02:17:18.8069542Z mode = 0
2021-07-11T02:17:18.8069960Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8070533Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8070965Z else:
2021-07-11T02:17:18.8071330Z try:
2021-07-11T02:17:18.8071750Z > os.unlink(fullname)
2021-07-11T02:17:18.8072697Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp3awq3t9_\\data.db'
2021-07-11T02:17:18.8073464Z
2021-07-11T02:17:18.8074071Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8074822Z ____________________ ERROR at teardown of test_vary_header ____________________
2021-07-11T02:17:18.8075131Z
2021-07-11T02:17:18.8076647Z @pytest.fixture
2021-07-11T02:17:18.8077144Z def canned_write_client():
2021-07-11T02:17:18.8077565Z with make_app_client(
2021-07-11T02:17:18.8078144Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8078689Z metadata={
2021-07-11T02:17:18.8079068Z "databases": {
2021-07-11T02:17:18.8079476Z "data": {
2021-07-11T02:17:18.8079885Z "queries": {
2021-07-11T02:17:18.8080357Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8080913Z "add_name": {
2021-07-11T02:17:18.8081400Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8081929Z "write": True,
2021-07-11T02:17:18.8082575Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8083044Z },
2021-07-11T02:17:18.8083478Z "add_name_specify_id": {
2021-07-11T02:17:18.8084078Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8084602Z "write": True,
2021-07-11T02:17:18.8085174Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8085694Z },
2021-07-11T02:17:18.8086069Z "delete_name": {
2021-07-11T02:17:18.8086608Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8087140Z "write": True,
2021-07-11T02:17:18.8087629Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8088157Z "allow": {"id": "root"},
2021-07-11T02:17:18.8088566Z },
2021-07-11T02:17:18.8088944Z "update_name": {
2021-07-11T02:17:18.8089507Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8090113Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8090894Z "write": True,
2021-07-11T02:17:18.8091333Z },
2021-07-11T02:17:18.8091702Z }
2021-07-11T02:17:18.8092014Z }
2021-07-11T02:17:18.8092360Z }
2021-07-11T02:17:18.8092658Z },
2021-07-11T02:17:18.8093021Z ) as client:
2021-07-11T02:17:18.8093415Z > yield client
2021-07-11T02:17:18.8093769Z
2021-07-11T02:17:18.8094252Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8094824Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8095415Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8096035Z next(self.gen)
2021-07-11T02:17:18.8104505Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8105196Z yield TestClient(ds)
2021-07-11T02:17:18.8105862Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8106490Z self.cleanup()
2021-07-11T02:17:18.8107093Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8107777Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8108436Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8109064Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8109780Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8110616Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8111098Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8111366Z
2021-07-11T02:17:18.8111888Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnvqz0ib1'
2021-07-11T02:17:18.8112547Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1742F28>
2021-07-11T02:17:18.8112944Z
2021-07-11T02:17:18.8113369Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8113806Z try:
2021-07-11T02:17:18.8114191Z if os.path.islink(path):
2021-07-11T02:17:18.8114791Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8115456Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8115951Z except OSError:
2021-07-11T02:17:18.8116511Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8117098Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8118290Z return
2021-07-11T02:17:18.8118683Z names = []
2021-07-11T02:17:18.8119001Z try:
2021-07-11T02:17:18.8119419Z names = os.listdir(path)
2021-07-11T02:17:18.8119887Z except OSError:
2021-07-11T02:17:18.8120376Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8120960Z for name in names:
2021-07-11T02:17:18.8121470Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8121888Z try:
2021-07-11T02:17:18.8122343Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8122797Z except OSError:
2021-07-11T02:17:18.8123212Z mode = 0
2021-07-11T02:17:18.8123635Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8124118Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8124602Z else:
2021-07-11T02:17:18.8124970Z try:
2021-07-11T02:17:18.8125351Z > os.unlink(fullname)
2021-07-11T02:17:18.8126340Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnvqz0ib1\\data.db'
2021-07-11T02:17:18.8127106Z
2021-07-11T02:17:18.8127683Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8128432Z __________________ ERROR at teardown of test_json_post_body ___________________
2021-07-11T02:17:18.8128783Z
2021-07-11T02:17:18.8129169Z @pytest.fixture
2021-07-11T02:17:18.8129592Z def canned_write_client():
2021-07-11T02:17:18.8130054Z with make_app_client(
2021-07-11T02:17:18.8130851Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8131374Z metadata={
2021-07-11T02:17:18.8131900Z "databases": {
2021-07-11T02:17:18.8132263Z "data": {
2021-07-11T02:17:18.8132668Z "queries": {
2021-07-11T02:17:18.8133185Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8133642Z "add_name": {
2021-07-11T02:17:18.8134160Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8134692Z "write": True,
2021-07-11T02:17:18.8135198Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8135704Z },
2021-07-11T02:17:18.8136138Z "add_name_specify_id": {
2021-07-11T02:17:18.8136685Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8137244Z "write": True,
2021-07-11T02:17:18.8137819Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8138304Z },
2021-07-11T02:17:18.8138721Z "delete_name": {
2021-07-11T02:17:18.8139268Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8139752Z "write": True,
2021-07-11T02:17:18.8140269Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8140852Z "allow": {"id": "root"},
2021-07-11T02:17:18.8141219Z },
2021-07-11T02:17:18.8141629Z "update_name": {
2021-07-11T02:17:18.8142188Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8142753Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8143248Z "write": True,
2021-07-11T02:17:18.8143650Z },
2021-07-11T02:17:18.8143969Z }
2021-07-11T02:17:18.8144331Z }
2021-07-11T02:17:18.8144729Z }
2021-07-11T02:17:18.8145076Z },
2021-07-11T02:17:18.8145440Z ) as client:
2021-07-11T02:17:18.8145792Z > yield client
2021-07-11T02:17:18.8146057Z
2021-07-11T02:17:18.8146578Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8147108Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8147746Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8148371Z next(self.gen)
2021-07-11T02:17:18.8148928Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8149536Z yield TestClient(ds)
2021-07-11T02:17:18.8150176Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8150819Z self.cleanup()
2021-07-11T02:17:18.8151460Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8152147Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8152764Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8153429Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8154121Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8154796Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8155307Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8155574Z
2021-07-11T02:17:18.8156047Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp147qmo1d'
2021-07-11T02:17:18.8156737Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1740E18>
2021-07-11T02:17:18.8157131Z
2021-07-11T02:17:18.8157557Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8158020Z try:
2021-07-11T02:17:18.8158452Z if os.path.islink(path):
2021-07-11T02:17:18.8159011Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8159678Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8160219Z except OSError:
2021-07-11T02:17:18.8160776Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8161410Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8161897Z return
2021-07-11T02:17:18.8162224Z names = []
2021-07-11T02:17:18.8162579Z try:
2021-07-11T02:17:18.8162999Z names = os.listdir(path)
2021-07-11T02:17:18.8163426Z except OSError:
2021-07-11T02:17:18.8163948Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8164414Z for name in names:
2021-07-11T02:17:18.8164916Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8165379Z try:
2021-07-11T02:17:18.8165783Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8166266Z except OSError:
2021-07-11T02:17:18.8166679Z mode = 0
2021-07-11T02:17:18.8167061Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8167573Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8168042Z else:
2021-07-11T02:17:18.8168366Z try:
2021-07-11T02:17:18.8168779Z > os.unlink(fullname)
2021-07-11T02:17:18.8169756Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp147qmo1d\\data.db'
2021-07-11T02:17:18.8170525Z
2021-07-11T02:17:18.8171149Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8172013Z __ ERROR at teardown of test_json_response[None-name=NameGoesHere-?_json=1] ___
2021-07-11T02:17:18.8172485Z
2021-07-11T02:17:18.8172830Z @pytest.fixture
2021-07-11T02:17:18.8173295Z def canned_write_client():
2021-07-11T02:17:18.8174033Z with make_app_client(
2021-07-11T02:17:18.8174999Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8175549Z metadata={
2021-07-11T02:17:18.8175932Z "databases": {
2021-07-11T02:17:18.8176330Z "data": {
2021-07-11T02:17:18.8176741Z "queries": {
2021-07-11T02:17:18.8177208Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8177715Z "add_name": {
2021-07-11T02:17:18.8178236Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8178717Z "write": True,
2021-07-11T02:17:18.8179274Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8179783Z },
2021-07-11T02:17:18.8180178Z "add_name_specify_id": {
2021-07-11T02:17:18.8180827Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8181382Z "write": True,
2021-07-11T02:17:18.8181906Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8182417Z },
2021-07-11T02:17:18.8182832Z "delete_name": {
2021-07-11T02:17:18.8183331Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8183861Z "write": True,
2021-07-11T02:17:18.8184395Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8184876Z "allow": {"id": "root"},
2021-07-11T02:17:18.8185287Z },
2021-07-11T02:17:18.8185716Z "update_name": {
2021-07-11T02:17:18.8186289Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8186891Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8187340Z "write": True,
2021-07-11T02:17:18.8187746Z },
2021-07-11T02:17:18.8188107Z }
2021-07-11T02:17:18.8188421Z }
2021-07-11T02:17:18.8188769Z }
2021-07-11T02:17:18.8189106Z },
2021-07-11T02:17:18.8189432Z ) as client:
2021-07-11T02:17:18.8189835Z > yield client
2021-07-11T02:17:18.8190094Z
2021-07-11T02:17:18.8190618Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8191188Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8191816Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8192397Z next(self.gen)
2021-07-11T02:17:18.8192990Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8193604Z yield TestClient(ds)
2021-07-11T02:17:18.8194206Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8194832Z self.cleanup()
2021-07-11T02:17:18.8195464Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8196097Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8196753Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8197424Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8198088Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8198817Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8199307Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8199579Z
2021-07-11T02:17:18.8200099Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpr6vh9fr2'
2021-07-11T02:17:18.8200898Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1740158>
2021-07-11T02:17:18.8201289Z
2021-07-11T02:17:18.8201680Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8202115Z try:
2021-07-11T02:17:18.8202507Z if os.path.islink(path):
2021-07-11T02:17:18.8203102Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8203768Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8204262Z except OSError:
2021-07-11T02:17:18.8204810Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8205445Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8205893Z return
2021-07-11T02:17:18.8206263Z names = []
2021-07-11T02:17:18.8206616Z try:
2021-07-11T02:17:18.8207000Z names = os.listdir(path)
2021-07-11T02:17:18.8207458Z except OSError:
2021-07-11T02:17:18.8207950Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8208457Z for name in names:
2021-07-11T02:17:18.8208954Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8209369Z try:
2021-07-11T02:17:18.8209810Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8210301Z except OSError:
2021-07-11T02:17:18.8212576Z mode = 0
2021-07-11T02:17:18.8213019Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8213554Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8213977Z else:
2021-07-11T02:17:18.8214348Z try:
2021-07-11T02:17:18.8214732Z > os.unlink(fullname)
2021-07-11T02:17:18.8215725Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpr6vh9fr2\\data.db'
2021-07-11T02:17:18.8216629Z
2021-07-11T02:17:18.8217254Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8218140Z __ ERROR at teardown of test_json_response[headers1-name=NameGoesHere-None] ___
2021-07-11T02:17:18.8218656Z
2021-07-11T02:17:18.8219045Z @pytest.fixture
2021-07-11T02:17:18.8219469Z def canned_write_client():
2021-07-11T02:17:18.8219926Z with make_app_client(
2021-07-11T02:17:18.8220583Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8221094Z metadata={
2021-07-11T02:17:18.8221509Z "databases": {
2021-07-11T02:17:18.8221924Z "data": {
2021-07-11T02:17:18.8222286Z "queries": {
2021-07-11T02:17:18.8222799Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8223308Z "add_name": {
2021-07-11T02:17:18.8223781Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8224306Z "write": True,
2021-07-11T02:17:18.8224858Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8225318Z },
2021-07-11T02:17:18.8225758Z "add_name_specify_id": {
2021-07-11T02:17:18.8226344Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8226868Z "write": True,
2021-07-11T02:17:18.8227430Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8227955Z },
2021-07-11T02:17:18.8228322Z "delete_name": {
2021-07-11T02:17:18.8228859Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8229353Z "write": True,
2021-07-11T02:17:18.8229948Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8230545Z "allow": {"id": "root"},
2021-07-11T02:17:18.8230915Z },
2021-07-11T02:17:18.8231318Z "update_name": {
2021-07-11T02:17:18.8231877Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8232442Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8232936Z "write": True,
2021-07-11T02:17:18.8233335Z },
2021-07-11T02:17:18.8233657Z }
2021-07-11T02:17:18.8234011Z }
2021-07-11T02:17:18.8234355Z }
2021-07-11T02:17:18.8234659Z },
2021-07-11T02:17:18.8235026Z ) as client:
2021-07-11T02:17:18.8235384Z > yield client
2021-07-11T02:17:18.8235647Z
2021-07-11T02:17:18.8236167Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8236741Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8237337Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8237959Z next(self.gen)
2021-07-11T02:17:18.8238552Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8239117Z yield TestClient(ds)
2021-07-11T02:17:18.8239766Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8240382Z self.cleanup()
2021-07-11T02:17:18.8241037Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8241710Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8242326Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8243073Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8243771Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8244451Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8244992Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8245258Z
2021-07-11T02:17:18.8245798Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpgjeubrr0'
2021-07-11T02:17:18.8246459Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1768BF8>
2021-07-11T02:17:18.8246846Z
2021-07-11T02:17:18.8247280Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8247681Z try:
2021-07-11T02:17:18.8248111Z if os.path.islink(path):
2021-07-11T02:17:18.8248710Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8249334Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8249881Z except OSError:
2021-07-11T02:17:18.8250426Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8251066Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8251546Z return
2021-07-11T02:17:18.8251915Z names = []
2021-07-11T02:17:18.8252230Z try:
2021-07-11T02:17:18.8252646Z names = os.listdir(path)
2021-07-11T02:17:18.8253069Z except OSError:
2021-07-11T02:17:18.8253598Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8254111Z for name in names:
2021-07-11T02:17:18.8254575Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8255043Z try:
2021-07-11T02:17:18.8255491Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8255936Z except OSError:
2021-07-11T02:17:18.8256350Z mode = 0
2021-07-11T02:17:18.8256773Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8257252Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8257724Z else:
2021-07-11T02:17:18.8258048Z try:
2021-07-11T02:17:18.8258534Z > os.unlink(fullname)
2021-07-11T02:17:18.8259538Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpgjeubrr0\\data.db'
2021-07-11T02:17:18.8261130Z
2021-07-11T02:17:18.8261711Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8262581Z _ ERROR at teardown of test_json_response[None-name=NameGoesHere&_json=1-None] _
2021-07-11T02:17:18.8263058Z
2021-07-11T02:17:18.8263402Z @pytest.fixture
2021-07-11T02:17:18.8263866Z def canned_write_client():
2021-07-11T02:17:18.8264317Z with make_app_client(
2021-07-11T02:17:18.8264858Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8265407Z metadata={
2021-07-11T02:17:18.8265824Z "databases": {
2021-07-11T02:17:18.8266186Z "data": {
2021-07-11T02:17:18.8266585Z "queries": {
2021-07-11T02:17:18.8267085Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8267542Z "add_name": {
2021-07-11T02:17:18.8268057Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8268582Z "write": True,
2021-07-11T02:17:18.8269086Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8269581Z },
2021-07-11T02:17:18.8270105Z "add_name_specify_id": {
2021-07-11T02:17:18.8270770Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8271898Z "write": True,
2021-07-11T02:17:18.8272510Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8273046Z },
2021-07-11T02:17:18.8273478Z "delete_name": {
2021-07-11T02:17:18.8274054Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8274598Z "write": True,
2021-07-11T02:17:18.8275081Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8275606Z "allow": {"id": "root"},
2021-07-11T02:17:18.8276037Z },
2021-07-11T02:17:18.8276422Z "update_name": {
2021-07-11T02:17:18.8277001Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8277617Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8278076Z "write": True,
2021-07-11T02:17:18.8278487Z },
2021-07-11T02:17:18.8278808Z }
2021-07-11T02:17:18.8279170Z }
2021-07-11T02:17:18.8279515Z }
2021-07-11T02:17:18.8279811Z },
2021-07-11T02:17:18.8280187Z ) as client:
2021-07-11T02:17:18.8280638Z > yield client
2021-07-11T02:17:18.8280855Z
2021-07-11T02:17:18.8281392Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8281966Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8282572Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8312984Z next(self.gen)
2021-07-11T02:17:18.8313698Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8314319Z yield TestClient(ds)
2021-07-11T02:17:18.8314953Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8315563Z self.cleanup()
2021-07-11T02:17:18.8316298Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8316944Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8317573Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8318181Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8318838Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8319519Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8319974Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8320222Z
2021-07-11T02:17:18.8320738Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp2w_pwlr4'
2021-07-11T02:17:18.8321390Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1733378>
2021-07-11T02:17:18.8321743Z
2021-07-11T02:17:18.8322135Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8322533Z try:
2021-07-11T02:17:18.8322903Z if os.path.islink(path):
2021-07-11T02:17:18.8323457Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8324069Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8324535Z except OSError:
2021-07-11T02:17:18.8325047Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8325630Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8326054Z return
2021-07-11T02:17:18.8326377Z names = []
2021-07-11T02:17:18.8326673Z try:
2021-07-11T02:17:18.8327040Z names = os.listdir(path)
2021-07-11T02:17:18.8327446Z except OSError:
2021-07-11T02:17:18.8327902Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8328362Z for name in names:
2021-07-11T02:17:18.8328893Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8329290Z try:
2021-07-11T02:17:18.8329691Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8330133Z except OSError:
2021-07-11T02:17:18.8330483Z mode = 0
2021-07-11T02:17:18.8330893Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8331351Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8331778Z else:
2021-07-11T02:17:18.8332102Z try:
2021-07-11T02:17:18.8332484Z > os.unlink(fullname)
2021-07-11T02:17:18.8333413Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp2w_pwlr4\\data.db'
2021-07-11T02:17:18.8334147Z
2021-07-11T02:17:18.8334726Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8335535Z _ ERROR at teardown of test_json_response[None-{"name": "NameGoesHere", "_json": 1}-None] _
2021-07-11T02:17:18.8335982Z
2021-07-11T02:17:18.8336330Z @pytest.fixture
2021-07-11T02:17:18.8336731Z def canned_write_client():
2021-07-11T02:17:18.8337151Z with make_app_client(
2021-07-11T02:17:18.8337685Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8338170Z metadata={
2021-07-11T02:17:18.8338545Z "databases": {
2021-07-11T02:17:18.8338906Z "data": {
2021-07-11T02:17:18.8339246Z "queries": {
2021-07-11T02:17:18.8339708Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8340164Z "add_name": {
2021-07-11T02:17:18.8340639Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8341126Z "write": True,
2021-07-11T02:17:18.8341633Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8342074Z },
2021-07-11T02:17:18.8342518Z "add_name_specify_id": {
2021-07-11T02:17:18.8343050Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8343575Z "write": True,
2021-07-11T02:17:18.8344100Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8344552Z },
2021-07-11T02:17:18.8344922Z "delete_name": {
2021-07-11T02:17:18.8345418Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8345885Z "write": True,
2021-07-11T02:17:18.8346357Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8346828Z "allow": {"id": "root"},
2021-07-11T02:17:18.8347175Z },
2021-07-11T02:17:18.8347545Z "update_name": {
2021-07-11T02:17:18.8348061Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8348601Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8349047Z "write": True,
2021-07-11T02:17:18.8349407Z },
2021-07-11T02:17:18.8349705Z }
2021-07-11T02:17:18.8350006Z }
2021-07-11T02:17:18.8350295Z }
2021-07-11T02:17:18.8350590Z },
2021-07-11T02:17:18.8350886Z ) as client:
2021-07-11T02:17:18.8351208Z > yield client
2021-07-11T02:17:18.8351437Z
2021-07-11T02:17:18.8351915Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8352436Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8353053Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8353621Z next(self.gen)
2021-07-11T02:17:18.8354160Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8354704Z yield TestClient(ds)
2021-07-11T02:17:18.8355294Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8355852Z self.cleanup()
2021-07-11T02:17:18.8356436Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8357057Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8357648Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8358255Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8358898Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8359547Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8360015Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8360254Z
2021-07-11T02:17:18.8360742Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph35n7zi_'
2021-07-11T02:17:18.8361370Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B192FEA0>
2021-07-11T02:17:18.8361740Z
2021-07-11T02:17:18.8362113Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8362485Z try:
2021-07-11T02:17:18.8362863Z if os.path.islink(path):
2021-07-11T02:17:18.8363412Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8364002Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8364489Z except OSError:
2021-07-11T02:17:18.8364989Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8365544Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8365975Z return
2021-07-11T02:17:18.8366277Z names = []
2021-07-11T02:17:18.8366582Z try:
2021-07-11T02:17:18.8366945Z names = os.listdir(path)
2021-07-11T02:17:18.8367389Z except OSError:
2021-07-11T02:17:18.8367853Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8368301Z for name in names:
2021-07-11T02:17:18.8368733Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8369133Z try:
2021-07-11T02:17:18.8369524Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8369941Z except OSError:
2021-07-11T02:17:18.8370300Z mode = 0
2021-07-11T02:17:18.8370675Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8371137Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8371547Z else:
2021-07-11T02:17:18.8371844Z try:
2021-07-11T02:17:18.8372205Z > os.unlink(fullname)
2021-07-11T02:17:18.8373140Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmph35n7zi_\\data.db'
2021-07-11T02:17:18.8373874Z
2021-07-11T02:17:18.8374415Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8375195Z _____ ERROR at teardown of test_canned_query_permissions_on_database_page _____
2021-07-11T02:17:18.8375602Z
2021-07-11T02:17:18.8375921Z @pytest.fixture
2021-07-11T02:17:18.8376330Z def canned_write_client():
2021-07-11T02:17:18.8376736Z with make_app_client(
2021-07-11T02:17:18.8377245Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8377729Z metadata={
2021-07-11T02:17:18.8378089Z "databases": {
2021-07-11T02:17:18.8378424Z "data": {
2021-07-11T02:17:18.8378770Z "queries": {
2021-07-11T02:17:18.8379282Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8379714Z "add_name": {
2021-07-11T02:17:18.8380180Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8380670Z "write": True,
2021-07-11T02:17:18.8381164Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8381608Z },
2021-07-11T02:17:18.8381968Z "add_name_specify_id": {
2021-07-11T02:17:18.8382505Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8383006Z "write": True,
2021-07-11T02:17:18.8383500Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8383967Z },
2021-07-11T02:17:18.8384329Z "delete_name": {
2021-07-11T02:17:18.8384801Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8385272Z "write": True,
2021-07-11T02:17:18.8385746Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8386200Z "allow": {"id": "root"},
2021-07-11T02:17:18.8386555Z },
2021-07-11T02:17:18.8386909Z "update_name": {
2021-07-11T02:17:18.8387408Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8387946Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8388367Z "write": True,
2021-07-11T02:17:18.8388711Z },
2021-07-11T02:17:18.8389016Z }
2021-07-11T02:17:18.8389300Z }
2021-07-11T02:17:18.8389591Z }
2021-07-11T02:17:18.8389871Z },
2021-07-11T02:17:18.8390164Z ) as client:
2021-07-11T02:17:18.8390577Z > yield client
2021-07-11T02:17:18.8390809Z
2021-07-11T02:17:18.8391261Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8391774Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8392357Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8392907Z next(self.gen)
2021-07-11T02:17:18.8393440Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8393996Z yield TestClient(ds)
2021-07-11T02:17:18.8394567Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8395134Z self.cleanup()
2021-07-11T02:17:18.8395700Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8396322Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8396923Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8397527Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8398170Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8398838Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8399288Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8399526Z
2021-07-11T02:17:18.8399984Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpo2s460hc'
2021-07-11T02:17:18.8400647Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B1863C80>
2021-07-11T02:17:18.8400997Z
2021-07-11T02:17:18.8401369Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8401752Z try:
2021-07-11T02:17:18.8402115Z if os.path.islink(path):
2021-07-11T02:17:18.8402656Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8403311Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8403781Z except OSError:
2021-07-11T02:17:18.8404279Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8404857Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8405269Z return
2021-07-11T02:17:18.8405580Z names = []
2021-07-11T02:17:18.8405868Z try:
2021-07-11T02:17:18.8406233Z names = os.listdir(path)
2021-07-11T02:17:18.8406650Z except OSError:
2021-07-11T02:17:18.8407107Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8407560Z for name in names:
2021-07-11T02:17:18.8408007Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8408395Z try:
2021-07-11T02:17:18.8408787Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8409218Z except OSError:
2021-07-11T02:17:18.8409565Z mode = 0
2021-07-11T02:17:18.8409928Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8410375Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8410818Z else:
2021-07-11T02:17:18.8411127Z try:
2021-07-11T02:17:18.8411471Z > os.unlink(fullname)
2021-07-11T02:17:18.8412386Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpo2s460hc\\data.db'
2021-07-11T02:17:18.8413116Z
2021-07-11T02:17:18.8413670Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8414393Z _____________ ERROR at teardown of test_canned_query_permissions ______________
2021-07-11T02:17:18.8414758Z
2021-07-11T02:17:18.8415088Z @pytest.fixture
2021-07-11T02:17:18.8415487Z def canned_write_client():
2021-07-11T02:17:18.8415890Z with make_app_client(
2021-07-11T02:17:18.8416416Z extra_databases={"data.db": "create table names (name text)"},
2021-07-11T02:17:18.8416888Z metadata={
2021-07-11T02:17:18.8417302Z "databases": {
2021-07-11T02:17:18.8417651Z "data": {
2021-07-11T02:17:18.8417981Z "queries": {
2021-07-11T02:17:18.8418425Z "canned_read": {"sql": "select * from names"},
2021-07-11T02:17:18.8418865Z "add_name": {
2021-07-11T02:17:18.8419311Z "sql": "insert into names (name) values (:name)",
2021-07-11T02:17:18.8419782Z "write": True,
2021-07-11T02:17:18.8420275Z "on_success_redirect": "/data/add_name?success",
2021-07-11T02:17:18.8420929Z },
2021-07-11T02:17:18.8421310Z "add_name_specify_id": {
2021-07-11T02:17:18.8421835Z "sql": "insert into names (rowid, name) values (:rowid, :name)",
2021-07-11T02:17:18.8422339Z "write": True,
2021-07-11T02:17:18.8422850Z "on_error_redirect": "/data/add_name_specify_id?error",
2021-07-11T02:17:18.8423296Z },
2021-07-11T02:17:18.8423652Z "delete_name": {
2021-07-11T02:17:18.8424135Z "sql": "delete from names where rowid = :rowid",
2021-07-11T02:17:18.8424596Z "write": True,
2021-07-11T02:17:18.8425061Z "on_success_message": "Name deleted",
2021-07-11T02:17:18.8425528Z "allow": {"id": "root"},
2021-07-11T02:17:18.8425863Z },
2021-07-11T02:17:18.8426213Z "update_name": {
2021-07-11T02:17:18.8426716Z "sql": "update names set name = :name where rowid = :rowid",
2021-07-11T02:17:18.8427322Z "params": ["rowid", "name", "extra"],
2021-07-11T02:17:18.8427767Z "write": True,
2021-07-11T02:17:18.8428115Z },
2021-07-11T02:17:18.8428407Z }
2021-07-11T02:17:18.8428702Z }
2021-07-11T02:17:18.8428988Z }
2021-07-11T02:17:18.8429257Z },
2021-07-11T02:17:18.8429565Z ) as client:
2021-07-11T02:17:18.8429890Z > yield client
2021-07-11T02:17:18.8430120Z
2021-07-11T02:17:18.8430613Z D:\a\datasette\datasette\tests\test_canned_queries.py:43:
2021-07-11T02:17:18.8431127Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8431688Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8432281Z next(self.gen)
2021-07-11T02:17:18.8432823Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8433366Z yield TestClient(ds)
2021-07-11T02:17:18.8433948Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8434505Z self.cleanup()
2021-07-11T02:17:18.8435096Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8435725Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8436315Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8436919Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8437561Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8438206Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8438662Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8438899Z
2021-07-11T02:17:18.8439363Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpoc9gwpkg'
2021-07-11T02:17:18.8440005Z onerror = <function rmtree.<locals>.onerror at 0x000001D1B2B16BF8>
2021-07-11T02:17:18.8440373Z
2021-07-11T02:17:18.8440771Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8441201Z try:
2021-07-11T02:17:18.8441580Z if os.path.islink(path):
2021-07-11T02:17:18.8442122Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8442714Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8443197Z except OSError:
2021-07-11T02:17:18.8443684Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8444239Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8444654Z return
2021-07-11T02:17:18.8444949Z names = []
2021-07-11T02:17:18.8445240Z try:
2021-07-11T02:17:18.8445601Z names = os.listdir(path)
2021-07-11T02:17:18.8445990Z except OSError:
2021-07-11T02:17:18.8446460Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8446908Z for name in names:
2021-07-11T02:17:18.8447339Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8447744Z try:
2021-07-11T02:17:18.8448132Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8448550Z except OSError:
2021-07-11T02:17:18.8448912Z mode = 0
2021-07-11T02:17:18.8449258Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8449714Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8450126Z else:
2021-07-11T02:17:18.8450422Z try:
2021-07-11T02:17:18.8450807Z > os.unlink(fullname)
2021-07-11T02:17:18.8451731Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpoc9gwpkg\\data.db'
2021-07-11T02:17:18.8452482Z
2021-07-11T02:17:18.8453088Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8453886Z _____ ERROR at setup of test_view_classes_are_documented[AllowDebugView] ______
2021-07-11T02:17:18.8454314Z
2021-07-11T02:17:18.8454693Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8455154Z def documented_views():
2021-07-11T02:17:18.8455537Z view_labels = set()
2021-07-11T02:17:18.8455947Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8456423Z > for label in get_labels(filename):
2021-07-11T02:17:18.8456708Z
2021-07-11T02:17:18.8457102Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8457569Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8458079Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8458649Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8459287Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8459840Z return f.read()
2021-07-11T02:17:18.8460185Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8460424Z
2021-07-11T02:17:18.8461087Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8462446Z 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-11T02:17:18.8463413Z final = True
2021-07-11T02:17:18.8463630Z
2021-07-11T02:17:18.8464009Z def decode(self, input, final=False):
2021-07-11T02:17:18.8464712Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8465651Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8466206Z
2021-07-11T02:17:18.8466822Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8467711Z ______ ERROR at setup of test_view_classes_are_documented[AuthTokenView] ______
2021-07-11T02:17:18.8468129Z
2021-07-11T02:17:18.8468504Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8468969Z def documented_views():
2021-07-11T02:17:18.8469348Z view_labels = set()
2021-07-11T02:17:18.8469779Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8470260Z > for label in get_labels(filename):
2021-07-11T02:17:18.8470576Z
2021-07-11T02:17:18.8470977Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8471428Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8471925Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8472501Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8473125Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8473675Z return f.read()
2021-07-11T02:17:18.8474036Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8474259Z
2021-07-11T02:17:18.8474892Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8476247Z 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-11T02:17:18.8477247Z final = True
2021-07-11T02:17:18.8477451Z
2021-07-11T02:17:18.8477822Z def decode(self, input, final=False):
2021-07-11T02:17:18.8478516Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8479449Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8480053Z
2021-07-11T02:17:18.8480687Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8481527Z ______ ERROR at setup of test_view_classes_are_documented[DatabaseView] _______
2021-07-11T02:17:18.8481923Z
2021-07-11T02:17:18.8482314Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8482780Z def documented_views():
2021-07-11T02:17:18.8483158Z view_labels = set()
2021-07-11T02:17:18.8483587Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8484062Z > for label in get_labels(filename):
2021-07-11T02:17:18.8484349Z
2021-07-11T02:17:18.8484749Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8485210Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8485702Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8486267Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8486892Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8487416Z return f.read()
2021-07-11T02:17:18.8487771Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8488009Z
2021-07-11T02:17:18.8488648Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8489991Z 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-11T02:17:18.8491003Z final = True
2021-07-11T02:17:18.8491215Z
2021-07-11T02:17:18.8491572Z def decode(self, input, final=False):
2021-07-11T02:17:18.8492264Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8493231Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8493782Z
2021-07-11T02:17:18.8494425Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8495246Z ________ ERROR at setup of test_view_classes_are_documented[IndexView] ________
2021-07-11T02:17:18.8495635Z
2021-07-11T02:17:18.8496024Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8496475Z def documented_views():
2021-07-11T02:17:18.8496867Z view_labels = set()
2021-07-11T02:17:18.8497281Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8497760Z > for label in get_labels(filename):
2021-07-11T02:17:18.8498052Z
2021-07-11T02:17:18.8498468Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8498919Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8499427Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8500017Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8500656Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8501199Z return f.read()
2021-07-11T02:17:18.8501545Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8501781Z
2021-07-11T02:17:18.8502418Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8503779Z 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-11T02:17:18.8504755Z final = True
2021-07-11T02:17:18.8504970Z
2021-07-11T02:17:18.8505345Z def decode(self, input, final=False):
2021-07-11T02:17:18.8506037Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8507042Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8507588Z
2021-07-11T02:17:18.8508201Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8509022Z ______ ERROR at setup of test_view_classes_are_documented[JsonDataView] _______
2021-07-11T02:17:18.8509431Z
2021-07-11T02:17:18.8509819Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8510286Z def documented_views():
2021-07-11T02:17:18.8510693Z view_labels = set()
2021-07-11T02:17:18.8511128Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8511592Z > for label in get_labels(filename):
2021-07-11T02:17:18.8511887Z
2021-07-11T02:17:18.8512304Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8512770Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8513269Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8513859Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8514507Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8515040Z return f.read()
2021-07-11T02:17:18.8515394Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8515624Z
2021-07-11T02:17:18.8516242Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8517593Z 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-11T02:17:18.8518568Z final = True
2021-07-11T02:17:18.8518779Z
2021-07-11T02:17:18.8519137Z def decode(self, input, final=False):
2021-07-11T02:17:18.8519839Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8521201Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8521846Z
2021-07-11T02:17:18.8522455Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8523279Z _______ ERROR at setup of test_view_classes_are_documented[LogoutView] ________
2021-07-11T02:17:18.8523676Z
2021-07-11T02:17:18.8524058Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8524525Z def documented_views():
2021-07-11T02:17:18.8524922Z view_labels = set()
2021-07-11T02:17:18.8525345Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8525827Z > for label in get_labels(filename):
2021-07-11T02:17:18.8526118Z
2021-07-11T02:17:18.8526523Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8526986Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8527496Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8528065Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8528708Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8529251Z return f.read()
2021-07-11T02:17:18.8529595Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8529825Z
2021-07-11T02:17:18.8530456Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8531971Z 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-11T02:17:18.8532970Z final = True
2021-07-11T02:17:18.8533186Z
2021-07-11T02:17:18.8533560Z def decode(self, input, final=False):
2021-07-11T02:17:18.8534313Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8535271Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8535818Z
2021-07-11T02:17:18.8536434Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8537304Z ____ ERROR at setup of test_view_classes_are_documented[MessagesDebugView] ____
2021-07-11T02:17:18.8537758Z
2021-07-11T02:17:18.8538150Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8538606Z def documented_views():
2021-07-11T02:17:18.8539001Z view_labels = set()
2021-07-11T02:17:18.8539437Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8539903Z > for label in get_labels(filename):
2021-07-11T02:17:18.8540194Z
2021-07-11T02:17:18.8540634Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8541100Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8541616Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8542199Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8542822Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8543377Z return f.read()
2021-07-11T02:17:18.8543737Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8543970Z
2021-07-11T02:17:18.8544609Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8545967Z 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-11T02:17:18.8546966Z final = True
2021-07-11T02:17:18.8547186Z
2021-07-11T02:17:18.8547550Z def decode(self, input, final=False):
2021-07-11T02:17:18.8548263Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8549293Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8549841Z
2021-07-11T02:17:18.8550449Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8551378Z __ ERROR at setup of test_view_classes_are_documented[PatternPortfolioView] ___
2021-07-11T02:17:18.8551859Z
2021-07-11T02:17:18.8552238Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8552706Z def documented_views():
2021-07-11T02:17:18.8553088Z view_labels = set()
2021-07-11T02:17:18.8553525Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8554008Z > for label in get_labels(filename):
2021-07-11T02:17:18.8554295Z
2021-07-11T02:17:18.8554695Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8555166Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8555683Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8556254Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8556893Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8557433Z return f.read()
2021-07-11T02:17:18.8557789Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8558031Z
2021-07-11T02:17:18.8558673Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8560011Z 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-11T02:17:18.8561031Z final = True
2021-07-11T02:17:18.8561310Z
2021-07-11T02:17:18.8561692Z def decode(self, input, final=False):
2021-07-11T02:17:18.8562374Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8563329Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8563869Z
2021-07-11T02:17:18.8564462Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8565358Z __ ERROR at setup of test_view_classes_are_documented[PermissionsDebugView] ___
2021-07-11T02:17:18.8565835Z
2021-07-11T02:17:18.8566222Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8566676Z def documented_views():
2021-07-11T02:17:18.8567066Z view_labels = set()
2021-07-11T02:17:18.8567483Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8567965Z > for label in get_labels(filename):
2021-07-11T02:17:18.8568254Z
2021-07-11T02:17:18.8568673Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8569131Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8569647Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8570238Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8570888Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8571438Z return f.read()
2021-07-11T02:17:18.8571798Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8572018Z
2021-07-11T02:17:18.8572651Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8573997Z 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-11T02:17:18.8574964Z final = True
2021-07-11T02:17:18.8575180Z
2021-07-11T02:17:18.8575552Z def decode(self, input, final=False):
2021-07-11T02:17:18.8576898Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8577872Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8578422Z
2021-07-11T02:17:18.8579035Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8579828Z _________ ERROR at setup of test_view_classes_are_documented[RowView] _________
2021-07-11T02:17:18.8580213Z
2021-07-11T02:17:18.8580630Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8581092Z def documented_views():
2021-07-11T02:17:18.8581472Z view_labels = set()
2021-07-11T02:17:18.8581906Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8582388Z > for label in get_labels(filename):
2021-07-11T02:17:18.8582669Z
2021-07-11T02:17:18.8583082Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8583553Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8584054Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8584634Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8585268Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8585804Z return f.read()
2021-07-11T02:17:18.8586166Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8586401Z
2021-07-11T02:17:18.8587031Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8588400Z 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-11T02:17:18.8589451Z final = True
2021-07-11T02:17:18.8589666Z
2021-07-11T02:17:18.8590032Z def decode(self, input, final=False):
2021-07-11T02:17:18.8592217Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8593175Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8593723Z
2021-07-11T02:17:18.8594322Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8595145Z ________ ERROR at setup of test_view_classes_are_documented[TableView] ________
2021-07-11T02:17:18.8595543Z
2021-07-11T02:17:18.8595919Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8596386Z def documented_views():
2021-07-11T02:17:18.8596781Z view_labels = set()
2021-07-11T02:17:18.8597200Z for filename in docs_path.glob("*.rst"):
2021-07-11T02:17:18.8597700Z > for label in get_labels(filename):
2021-07-11T02:17:18.8598000Z
2021-07-11T02:17:18.8598415Z D:\a\datasette\datasette\tests\test_docs.py:80:
2021-07-11T02:17:18.8598874Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8599384Z D:\a\datasette\datasette\tests\test_docs.py:22: in get_labels
2021-07-11T02:17:18.8599954Z content = (docs_path / filename).read_text()
2021-07-11T02:17:18.8600617Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\pathlib.py:1197: in read_text
2021-07-11T02:17:18.8601169Z return f.read()
2021-07-11T02:17:18.8601520Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8601756Z
2021-07-11T02:17:18.8602402Z self = <encodings.cp1252.IncrementalDecoder object at 0x000001D1B51E4F60>
2021-07-11T02:17:18.8603766Z 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-11T02:17:18.8604745Z final = True
2021-07-11T02:17:18.8604963Z
2021-07-11T02:17:18.8605414Z def decode(self, input, final=False):
2021-07-11T02:17:18.8606123Z > return codecs.charmap_decode(input,self.errors,decoding_table)[0]
2021-07-11T02:17:18.8607054Z E UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 5758: character maps to <undefined>
2021-07-11T02:17:18.8607601Z
2021-07-11T02:17:18.8608214Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\encodings\cp1252.py:23: UnicodeDecodeError
2021-07-11T02:17:18.8609009Z ________ ERROR at teardown of test_initial_path_for_datasette[dbs2-/] _________
2021-07-11T02:17:18.8609389Z
2021-07-11T02:17:18.8609777Z @pytest.fixture(scope="session")
2021-07-11T02:17:18.8610221Z def app_client():
2021-07-11T02:17:18.8610642Z with make_app_client() as client:
2021-07-11T02:17:18.8611049Z > yield client
2021-07-11T02:17:18.8611277Z
2021-07-11T02:17:18.8611691Z D:\a\datasette\datasette\tests\fixtures.py:162:
2021-07-11T02:17:18.8612177Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8612752Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8613301Z next(self.gen)
2021-07-11T02:17:18.8613841Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8614396Z yield TestClient(ds)
2021-07-11T02:17:18.8614971Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8615537Z self.cleanup()
2021-07-11T02:17:18.8616102Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8616720Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8617323Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8617921Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8618624Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8619296Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8619748Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8619986Z
2021-07-11T02:17:18.8620440Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnobr08_f'
2021-07-11T02:17:18.8621121Z onerror = <function rmtree.<locals>.onerror at 0x000001D1ABB33AE8>
2021-07-11T02:17:18.8621485Z
2021-07-11T02:17:18.8621856Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8622243Z try:
2021-07-11T02:17:18.8622606Z if os.path.islink(path):
2021-07-11T02:17:18.8623151Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8623759Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8624234Z except OSError:
2021-07-11T02:17:18.8624734Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8625316Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8625732Z return
2021-07-11T02:17:18.8626042Z names = []
2021-07-11T02:17:18.8626332Z try:
2021-07-11T02:17:18.8626695Z names = os.listdir(path)
2021-07-11T02:17:18.8627103Z except OSError:
2021-07-11T02:17:18.8627553Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8628005Z for name in names:
2021-07-11T02:17:18.8628457Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8628849Z try:
2021-07-11T02:17:18.8629240Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8629667Z except OSError:
2021-07-11T02:17:18.8630010Z mode = 0
2021-07-11T02:17:18.8630375Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8631950Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8632403Z else:
2021-07-11T02:17:18.8632716Z try:
2021-07-11T02:17:18.8633242Z > os.unlink(fullname)
2021-07-11T02:17:18.8634320Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpnobr08_f\\fixtures.db'
2021-07-11T02:17:18.8635096Z
2021-07-11T02:17:18.8635659Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8636284Z ================================== FAILURES ===================================
2021-07-11T02:17:18.8636736Z ___________________________ test_package_with_port ____________________________
2021-07-11T02:17:18.8637026Z
2021-07-11T02:17:18.8637388Z mock_call = <MagicMock name='call' id='2000071363608'>
2021-07-11T02:17:18.8637874Z mock_which = <MagicMock name='which' id='2000070249720'>
2021-07-11T02:17:18.8638172Z
2021-07-11T02:17:18.8638545Z @mock.patch("shutil.which")
2021-07-11T02:17:18.8639046Z @mock.patch("datasette.cli.call")
2021-07-11T02:17:18.8639600Z def test_package_with_port(mock_call, mock_which):
2021-07-11T02:17:18.8640111Z mock_which.return_value = True
2021-07-11T02:17:18.8640634Z capture = CaptureDockerfile()
2021-07-11T02:17:18.8641142Z mock_call.side_effect = capture
2021-07-11T02:17:18.8641566Z runner = CliRunner()
2021-07-11T02:17:18.8642042Z with runner.isolated_filesystem():
2021-07-11T02:17:18.8642529Z with open("test.db", "w") as fp:
2021-07-11T02:17:18.8642921Z fp.write("data")
2021-07-11T02:17:18.8643338Z result = runner.invoke(
2021-07-11T02:17:18.8643873Z cli.cli, ["package", "test.db", "-p", "8080", "--secret", "sekrit"]
2021-07-11T02:17:18.8644307Z )
2021-07-11T02:17:18.8644666Z > assert 0 == result.exit_code
2021-07-11T02:17:18.8645128Z E AssertionError: assert 0 == 1
2021-07-11T02:17:18.8645971Z E + where 1 = <Result PermissionError(13, 'The process cannot access the file because it is being used by another process')>.exit_code
2021-07-11T02:17:18.8646554Z
2021-07-11T02:17:18.8646967Z tests\test_package.py:56: AssertionError
2021-07-11T02:17:18.8647449Z ________________________________ test_package _________________________________
2021-07-11T02:17:18.8647723Z
2021-07-11T02:17:18.8648094Z mock_call = <MagicMock name='call' id='2000070264312'>
2021-07-11T02:17:18.8648580Z mock_which = <MagicMock name='which' id='2000070264424'>
2021-07-11T02:17:18.8648865Z
2021-07-11T02:17:18.8649226Z @mock.patch("shutil.which")
2021-07-11T02:17:18.8649738Z @mock.patch("datasette.cli.call")
2021-07-11T02:17:18.8650248Z def test_package(mock_call, mock_which):
2021-07-11T02:17:18.8650761Z mock_which.return_value = True
2021-07-11T02:17:18.8651196Z runner = CliRunner()
2021-07-11T02:17:18.8651653Z capture = CaptureDockerfile()
2021-07-11T02:17:18.8652167Z mock_call.side_effect = capture
2021-07-11T02:17:18.8652682Z with runner.isolated_filesystem():
2021-07-11T02:17:18.8653160Z with open("test.db", "w") as fp:
2021-07-11T02:17:18.8653567Z fp.write("data")
2021-07-11T02:17:18.8654119Z result = runner.invoke(cli.cli, ["package", "test.db", "--secret", "sekrit"])
2021-07-11T02:17:18.8654708Z > assert 0 == result.exit_code
2021-07-11T02:17:18.8655174Z E AssertionError: assert 0 == 1
2021-07-11T02:17:18.8655953Z E + where 1 = <Result PermissionError(13, 'The process cannot access the file because it is being used by another process')>.exit_code
2021-07-11T02:17:18.8656533Z
2021-07-11T02:17:18.8656945Z tests\test_package.py:38: AssertionError
2021-07-11T02:17:18.8657456Z _____________________________ test_serve_with_get _____________________________
2021-07-11T02:17:18.8657730Z
2021-07-11T02:17:18.8658826Z tmp_path_factory = TempPathFactory(_given_basetemp=None, _trace=<pluggy._tracing.TagTracerSub object at 0x000001D1AB908978>, _basetemp=WindowsPath('C:/Users/runneradmin/AppData/Local/Temp/pytest-of-runneradmin/pytest-0'))
2021-07-11T02:17:18.8659892Z
2021-07-11T02:17:18.8660285Z def test_serve_with_get(tmp_path_factory):
2021-07-11T02:17:18.8660907Z plugins_dir = tmp_path_factory.mktemp("plugins_for_serve_with_get")
2021-07-11T02:17:18.8661547Z (plugins_dir / "init_for_serve_with_get.py").write_text(
2021-07-11T02:17:18.8662057Z textwrap.dedent(
2021-07-11T02:17:18.8662417Z """
2021-07-11T02:17:18.8662805Z from datasette import hookimpl
2021-07-11T02:17:18.8663178Z
2021-07-11T02:17:18.8663469Z @hookimpl
2021-07-11T02:17:18.8663861Z def startup(datasette):
2021-07-11T02:17:18.8664277Z with open("{}", "w") as fp:
2021-07-11T02:17:18.8664657Z fp.write("hello")
2021-07-11T02:17:18.8665007Z """.format(
2021-07-11T02:17:18.8665401Z str(plugins_dir / "hello.txt")
2021-07-11T02:17:18.8665773Z ),
2021-07-11T02:17:18.8666058Z ),
2021-07-11T02:17:18.8666348Z "utf-8",
2021-07-11T02:17:18.8666639Z )
2021-07-11T02:17:18.8666972Z runner = CliRunner()
2021-07-11T02:17:18.8667384Z result = runner.invoke(
2021-07-11T02:17:18.8667759Z cli,
2021-07-11T02:17:18.8668037Z [
2021-07-11T02:17:18.8668344Z "serve",
2021-07-11T02:17:18.8668680Z "--memory",
2021-07-11T02:17:18.8669043Z "--plugins-dir",
2021-07-11T02:17:18.8669435Z str(plugins_dir),
2021-07-11T02:17:18.8669785Z "--get",
2021-07-11T02:17:18.8670238Z "/_memory.json?sql=select+sqlite_version()",
2021-07-11T02:17:18.8670694Z ],
2021-07-11T02:17:18.8670968Z )
2021-07-11T02:17:18.8671379Z > assert 0 == result.exit_code, result.output
2021-07-11T02:17:18.8671949Z E AssertionError:
2021-07-11T02:17:18.8672308Z E assert 0 == 1
2021-07-11T02:17:18.8673510Z E + where 1 = <Result SyntaxError("(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \\UXXXXXXXX e...dmin\\AppData\\Local\\Temp\\pytest-of-runneradmin\\pytest-0\\plugins_for_serve_with_get0\\hello.txt", "w") as fp:\n'))>.exit_code
2021-07-11T02:17:18.8674558Z
2021-07-11T02:17:18.8675091Z D:\a\datasette\datasette\tests\test_cli_serve_get.py:37: AssertionError
2021-07-11T02:17:18.8675951Z _ test_searchable[/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw-expected_rows3] _
2021-07-11T02:17:18.8676481Z
2021-07-11T02:17:18.8677170Z app_client = <datasette.utils.testing.TestClient object at 0x000001D1AEBF2C18>
2021-07-11T02:17:18.8678102Z path = '/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw'
2021-07-11T02:17:18.8678830Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']]
2021-07-11T02:17:18.8679246Z
2021-07-11T02:17:18.8679673Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8680174Z "path,expected_rows",
2021-07-11T02:17:18.8680542Z [
2021-07-11T02:17:18.8680843Z (
2021-07-11T02:17:18.8681268Z "/fixtures/searchable.json?_search=dog",
2021-07-11T02:17:18.8681699Z [
2021-07-11T02:17:18.8682091Z [1, "barry cat", "terry dog", "panther"],
2021-07-11T02:17:18.8682553Z [2, "terry dog", "sara weasel", "puma"],
2021-07-11T02:17:18.8682925Z ],
2021-07-11T02:17:18.8683196Z ),
2021-07-11T02:17:18.8683474Z (
2021-07-11T02:17:18.8683907Z # Special keyword shouldn't break FTS query
2021-07-11T02:17:18.8684462Z "/fixtures/searchable.json?_search=AND",
2021-07-11T02:17:18.8684897Z [],
2021-07-11T02:17:18.8685177Z ),
2021-07-11T02:17:18.8685446Z (
2021-07-11T02:17:18.8685903Z # Without _searchmode=raw this should return no results
2021-07-11T02:17:18.8686595Z "/fixtures/searchable.json?_search=te*+AND+do*",
2021-07-11T02:17:18.8687035Z [],
2021-07-11T02:17:18.8687319Z ),
2021-07-11T02:17:18.8687586Z (
2021-07-11T02:17:18.8687929Z # _searchmode=raw
2021-07-11T02:17:18.8688495Z "/fixtures/searchable.json?_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8688988Z [
2021-07-11T02:17:18.8689379Z [1, "barry cat", "terry dog", "panther"],
2021-07-11T02:17:18.8689853Z [2, "terry dog", "sara weasel", "puma"],
2021-07-11T02:17:18.8690214Z ],
2021-07-11T02:17:18.8690499Z ),
2021-07-11T02:17:18.8690802Z (
2021-07-11T02:17:18.8691229Z # _searchmode=raw combined with _search_COLUMN
2021-07-11T02:17:18.8691890Z "/fixtures/searchable.json?_search_text2=te*&_searchmode=raw",
2021-07-11T02:17:18.8692392Z [
2021-07-11T02:17:18.8692770Z [1, "barry cat", "terry dog", "panther"],
2021-07-11T02:17:18.8693143Z ],
2021-07-11T02:17:18.8693412Z ),
2021-07-11T02:17:18.8693691Z (
2021-07-11T02:17:18.8694149Z "/fixtures/searchable.json?_search=weasel",
2021-07-11T02:17:18.8694685Z [[2, "terry dog", "sara weasel", "puma"]],
2021-07-11T02:17:18.8695049Z ),
2021-07-11T02:17:18.8695329Z (
2021-07-11T02:17:18.8695769Z "/fixtures/searchable.json?_search_text2=dog",
2021-07-11T02:17:18.8696314Z [[1, "barry cat", "terry dog", "panther"]],
2021-07-11T02:17:18.8696683Z ),
2021-07-11T02:17:18.8696948Z (
2021-07-11T02:17:18.8697472Z "/fixtures/searchable.json?_search_name%20with%20.%20and%20spaces=panther",
2021-07-11T02:17:18.8698145Z [[1, "barry cat", "terry dog", "panther"]],
2021-07-11T02:17:18.8698516Z ),
2021-07-11T02:17:18.8698791Z ],
2021-07-11T02:17:18.8699052Z )
2021-07-11T02:17:18.8699505Z def test_searchable(app_client, path, expected_rows):
2021-07-11T02:17:18.8700069Z response = app_client.get(path)
2021-07-11T02:17:18.8700626Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8701222Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == []
2021-07-11T02:17:18.8701885Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther']
2021-07-11T02:17:18.8702442Z E Use -v to get the full diff
2021-07-11T02:17:18.8702702Z
2021-07-11T02:17:18.8703193Z D:\a\datasette\datasette\tests\test_api.py:1062: AssertionError
2021-07-11T02:17:18.8703910Z _____ test_searchmode[table_metadata0-_search=te*+AND+do*-expected_rows0] _____
2021-07-11T02:17:18.8704333Z
2021-07-11T02:17:18.8704822Z table_metadata = {}, querystring = '_search=te*+AND+do*', expected_rows = []
2021-07-11T02:17:18.8705222Z
2021-07-11T02:17:18.8705626Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8706326Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8706861Z [
2021-07-11T02:17:18.8707123Z (
2021-07-11T02:17:18.8707409Z {},
2021-07-11T02:17:18.8707755Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8708081Z [],
2021-07-11T02:17:18.8708365Z ),
2021-07-11T02:17:18.8708631Z (
2021-07-11T02:17:18.8708975Z {"searchmode": "raw"},
2021-07-11T02:17:18.8709372Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8709784Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8710147Z ),
2021-07-11T02:17:18.8710425Z (
2021-07-11T02:17:18.8710722Z {},
2021-07-11T02:17:18.8711121Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8711603Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8711950Z ),
2021-07-11T02:17:18.8712444Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8712865Z (
2021-07-11T02:17:18.8713209Z {"searchmode": "raw"},
2021-07-11T02:17:18.8713687Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8714087Z [],
2021-07-11T02:17:18.8714371Z ),
2021-07-11T02:17:18.8714649Z ],
2021-07-11T02:17:18.8714903Z )
2021-07-11T02:17:18.8715413Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8715978Z with make_app_client(
2021-07-11T02:17:18.8716547Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8717083Z ) as client:
2021-07-11T02:17:18.8717640Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8718331Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8718674Z
2021-07-11T02:17:18.8719094Z D:\a\datasette\datasette\tests\test_api.py:1102:
2021-07-11T02:17:18.8719548Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8720123Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8720707Z next(self.gen)
2021-07-11T02:17:18.8721230Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8721781Z yield TestClient(ds)
2021-07-11T02:17:18.8722370Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8722920Z self.cleanup()
2021-07-11T02:17:18.8723509Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8724162Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8724764Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8725995Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8726628Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8727295Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8727758Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8728001Z
2021-07-11T02:17:18.8728450Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpr0os2b85'
2021-07-11T02:17:18.8729098Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF06FAE8>
2021-07-11T02:17:18.8729475Z
2021-07-11T02:17:18.8729829Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8730212Z try:
2021-07-11T02:17:18.8730958Z if os.path.islink(path):
2021-07-11T02:17:18.8731525Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8732128Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8732661Z except OSError:
2021-07-11T02:17:18.8733143Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8733723Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8734152Z return
2021-07-11T02:17:18.8734452Z names = []
2021-07-11T02:17:18.8734751Z try:
2021-07-11T02:17:18.8735100Z names = os.listdir(path)
2021-07-11T02:17:18.8735506Z except OSError:
2021-07-11T02:17:18.8735972Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8736409Z for name in names:
2021-07-11T02:17:18.8736852Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8737249Z try:
2021-07-11T02:17:18.8737626Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8738056Z except OSError:
2021-07-11T02:17:18.8738412Z mode = 0
2021-07-11T02:17:18.8738761Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8739220Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8739619Z else:
2021-07-11T02:17:18.8739928Z try:
2021-07-11T02:17:18.8740368Z > os.unlink(fullname)
2021-07-11T02:17:18.8741340Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpr0os2b85\\fixtures.db'
2021-07-11T02:17:18.8742117Z
2021-07-11T02:17:18.8742681Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8743484Z _____ test_searchmode[table_metadata1-_search=te*+AND+do*-expected_rows1] _____
2021-07-11T02:17:18.8743895Z
2021-07-11T02:17:18.8744374Z sql_time_limit_ms = None, max_returned_rows = None, cors = False, memory = False
2021-07-11T02:17:18.8745093Z config = {'default_page_size': 50, 'max_returned_rows': 100, 'num_sql_threads': 1, 'sql_time_limit_ms': 200}
2021-07-11T02:17:18.8745809Z filename = 'fixtures.db', is_immutable = False, extra_databases = None
2021-07-11T02:17:18.8746470Z inspect_data = None, static_mounts = None, template_dir = None
2021-07-11T02:17:18.8747154Z metadata = {'databases': {'fixtures': {'tables': {'searchable': {'searchmode': 'raw'}}}}}
2021-07-11T02:17:18.8747679Z crossdb = False
2021-07-11T02:17:18.8747907Z
2021-07-11T02:17:18.8748342Z @contextlib.contextmanager
2021-07-11T02:17:18.8748843Z def make_app_client(
2021-07-11T02:17:18.8749220Z sql_time_limit_ms=None,
2021-07-11T02:17:18.8749623Z max_returned_rows=None,
2021-07-11T02:17:18.8749984Z cors=False,
2021-07-11T02:17:18.8750327Z memory=False,
2021-07-11T02:17:18.8750700Z config=None,
2021-07-11T02:17:18.8751084Z filename="fixtures.db",
2021-07-11T02:17:18.8751501Z is_immutable=False,
2021-07-11T02:17:18.8751910Z extra_databases=None,
2021-07-11T02:17:18.8752297Z inspect_data=None,
2021-07-11T02:17:18.8752764Z static_mounts=None,
2021-07-11T02:17:18.8753153Z template_dir=None,
2021-07-11T02:17:18.8753523Z metadata=None,
2021-07-11T02:17:18.8753887Z crossdb=False,
2021-07-11T02:17:18.8754187Z ):
2021-07-11T02:17:18.8754719Z with tempfile.TemporaryDirectory() as tmpdir:
2021-07-11T02:17:18.8755405Z filepath = os.path.join(tmpdir, filename)
2021-07-11T02:17:18.8755873Z if is_immutable:
2021-07-11T02:17:18.8756230Z files = []
2021-07-11T02:17:18.8756625Z immutables = [filepath]
2021-07-11T02:17:18.8756993Z else:
2021-07-11T02:17:18.8757347Z files = [filepath]
2021-07-11T02:17:18.8757719Z immutables = []
2021-07-11T02:17:18.8758176Z conn = sqlite3.connect(filepath)
2021-07-11T02:17:18.8758713Z conn.executescript(TABLES)
2021-07-11T02:17:18.8759257Z for sql, params in TABLE_PARAMETERIZED_SQL:
2021-07-11T02:17:18.8759712Z with conn:
2021-07-11T02:17:18.8760127Z conn.execute(sql, params)
2021-07-11T02:17:18.8760608Z if extra_databases is not None:
2021-07-11T02:17:18.8761193Z for extra_filename, extra_sql in extra_databases.items():
2021-07-11T02:17:18.8761870Z extra_filepath = os.path.join(tmpdir, extra_filename)
2021-07-11T02:17:18.8762571Z sqlite3.connect(extra_filepath).executescript(extra_sql)
2021-07-11T02:17:18.8763245Z # Insert at start to help test /-/databases ordering:
2021-07-11T02:17:18.8763810Z files.insert(0, extra_filepath)
2021-07-11T02:17:18.8764334Z os.chdir(os.path.dirname(filepath))
2021-07-11T02:17:18.8764796Z config = config or {}
2021-07-11T02:17:18.8765174Z for key, value in {
2021-07-11T02:17:18.8765560Z "default_page_size": 50,
2021-07-11T02:17:18.8766033Z "max_returned_rows": max_returned_rows or 100,
2021-07-11T02:17:18.8766548Z "sql_time_limit_ms": sql_time_limit_ms or 200,
2021-07-11T02:17:18.8767124Z # Default is 3 but this results in "too many open files"
2021-07-11T02:17:18.8767689Z # errors when running the full test suite:
2021-07-11T02:17:18.8768131Z "num_sql_threads": 1,
2021-07-11T02:17:18.8768482Z }.items():
2021-07-11T02:17:18.8768837Z if key not in config:
2021-07-11T02:17:18.8769215Z config[key] = value
2021-07-11T02:17:18.8769602Z ds = Datasette(
2021-07-11T02:17:18.8769954Z files,
2021-07-11T02:17:18.8770336Z immutables=immutables,
2021-07-11T02:17:18.8770793Z memory=memory,
2021-07-11T02:17:18.8771147Z cors=cors,
2021-07-11T02:17:18.8771560Z metadata=metadata or METADATA,
2021-07-11T02:17:18.8772028Z plugins_dir=PLUGINS_DIR,
2021-07-11T02:17:18.8772429Z config=config,
2021-07-11T02:17:18.8772847Z inspect_data=inspect_data,
2021-07-11T02:17:18.8773304Z static_mounts=static_mounts,
2021-07-11T02:17:18.8773751Z template_dir=template_dir,
2021-07-11T02:17:18.8774177Z crossdb=crossdb,
2021-07-11T02:17:18.8774511Z )
2021-07-11T02:17:18.8775025Z ds.sqlite_functions.append(("sleep", 1, lambda n: time.sleep(float(n))))
2021-07-11T02:17:18.8775608Z > yield TestClient(ds)
2021-07-11T02:17:18.8775874Z
2021-07-11T02:17:18.8776295Z D:\a\datasette\datasette\tests\fixtures.py:156:
2021-07-11T02:17:18.8776774Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8777011Z
2021-07-11T02:17:18.8777491Z table_metadata = {'searchmode': 'raw'}, querystring = '_search=te*+AND+do*'
2021-07-11T02:17:18.8778193Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']]
2021-07-11T02:17:18.8778665Z
2021-07-11T02:17:18.8779083Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8779765Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8780303Z [
2021-07-11T02:17:18.8780605Z (
2021-07-11T02:17:18.8780882Z {},
2021-07-11T02:17:18.8781226Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8781566Z [],
2021-07-11T02:17:18.8781838Z ),
2021-07-11T02:17:18.8782113Z (
2021-07-11T02:17:18.8782445Z {"searchmode": "raw"},
2021-07-11T02:17:18.8782842Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8783267Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8783615Z ),
2021-07-11T02:17:18.8783909Z (
2021-07-11T02:17:18.8784195Z {},
2021-07-11T02:17:18.8784584Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8785058Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8785426Z ),
2021-07-11T02:17:18.8785861Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8786295Z (
2021-07-11T02:17:18.8786628Z {"searchmode": "raw"},
2021-07-11T02:17:18.8787107Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8787523Z [],
2021-07-11T02:17:18.8787792Z ),
2021-07-11T02:17:18.8788071Z ],
2021-07-11T02:17:18.8788340Z )
2021-07-11T02:17:18.8788835Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8789396Z with make_app_client(
2021-07-11T02:17:18.8789981Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8790503Z ) as client:
2021-07-11T02:17:18.8791100Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8791779Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8792365Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == []
2021-07-11T02:17:18.8793088Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther']
2021-07-11T02:17:18.8793659Z E Use -v to get the full diff
2021-07-11T02:17:18.8793905Z
2021-07-11T02:17:18.8794393Z D:\a\datasette\datasette\tests\test_api.py:1102: AssertionError
2021-07-11T02:17:18.8794798Z
2021-07-11T02:17:18.8795282Z During handling of the above exception, another exception occurred:
2021-07-11T02:17:18.8795696Z
2021-07-11T02:17:18.8796181Z table_metadata = {'searchmode': 'raw'}, querystring = '_search=te*+AND+do*'
2021-07-11T02:17:18.8796890Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']]
2021-07-11T02:17:18.8797306Z
2021-07-11T02:17:18.8797717Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8798414Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8798947Z [
2021-07-11T02:17:18.8799225Z (
2021-07-11T02:17:18.8799510Z {},
2021-07-11T02:17:18.8799844Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8800185Z [],
2021-07-11T02:17:18.8800471Z ),
2021-07-11T02:17:18.8800766Z (
2021-07-11T02:17:18.8801112Z {"searchmode": "raw"},
2021-07-11T02:17:18.8801496Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8801921Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8802287Z ),
2021-07-11T02:17:18.8802558Z (
2021-07-11T02:17:18.8802845Z {},
2021-07-11T02:17:18.8803250Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8803714Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8804079Z ),
2021-07-11T02:17:18.8804523Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8804950Z (
2021-07-11T02:17:18.8805353Z {"searchmode": "raw"},
2021-07-11T02:17:18.8805827Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8806247Z [],
2021-07-11T02:17:18.8806532Z ),
2021-07-11T02:17:18.8806795Z ],
2021-07-11T02:17:18.8807064Z )
2021-07-11T02:17:18.8807577Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8808126Z with make_app_client(
2021-07-11T02:17:18.8808707Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8809242Z ) as client:
2021-07-11T02:17:18.8809801Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8810484Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8810861Z
2021-07-11T02:17:18.8811262Z D:\a\datasette\datasette\tests\test_api.py:1102:
2021-07-11T02:17:18.8811726Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8812309Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:99: in __exit__
2021-07-11T02:17:18.8812971Z self.gen.throw(type, value, traceback)
2021-07-11T02:17:18.8813611Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8814165Z yield TestClient(ds)
2021-07-11T02:17:18.8814735Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8815305Z self.cleanup()
2021-07-11T02:17:18.8815883Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8816491Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8817098Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8817710Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8818332Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8819000Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8819455Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8819680Z
2021-07-11T02:17:18.8820208Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg8lfxzro'
2021-07-11T02:17:18.8820888Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF11C620>
2021-07-11T02:17:18.8821255Z
2021-07-11T02:17:18.8821617Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8822001Z try:
2021-07-11T02:17:18.8822366Z if os.path.islink(path):
2021-07-11T02:17:18.8822907Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8823514Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8823988Z except OSError:
2021-07-11T02:17:18.8824492Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8825063Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8825480Z return
2021-07-11T02:17:18.8825794Z names = []
2021-07-11T02:17:18.8826096Z try:
2021-07-11T02:17:18.8826443Z names = os.listdir(path)
2021-07-11T02:17:18.8826846Z except OSError:
2021-07-11T02:17:18.8827298Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8827747Z for name in names:
2021-07-11T02:17:18.8828194Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8828585Z try:
2021-07-11T02:17:18.8828977Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8829406Z except OSError:
2021-07-11T02:17:18.8829750Z mode = 0
2021-07-11T02:17:18.8830116Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8830602Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8831000Z else:
2021-07-11T02:17:18.8831308Z try:
2021-07-11T02:17:18.8831658Z > os.unlink(fullname)
2021-07-11T02:17:18.8832696Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpg8lfxzro\\fixtures.db'
2021-07-11T02:17:18.8833461Z
2021-07-11T02:17:18.8834024Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8834877Z _ test_searchmode[table_metadata2-_search=te*+AND+do*&_searchmode=raw-expected_rows2] _
2021-07-11T02:17:18.8835365Z
2021-07-11T02:17:18.8835839Z sql_time_limit_ms = None, max_returned_rows = None, cors = False, memory = False
2021-07-11T02:17:18.8836554Z config = {'default_page_size': 50, 'max_returned_rows': 100, 'num_sql_threads': 1, 'sql_time_limit_ms': 200}
2021-07-11T02:17:18.8837262Z filename = 'fixtures.db', is_immutable = False, extra_databases = None
2021-07-11T02:17:18.8837919Z inspect_data = None, static_mounts = None, template_dir = None
2021-07-11T02:17:18.8838534Z metadata = {'databases': {'fixtures': {'tables': {'searchable': {}}}}}
2021-07-11T02:17:18.8839004Z crossdb = False
2021-07-11T02:17:18.8839237Z
2021-07-11T02:17:18.8839673Z @contextlib.contextmanager
2021-07-11T02:17:18.8840157Z def make_app_client(
2021-07-11T02:17:18.8840555Z sql_time_limit_ms=None,
2021-07-11T02:17:18.8840981Z max_returned_rows=None,
2021-07-11T02:17:18.8841341Z cors=False,
2021-07-11T02:17:18.8841688Z memory=False,
2021-07-11T02:17:18.8842033Z config=None,
2021-07-11T02:17:18.8842415Z filename="fixtures.db",
2021-07-11T02:17:18.8842835Z is_immutable=False,
2021-07-11T02:17:18.8843229Z extra_databases=None,
2021-07-11T02:17:18.8843635Z inspect_data=None,
2021-07-11T02:17:18.8844017Z static_mounts=None,
2021-07-11T02:17:18.8844389Z template_dir=None,
2021-07-11T02:17:18.8844771Z metadata=None,
2021-07-11T02:17:18.8845133Z crossdb=False,
2021-07-11T02:17:18.8845444Z ):
2021-07-11T02:17:18.8845977Z with tempfile.TemporaryDirectory() as tmpdir:
2021-07-11T02:17:18.8846651Z filepath = os.path.join(tmpdir, filename)
2021-07-11T02:17:18.8847181Z if is_immutable:
2021-07-11T02:17:18.8847541Z files = []
2021-07-11T02:17:18.8847917Z immutables = [filepath]
2021-07-11T02:17:18.8848295Z else:
2021-07-11T02:17:18.8848650Z files = [filepath]
2021-07-11T02:17:18.8849024Z immutables = []
2021-07-11T02:17:18.8849476Z conn = sqlite3.connect(filepath)
2021-07-11T02:17:18.8850019Z conn.executescript(TABLES)
2021-07-11T02:17:18.8850591Z for sql, params in TABLE_PARAMETERIZED_SQL:
2021-07-11T02:17:18.8851041Z with conn:
2021-07-11T02:17:18.8851444Z conn.execute(sql, params)
2021-07-11T02:17:18.8851919Z if extra_databases is not None:
2021-07-11T02:17:18.8852499Z for extra_filename, extra_sql in extra_databases.items():
2021-07-11T02:17:18.8853167Z extra_filepath = os.path.join(tmpdir, extra_filename)
2021-07-11T02:17:18.8853877Z sqlite3.connect(extra_filepath).executescript(extra_sql)
2021-07-11T02:17:18.8854556Z # Insert at start to help test /-/databases ordering:
2021-07-11T02:17:18.8855106Z files.insert(0, extra_filepath)
2021-07-11T02:17:18.8855647Z os.chdir(os.path.dirname(filepath))
2021-07-11T02:17:18.8856111Z config = config or {}
2021-07-11T02:17:18.8856474Z for key, value in {
2021-07-11T02:17:18.8856869Z "default_page_size": 50,
2021-07-11T02:17:18.8857350Z "max_returned_rows": max_returned_rows or 100,
2021-07-11T02:17:18.8857843Z "sql_time_limit_ms": sql_time_limit_ms or 200,
2021-07-11T02:17:18.8858377Z # Default is 3 but this results in "too many open files"
2021-07-11T02:17:18.8858980Z # errors when running the full test suite:
2021-07-11T02:17:18.8859419Z "num_sql_threads": 1,
2021-07-11T02:17:18.8859770Z }.items():
2021-07-11T02:17:18.8860130Z if key not in config:
2021-07-11T02:17:18.8860511Z config[key] = value
2021-07-11T02:17:18.8860920Z ds = Datasette(
2021-07-11T02:17:18.8861257Z files,
2021-07-11T02:17:18.8861656Z immutables=immutables,
2021-07-11T02:17:18.8862075Z memory=memory,
2021-07-11T02:17:18.8862420Z cors=cors,
2021-07-11T02:17:18.8862838Z metadata=metadata or METADATA,
2021-07-11T02:17:18.8863315Z plugins_dir=PLUGINS_DIR,
2021-07-11T02:17:18.8863715Z config=config,
2021-07-11T02:17:18.8864129Z inspect_data=inspect_data,
2021-07-11T02:17:18.8864581Z static_mounts=static_mounts,
2021-07-11T02:17:18.8865027Z template_dir=template_dir,
2021-07-11T02:17:18.8865456Z crossdb=crossdb,
2021-07-11T02:17:18.8865779Z )
2021-07-11T02:17:18.8866310Z ds.sqlite_functions.append(("sleep", 1, lambda n: time.sleep(float(n))))
2021-07-11T02:17:18.8866898Z > yield TestClient(ds)
2021-07-11T02:17:18.8867164Z
2021-07-11T02:17:18.8867581Z D:\a\datasette\datasette\tests\fixtures.py:156:
2021-07-11T02:17:18.8868068Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8868305Z
2021-07-11T02:17:18.8868768Z table_metadata = {}, querystring = '_search=te*+AND+do*&_searchmode=raw'
2021-07-11T02:17:18.8869482Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']]
2021-07-11T02:17:18.8869896Z
2021-07-11T02:17:18.8870311Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8871022Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8871556Z [
2021-07-11T02:17:18.8871822Z (
2021-07-11T02:17:18.8872105Z {},
2021-07-11T02:17:18.8872447Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8872841Z [],
2021-07-11T02:17:18.8873126Z ),
2021-07-11T02:17:18.8873402Z (
2021-07-11T02:17:18.8873733Z {"searchmode": "raw"},
2021-07-11T02:17:18.8874138Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8874562Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8874909Z ),
2021-07-11T02:17:18.8875186Z (
2021-07-11T02:17:18.8875464Z {},
2021-07-11T02:17:18.8875868Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8876344Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8876692Z ),
2021-07-11T02:17:18.8877136Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8877566Z (
2021-07-11T02:17:18.8877897Z {"searchmode": "raw"},
2021-07-11T02:17:18.8878383Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8878797Z [],
2021-07-11T02:17:18.8879070Z ),
2021-07-11T02:17:18.8879347Z ],
2021-07-11T02:17:18.8879601Z )
2021-07-11T02:17:18.8880114Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8880703Z with make_app_client(
2021-07-11T02:17:18.8881274Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8881799Z ) as client:
2021-07-11T02:17:18.8882366Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8883039Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8883634Z E AssertionError: assert [[1, 'barry c...sel', 'puma']] == []
2021-07-11T02:17:18.8884303Z E Left contains 2 more items, first extra item: [1, 'barry cat', 'terry dog', 'panther']
2021-07-11T02:17:18.8884911Z E Use -v to get the full diff
2021-07-11T02:17:18.8885173Z
2021-07-11T02:17:18.8885668Z D:\a\datasette\datasette\tests\test_api.py:1102: AssertionError
2021-07-11T02:17:18.8886075Z
2021-07-11T02:17:18.8886559Z During handling of the above exception, another exception occurred:
2021-07-11T02:17:18.8886979Z
2021-07-11T02:17:18.8887458Z table_metadata = {}, querystring = '_search=te*+AND+do*&_searchmode=raw'
2021-07-11T02:17:18.8888149Z expected_rows = [[1, 'barry cat', 'terry dog', 'panther'], [2, 'terry dog', 'sara weasel', 'puma']]
2021-07-11T02:17:18.8888563Z
2021-07-11T02:17:18.8888981Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8889681Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8890208Z [
2021-07-11T02:17:18.8890482Z (
2021-07-11T02:17:18.8890776Z {},
2021-07-11T02:17:18.8891120Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8891464Z [],
2021-07-11T02:17:18.8891735Z ),
2021-07-11T02:17:18.8892012Z (
2021-07-11T02:17:18.8892354Z {"searchmode": "raw"},
2021-07-11T02:17:18.8892740Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8893169Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8893530Z ),
2021-07-11T02:17:18.8893797Z (
2021-07-11T02:17:18.8894078Z {},
2021-07-11T02:17:18.8894466Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8894948Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8895309Z ),
2021-07-11T02:17:18.8895739Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8896174Z (
2021-07-11T02:17:18.8896519Z {"searchmode": "raw"},
2021-07-11T02:17:18.8896996Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8897410Z [],
2021-07-11T02:17:18.8897694Z ),
2021-07-11T02:17:18.8897953Z ],
2021-07-11T02:17:18.8898226Z )
2021-07-11T02:17:18.8898722Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8899345Z with make_app_client(
2021-07-11T02:17:18.8899931Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8900450Z ) as client:
2021-07-11T02:17:18.8901046Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8901739Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8902083Z
2021-07-11T02:17:18.8902486Z D:\a\datasette\datasette\tests\test_api.py:1102:
2021-07-11T02:17:18.8902961Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8903521Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:99: in __exit__
2021-07-11T02:17:18.8904197Z self.gen.throw(type, value, traceback)
2021-07-11T02:17:18.8904845Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8905385Z yield TestClient(ds)
2021-07-11T02:17:18.8906009Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8906579Z self.cleanup()
2021-07-11T02:17:18.8907152Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8907774Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8908375Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8908973Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8909618Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8910284Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8910759Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8910993Z
2021-07-11T02:17:18.8911452Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpqky293mt'
2021-07-11T02:17:18.8912145Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AEBACD90>
2021-07-11T02:17:18.8912524Z
2021-07-11T02:17:18.8912899Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8913282Z try:
2021-07-11T02:17:18.8913646Z if os.path.islink(path):
2021-07-11T02:17:18.8914188Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8914799Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8915273Z except OSError:
2021-07-11T02:17:18.8915770Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8916333Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8916760Z return
2021-07-11T02:17:18.8917077Z names = []
2021-07-11T02:17:18.8917367Z try:
2021-07-11T02:17:18.8917730Z names = os.listdir(path)
2021-07-11T02:17:18.8918140Z except OSError:
2021-07-11T02:17:18.8918590Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8919046Z for name in names:
2021-07-11T02:17:18.8919492Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8919881Z try:
2021-07-11T02:17:18.8920272Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8920717Z except OSError:
2021-07-11T02:17:18.8921081Z mode = 0
2021-07-11T02:17:18.8921446Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8921890Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8922301Z else:
2021-07-11T02:17:18.8922606Z try:
2021-07-11T02:17:18.8922958Z > os.unlink(fullname)
2021-07-11T02:17:18.8923907Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpqky293mt\\fixtures.db'
2021-07-11T02:17:18.8924683Z
2021-07-11T02:17:18.8925239Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8926189Z _ test_searchmode[table_metadata3-_search=te*+AND+do*&_searchmode=escaped-expected_rows3] _
2021-07-11T02:17:18.8926711Z
2021-07-11T02:17:18.8927082Z table_metadata = {'searchmode': 'raw'}
2021-07-11T02:17:18.8927673Z querystring = '_search=te*+AND+do*&_searchmode=escaped', expected_rows = []
2021-07-11T02:17:18.8928094Z
2021-07-11T02:17:18.8928514Z @pytest.mark.parametrize(
2021-07-11T02:17:18.8929195Z "table_metadata,querystring,expected_rows",
2021-07-11T02:17:18.8929732Z [
2021-07-11T02:17:18.8930011Z (
2021-07-11T02:17:18.8930282Z {},
2021-07-11T02:17:18.8930650Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8930985Z [],
2021-07-11T02:17:18.8931252Z ),
2021-07-11T02:17:18.8931531Z (
2021-07-11T02:17:18.8931878Z {"searchmode": "raw"},
2021-07-11T02:17:18.8932265Z "_search=te*+AND+do*",
2021-07-11T02:17:18.8932710Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8933064Z ),
2021-07-11T02:17:18.8933341Z (
2021-07-11T02:17:18.8933623Z {},
2021-07-11T02:17:18.8934009Z "_search=te*+AND+do*&_searchmode=raw",
2021-07-11T02:17:18.8934483Z _SEARCHMODE_RAW_RESULTS,
2021-07-11T02:17:18.8934848Z ),
2021-07-11T02:17:18.8935282Z # Can be over-ridden with _searchmode=escaped
2021-07-11T02:17:18.8935718Z (
2021-07-11T02:17:18.8936061Z {"searchmode": "raw"},
2021-07-11T02:17:18.8936527Z "_search=te*+AND+do*&_searchmode=escaped",
2021-07-11T02:17:18.8936942Z [],
2021-07-11T02:17:18.8937212Z ),
2021-07-11T02:17:18.8937493Z ],
2021-07-11T02:17:18.8937760Z )
2021-07-11T02:17:18.8938255Z def test_searchmode(table_metadata, querystring, expected_rows):
2021-07-11T02:17:18.8938866Z with make_app_client(
2021-07-11T02:17:18.8939447Z metadata={"databases": {"fixtures": {"tables": {"searchable": table_metadata}}}}
2021-07-11T02:17:18.8939973Z ) as client:
2021-07-11T02:17:18.8940542Z response = client.get("/fixtures/searchable.json?" + querystring)
2021-07-11T02:17:18.8941256Z > assert expected_rows == response.json["rows"]
2021-07-11T02:17:18.8941590Z
2021-07-11T02:17:18.8942004Z D:\a\datasette\datasette\tests\test_api.py:1102:
2021-07-11T02:17:18.8942473Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8943034Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8943594Z next(self.gen)
2021-07-11T02:17:18.8944129Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8944672Z yield TestClient(ds)
2021-07-11T02:17:18.8945261Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8945820Z self.cleanup()
2021-07-11T02:17:18.8946383Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8947004Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8947600Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8948199Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8948837Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8949496Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8949939Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8950171Z
2021-07-11T02:17:18.8950792Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpz2co01rj'
2021-07-11T02:17:18.8951485Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AEF1C2F0>
2021-07-11T02:17:18.8951866Z
2021-07-11T02:17:18.8952238Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8952610Z try:
2021-07-11T02:17:18.8952990Z if os.path.islink(path):
2021-07-11T02:17:18.8953608Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8954206Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8954695Z except OSError:
2021-07-11T02:17:18.8955196Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8955763Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8956191Z return
2021-07-11T02:17:18.8956508Z names = []
2021-07-11T02:17:18.8956795Z try:
2021-07-11T02:17:18.8957157Z names = os.listdir(path)
2021-07-11T02:17:18.8957567Z except OSError:
2021-07-11T02:17:18.8958017Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8958469Z for name in names:
2021-07-11T02:17:18.8958904Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8959314Z try:
2021-07-11T02:17:18.8959707Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8960125Z except OSError:
2021-07-11T02:17:18.8960489Z mode = 0
2021-07-11T02:17:18.8961030Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8961482Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8961895Z else:
2021-07-11T02:17:18.8962207Z try:
2021-07-11T02:17:18.8962555Z > os.unlink(fullname)
2021-07-11T02:17:18.8963575Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpz2co01rj\\fixtures.db'
2021-07-11T02:17:18.8964390Z
2021-07-11T02:17:18.8964985Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.8965860Z __________ test_table_filter_extra_where_disabled_if_no_sql_allowed ___________
2021-07-11T02:17:18.8966280Z
2021-07-11T02:17:18.8966939Z def test_table_filter_extra_where_disabled_if_no_sql_allowed():
2021-07-11T02:17:18.8967629Z with make_app_client(metadata={"allow_sql": {}}) as client:
2021-07-11T02:17:18.8968427Z response = client.get("/fixtures/facetable.json?_where=neighborhood='Dogpatch'")
2021-07-11T02:17:18.8969192Z assert 403 == response.status
2021-07-11T02:17:18.8969815Z > assert "_where= is not allowed" == response.json["error"]
2021-07-11T02:17:18.8970224Z
2021-07-11T02:17:18.8970688Z D:\a\datasette\datasette\tests\test_api.py:1249:
2021-07-11T02:17:18.8971211Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8971859Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.8972439Z next(self.gen)
2021-07-11T02:17:18.8973053Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.8973628Z yield TestClient(ds)
2021-07-11T02:17:18.8974279Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.8974910Z self.cleanup()
2021-07-11T02:17:18.8975510Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.8976198Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.8976851Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.8977475Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.8978182Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.8978906Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.8979395Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.8979656Z
2021-07-11T02:17:18.8980165Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8y8zs73o'
2021-07-11T02:17:18.8980850Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF102F28>
2021-07-11T02:17:18.8981241Z
2021-07-11T02:17:18.8981739Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.8982204Z try:
2021-07-11T02:17:18.8982593Z if os.path.islink(path):
2021-07-11T02:17:18.8983193Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.8983864Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.8984373Z except OSError:
2021-07-11T02:17:18.8984945Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.8985589Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.8986027Z return
2021-07-11T02:17:18.8986394Z names = []
2021-07-11T02:17:18.8986724Z try:
2021-07-11T02:17:18.8987157Z names = os.listdir(path)
2021-07-11T02:17:18.8987638Z except OSError:
2021-07-11T02:17:18.8988131Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.8988648Z for name in names:
2021-07-11T02:17:18.8989174Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.8989612Z try:
2021-07-11T02:17:18.8990054Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.8990500Z except OSError:
2021-07-11T02:17:18.8990940Z mode = 0
2021-07-11T02:17:18.8991398Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.8991878Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.8992342Z else:
2021-07-11T02:17:18.8992702Z try:
2021-07-11T02:17:18.9015218Z > os.unlink(fullname)
2021-07-11T02:17:18.9016200Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmp8y8zs73o\\fixtures.db'
2021-07-11T02:17:18.9017130Z
2021-07-11T02:17:18.9017699Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.9018352Z ____________________________ test_allow_facet_off _____________________________
2021-07-11T02:17:18.9018620Z
2021-07-11T02:17:18.9018956Z def test_allow_facet_off():
2021-07-11T02:17:18.9019471Z with make_app_client(config={"allow_facet": False}) as client:
2021-07-11T02:17:18.9020159Z assert 400 == client.get("/fixtures/facetable.json?_facet=planet_int").status
2021-07-11T02:17:18.9020861Z # Should not suggest any facets either:
2021-07-11T02:17:18.9021514Z > assert [] == client.get("/fixtures/facetable.json").json["suggested_facets"]
2021-07-11T02:17:18.9021956Z
2021-07-11T02:17:18.9022359Z D:\a\datasette\datasette\tests\test_api.py:1690:
2021-07-11T02:17:18.9022826Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9023404Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.9023958Z next(self.gen)
2021-07-11T02:17:18.9024494Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.9025042Z yield TestClient(ds)
2021-07-11T02:17:18.9025631Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.9026200Z self.cleanup()
2021-07-11T02:17:18.9026763Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.9027389Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.9027993Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.9028587Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.9029224Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.9029890Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.9030338Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9030604Z
2021-07-11T02:17:18.9031068Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwaxyb2xi'
2021-07-11T02:17:18.9032313Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF0AF488>
2021-07-11T02:17:18.9032734Z
2021-07-11T02:17:18.9033110Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.9033492Z try:
2021-07-11T02:17:18.9033854Z if os.path.islink(path):
2021-07-11T02:17:18.9034396Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.9035001Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.9035471Z except OSError:
2021-07-11T02:17:18.9035969Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.9036533Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.9036959Z return
2021-07-11T02:17:18.9037272Z names = []
2021-07-11T02:17:18.9037558Z try:
2021-07-11T02:17:18.9037923Z names = os.listdir(path)
2021-07-11T02:17:18.9038325Z except OSError:
2021-07-11T02:17:18.9038782Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.9039240Z for name in names:
2021-07-11T02:17:18.9039687Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.9040079Z try:
2021-07-11T02:17:18.9040471Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.9040918Z except OSError:
2021-07-11T02:17:18.9041261Z mode = 0
2021-07-11T02:17:18.9041605Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.9042052Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.9042464Z else:
2021-07-11T02:17:18.9042774Z try:
2021-07-11T02:17:18.9043120Z > os.unlink(fullname)
2021-07-11T02:17:18.9044081Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpwaxyb2xi\\fixtures.db'
2021-07-11T02:17:18.9044929Z
2021-07-11T02:17:18.9045491Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.9046145Z ___________________________ test_suggest_facets_off ___________________________
2021-07-11T02:17:18.9046437Z
2021-07-11T02:17:18.9046787Z def test_suggest_facets_off():
2021-07-11T02:17:18.9047317Z with make_app_client(config={"suggest_facets": False}) as client:
2021-07-11T02:17:18.9047873Z # Now suggested_facets should be []
2021-07-11T02:17:18.9048510Z > assert [] == client.get("/fixtures/facetable.json").json["suggested_facets"]
2021-07-11T02:17:18.9048952Z
2021-07-11T02:17:18.9049354Z D:\a\datasette\datasette\tests\test_api.py:1696:
2021-07-11T02:17:18.9049823Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9050386Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.9050985Z next(self.gen)
2021-07-11T02:17:18.9051526Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.9052069Z yield TestClient(ds)
2021-07-11T02:17:18.9052662Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.9053230Z self.cleanup()
2021-07-11T02:17:18.9053798Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.9054421Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.9055022Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.9055616Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.9056253Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.9056918Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.9057364Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9057601Z
2021-07-11T02:17:18.9058065Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpslr3iq0d'
2021-07-11T02:17:18.9058751Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF146488>
2021-07-11T02:17:18.9059123Z
2021-07-11T02:17:18.9059493Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.9059873Z try:
2021-07-11T02:17:18.9060237Z if os.path.islink(path):
2021-07-11T02:17:18.9060804Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.9061410Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.9061881Z except OSError:
2021-07-11T02:17:18.9062374Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.9062932Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.9063358Z return
2021-07-11T02:17:18.9063673Z names = []
2021-07-11T02:17:18.9063960Z try:
2021-07-11T02:17:18.9064325Z names = os.listdir(path)
2021-07-11T02:17:18.9064727Z except OSError:
2021-07-11T02:17:18.9065185Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.9065640Z for name in names:
2021-07-11T02:17:18.9066081Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.9066468Z try:
2021-07-11T02:17:18.9066858Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.9067277Z except OSError:
2021-07-11T02:17:18.9067635Z mode = 0
2021-07-11T02:17:18.9067995Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.9068442Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.9068857Z else:
2021-07-11T02:17:18.9069165Z try:
2021-07-11T02:17:18.9069505Z > os.unlink(fullname)
2021-07-11T02:17:18.9070447Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpslr3iq0d\\fixtures.db'
2021-07-11T02:17:18.9071292Z
2021-07-11T02:17:18.9071854Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.9072520Z ________________________ test_config_force_https_urls _________________________
2021-07-11T02:17:18.9072820Z
2021-07-11T02:17:18.9073163Z def test_config_force_https_urls():
2021-07-11T02:17:18.9073720Z with make_app_client(config={"force_https_urls": True}) as client:
2021-07-11T02:17:18.9074422Z response = client.get("/fixtures/facetable.json?_size=3&_facet=state")
2021-07-11T02:17:18.9075129Z assert response.json["next_url"].startswith("https://")
2021-07-11T02:17:18.9075780Z assert response.json["facet_results"]["state"]["results"][0][
2021-07-11T02:17:18.9076264Z "toggle_url"
2021-07-11T02:17:18.9076651Z ].startswith("https://")
2021-07-11T02:17:18.9077269Z assert response.json["suggested_facets"][0]["toggle_url"].startswith("https://")
2021-07-11T02:17:18.9078030Z # Also confirm that request.url and request.scheme are set correctly
2021-07-11T02:17:18.9078637Z response = client.get("/")
2021-07-11T02:17:18.9079250Z assert client.ds._last_request.url.startswith("https://")
2021-07-11T02:17:18.9079925Z > assert client.ds._last_request.scheme == "https"
2021-07-11T02:17:18.9080289Z
2021-07-11T02:17:18.9080731Z D:\a\datasette\datasette\tests\test_api.py:1869:
2021-07-11T02:17:18.9081201Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9081757Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.9082322Z next(self.gen)
2021-07-11T02:17:18.9082857Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.9083397Z yield TestClient(ds)
2021-07-11T02:17:18.9083985Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.9084535Z self.cleanup()
2021-07-11T02:17:18.9085170Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.9085796Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.9086380Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.9086985Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.9087624Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.9088276Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.9088746Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9088982Z
2021-07-11T02:17:18.9089447Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb4rxb9g5'
2021-07-11T02:17:18.9090079Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF1D4510>
2021-07-11T02:17:18.9090450Z
2021-07-11T02:17:18.9090845Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.9091216Z try:
2021-07-11T02:17:18.9091591Z if os.path.islink(path):
2021-07-11T02:17:18.9092133Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.9092726Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.9093204Z except OSError:
2021-07-11T02:17:18.9093698Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.9094252Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.9094673Z return
2021-07-11T02:17:18.9094972Z names = []
2021-07-11T02:17:18.9095269Z try:
2021-07-11T02:17:18.9095627Z names = os.listdir(path)
2021-07-11T02:17:18.9096018Z except OSError:
2021-07-11T02:17:18.9096481Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.9096926Z for name in names:
2021-07-11T02:17:18.9097412Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.9097815Z try:
2021-07-11T02:17:18.9098211Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.9098630Z except OSError:
2021-07-11T02:17:18.9098986Z mode = 0
2021-07-11T02:17:18.9099335Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.9099798Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.9100208Z else:
2021-07-11T02:17:18.9100504Z try:
2021-07-11T02:17:18.9100888Z > os.unlink(fullname)
2021-07-11T02:17:18.9101833Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpb4rxb9g5\\fixtures.db'
2021-07-11T02:17:18.9102595Z
2021-07-11T02:17:18.9103137Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.9103778Z ______________________________ test_trace[True] _______________________________
2021-07-11T02:17:18.9104047Z
2021-07-11T02:17:18.9104339Z trace_debug = True
2021-07-11T02:17:18.9104569Z
2021-07-11T02:17:18.9105072Z @pytest.mark.parametrize("trace_debug", (True, False))
2021-07-11T02:17:18.9105646Z def test_trace(trace_debug):
2021-07-11T02:17:18.9106177Z with make_app_client(config={"trace_debug": trace_debug}) as client:
2021-07-11T02:17:18.9106864Z response = client.get("/fixtures/simple_primary_key.json?_trace=1")
2021-07-11T02:17:18.9107459Z > assert response.status == 200
2021-07-11T02:17:18.9107743Z
2021-07-11T02:17:18.9108154Z D:\a\datasette\datasette\tests\test_api.py:1899:
2021-07-11T02:17:18.9108621Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9109179Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.9109740Z next(self.gen)
2021-07-11T02:17:18.9110278Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.9110848Z yield TestClient(ds)
2021-07-11T02:17:18.9111479Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.9112048Z self.cleanup()
2021-07-11T02:17:18.9112612Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.9113236Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.9113841Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.9114442Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.9115076Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.9115728Z onerror(os.unlink, fullname, sys.exc_info())
2021-07-11T02:17:18.9116193Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9116426Z
2021-07-11T02:17:18.9116892Z path = 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbekge2i3'
2021-07-11T02:17:18.9117538Z onerror = <function rmtree.<locals>.onerror at 0x000001D1AF282B70>
2021-07-11T02:17:18.9117907Z
2021-07-11T02:17:18.9118282Z def _rmtree_unsafe(path, onerror):
2021-07-11T02:17:18.9118653Z try:
2021-07-11T02:17:18.9119033Z if os.path.islink(path):
2021-07-11T02:17:18.9119570Z # symlinks to directories are forbidden, see bug #1669
2021-07-11T02:17:18.9120163Z raise OSError("Cannot call rmtree on a symbolic link")
2021-07-11T02:17:18.9120675Z except OSError:
2021-07-11T02:17:18.9121175Z onerror(os.path.islink, path, sys.exc_info())
2021-07-11T02:17:18.9121733Z # can't continue even if onerror hook returns
2021-07-11T02:17:18.9122157Z return
2021-07-11T02:17:18.9122468Z names = []
2021-07-11T02:17:18.9122754Z try:
2021-07-11T02:17:18.9123118Z names = os.listdir(path)
2021-07-11T02:17:18.9123508Z except OSError:
2021-07-11T02:17:18.9124028Z onerror(os.listdir, path, sys.exc_info())
2021-07-11T02:17:18.9124475Z for name in names:
2021-07-11T02:17:18.9124911Z fullname = os.path.join(path, name)
2021-07-11T02:17:18.9125311Z try:
2021-07-11T02:17:18.9125701Z mode = os.lstat(fullname).st_mode
2021-07-11T02:17:18.9126117Z except OSError:
2021-07-11T02:17:18.9126469Z mode = 0
2021-07-11T02:17:18.9126832Z if stat.S_ISDIR(mode):
2021-07-11T02:17:18.9127277Z _rmtree_unsafe(fullname, onerror)
2021-07-11T02:17:18.9127684Z else:
2021-07-11T02:17:18.9127978Z try:
2021-07-11T02:17:18.9128333Z > os.unlink(fullname)
2021-07-11T02:17:18.9129292Z E PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\tmpbekge2i3\\fixtures.db'
2021-07-11T02:17:18.9130066Z
2021-07-11T02:17:18.9130629Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:393: PermissionError
2021-07-11T02:17:18.9131283Z ______________________________ test_trace[False] ______________________________
2021-07-11T02:17:18.9131554Z
2021-07-11T02:17:18.9131862Z trace_debug = False
2021-07-11T02:17:18.9132084Z
2021-07-11T02:17:18.9132603Z @pytest.mark.parametrize("trace_debug", (True, False))
2021-07-11T02:17:18.9133177Z def test_trace(trace_debug):
2021-07-11T02:17:18.9133704Z with make_app_client(config={"trace_debug": trace_debug}) as client:
2021-07-11T02:17:18.9134386Z response = client.get("/fixtures/simple_primary_key.json?_trace=1")
2021-07-11T02:17:18.9134993Z > assert response.status == 200
2021-07-11T02:17:18.9135276Z
2021-07-11T02:17:18.9135688Z D:\a\datasette\datasette\tests\test_api.py:1899:
2021-07-11T02:17:18.9136155Z _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
2021-07-11T02:17:18.9136717Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\contextlib.py:88: in __exit__
2021-07-11T02:17:18.9137277Z next(self.gen)
2021-07-11T02:17:18.9137863Z D:\a\datasette\datasette\tests\fixtures.py:156: in make_app_client
2021-07-11T02:17:18.9138410Z yield TestClient(ds)
2021-07-11T02:17:18.9138998Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:809: in __exit__
2021-07-11T02:17:18.9139563Z self.cleanup()
2021-07-11T02:17:18.9140125Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\tempfile.py:813: in cleanup
2021-07-11T02:17:18.9140757Z _shutil.rmtree(self.name)
2021-07-11T02:17:18.9141344Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:500: in rmtree
2021-07-11T02:17:18.9141935Z return _rmtree_unsafe(path, onerror)
2021-07-11T02:17:18.9142562Z c:\hostedtoolcache\windows\python\3.6.8\x64\lib\shutil.py:395: in _rmtree_unsafe
2021-07-11T02:17:18.9143219Z onerror(os.unlink, fullname, sys.exc_info())