Skip to content

LWPCookieJar.save() gives unexpected results in 3.11.0 #99576

Closed
@sebdelsol

Description

@sebdelsol

Bug report

LWPCookieJar.save() doesn't truncate the file.
So removing cookies from an existing jar file then saving it gives unexpected results :

from http.cookiejar import LWPCookieJar
from urllib.request import Request, urlopen

lwp = LWPCookieJar("cookies.lwp")

# get some cookies & save
request = Request("https://www.scoopmeacookie.com/give-me-more/")
with urlopen(request) as response:
    lwp.extract_cookies(response, request)
# here's some cookies
print(f"Extracted : {lwp}")
lwp.save()

# clear the jar & save
lwp.clear()
# the jar is now empty
print(f"Clear     : {lwp}")
lwp.save()

# are those cookies really gone ?
lwp.load()
# they're back ! that would be great IRL
# LWPCookieJar.save() didn't truncate the file (os.O_TRUNC is missing)
print(f"Reload    : {lwp}")

Environment

  • Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)]
  • Windows 10 64 bits 22H2

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions