Author vajrasky
Recipients BreamoreBoy, ezio.melotti, vajrasky, zach.ware
Date 2014-08-05.14:46:47
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1407250007.99.0.0414856205967.issue20056@psf.upfronthosting.co.za>
In-reply-to
Content
Okay, here is the problem. In Windows, you get DeprecationWarning if you pass bytes object to method such as os.lstat.

foo.py
======
import os
os.lstat(b"C:\\Users\\vajrasky\\Code\\cpython\\python.bat")

C:\Users\vajrasky\Code\cpython>python.bat -Wdefault foo.py
foo.py:2: DeprecationWarning: The Windows bytes API has been deprecated, use Unicode filenames instead
  os.lstat(b"C:\\Users\\vajrasky\\Code\\cpython\\python.bat")

The test that throws this error is this one:

    def test_rmtree_works_on_bytes(self):
        tmp = self.mkdtemp()
        victim = os.path.join(tmp, 'killme')
        os.mkdir(victim)
        write_file(os.path.join(victim, 'somefile'), 'foo')
        victim = os.fsencode(victim)
        self.assertIsInstance(victim, bytes)
        shutil.rmtree(victim)  => This one calls os.lstat

So I am not sure how to fix this problem. Disable the test for Windows? If we convert the path to Unicode then the test losses the meaning.
History
Date User Action Args
2014-08-05 14:46:48vajraskysetrecipients: + vajrasky, ezio.melotti, BreamoreBoy, zach.ware
2014-08-05 14:46:47vajraskysetmessageid: <1407250007.99.0.0414856205967.issue20056@psf.upfronthosting.co.za>
2014-08-05 14:46:47vajraskylinkissue20056 messages
2014-08-05 14:46:47vajraskycreate