bpo-35458: Fix test_shutil.test_disk_usage() (GH-11111)

The following test fails if a different process creates or removes
a file on the same disk partition between the two lines:

    usage = shutil.disk_usage(os.path.dirname(__file__))
    self.assertEqual(usage, shutil.disk_usage(__file__))

Only test that disk_usage() succeed on a filename, but don't check
the result. Add also tests on the fields type (must be int).
This commit is contained in:
Victor Stinner 2018-12-11 12:05:21 +01:00 committed by GitHub
parent 8905fcc85a
commit dc525f4315
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -1363,13 +1363,17 @@ class TestShutil(unittest.TestCase):
"disk_usage not available on this platform") "disk_usage not available on this platform")
def test_disk_usage(self): def test_disk_usage(self):
usage = shutil.disk_usage(os.path.dirname(__file__)) usage = shutil.disk_usage(os.path.dirname(__file__))
self.assertEqual(usage, shutil.disk_usage(__file__)) for attr in ('total', 'used', 'free'):
self.assertIsInstance(getattr(usage, attr), int)
self.assertGreater(usage.total, 0) self.assertGreater(usage.total, 0)
self.assertGreater(usage.used, 0) self.assertGreater(usage.used, 0)
self.assertGreaterEqual(usage.free, 0) self.assertGreaterEqual(usage.free, 0)
self.assertGreaterEqual(usage.total, usage.used) self.assertGreaterEqual(usage.total, usage.used)
self.assertGreater(usage.total, usage.free) self.assertGreater(usage.total, usage.free)
# bpo-32557: Check that disk_usage() also accepts a filename
shutil.disk_usage(__file__)
@unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support") @unittest.skipUnless(UID_GID_SUPPORT, "Requires grp and pwd support")
@unittest.skipUnless(hasattr(os, 'chown'), 'requires os.chown') @unittest.skipUnless(hasattr(os, 'chown'), 'requires os.chown')
def test_chown(self): def test_chown(self):