On Thu, Oct 30, 2025 at 10:45:32AM +0100, Thomas Huth wrote:
> On 30/10/2025 10.42, Thomas Huth wrote:
> > On 30/10/2025 10.33, Daniel P. Berrangé wrote:
> > > On Thu, Oct 30, 2025 at 10:26:38AM +0100, Thomas Huth wrote:
> > > > From: Thomas Huth <[email protected]>
> > > > 
> > > > The argparse.FileType() type has been deprecated in the latest argparse
> > > > version (e.g. the one from Fedora 43), now causing the test_bad_vmstate
> > > > functional test to fail since there are unexpected strings in the 
> > > > output.
> > > > Change the script to use pathlib.Path instead to fix the 
> > > > test_bad_vmstate
> > > > test and to be prepared for the future when the deprecated FileType gets
> > > > removed completely.
> ...
> > > > @@ -393,10 +394,10 @@ def main():
> > > >                           help='reverse the direction')
> > > >       args = parser.parse_args()
> > > > -    src_data = json.load(args.src)
> > > > -    dest_data = json.load(args.dest)
> > > > -    args.src.close()
> > > > -    args.dest.close()
> > > > +    with open(args.src, 'r', encoding='utf-8') as src_fh:
> > > > +        src_data = json.load(src_fh)
> > > > +    with open(args.dest, 'r', encoding='utf-8') as dst_fh:
> > > > +        dest_data = json.load(dst_fh)
> > > 
> > > This could be
> > > 
> > >   src_data = json.load(args.src.read_text('utf-8'))
> > >   dest_data = json.load(args.dest.read_text('utf-8'))
> > 
> > Does not work, looks like the load() function cannot deal with a string:
> > 
> > $ scripts/vmstate-static-checker.py -s
> > tests/data/vmstate-static-checker/ dump1.json -d
> > tests/data/vmstate-static-checker/dump2.json
> > Traceback (most recent call last):
> >    File "../scripts/vmstate-static-checker.py", line 439, in <module>
> >      sys.exit(main())
> >               ~~~~^^
> >    File "../scripts/vmstate-static-checker.py", line 397, in main
> >      src_data = json.load(args.src.read_text('utf-8'))
> >    File "/usr/lib64/python3.13/json/__init__.py", line 293, in load
> >      return loads(fp.read(),
> >                   ^^^^^^^
> > AttributeError: 'str' object has no attribute 'read'
> 
> Ok, there also seems to be a json.loads() function (with "s" at the end)
> that seems to do the job ... but IMHO it would be better to continue using
> the load() function here to let the json parser decide how to read the file.

ok, I don't mind that much

Reviewed-by: Daniel P. Berrangé <[email protected]>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to