Skip to content

Commit

Permalink
CatalogueTest : Enable nonwritable test on Windows
Browse files Browse the repository at this point in the history
  • Loading branch information
ericmehl committed Jan 10, 2025
1 parent 77d4969 commit 027810e
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions python/GafferImageTest/CatalogueTest.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
import imath
import pathlib
import unittest
import subprocess

import IECore

Expand Down Expand Up @@ -615,13 +616,15 @@ def testDeleteBeforeSaveCompletesWithScriptVariables( self ) :

self.assertEqual( len( list( baseDirectory.glob( "*" ) ) ), 0 )

@unittest.skipIf( os.name == "nt", "Windows allows new files in read-only directories" )
def testNonWritableDirectory( self ) :

s = Gaffer.ScriptNode()
s["c"] = GafferImage.Catalogue()
s["c"]["directory"].setValue( self.temporaryDirectory() / "catalogue" )
os.chmod( self.temporaryDirectory(), stat.S_IREAD )
if os.name != "nt" :
os.chmod( self.temporaryDirectory(), stat.S_IREAD )
else :
subprocess.check_call( [ "icacls", self.temporaryDirectory(), "/deny", "Users:(OI)(CI)(W)" ] )

r = GafferImage.ImageReader()
r["fileName"].setValue( self.imagesPath() / "blurRange.exr" )
Expand All @@ -637,9 +640,17 @@ def testNonWritableDirectory( self ) :

self.assertEqual( len( mh.messages ), 1 )
self.assertEqual( mh.messages[0].level, IECore.Msg.Level.Error )
self.assertIn( "Permission denied", mh.messages[0].message )
self.assertIn(
"Permission denied" if os.name != "nt" else "Access is denied",
mh.messages[0].message
)

with self.assertRaisesRegex( RuntimeError, r".* : Could not open \".*\" \(Permission denied\)" ) :
with self.assertRaisesRegex(
RuntimeError,
r".* : Could not open \".*\" " + (
"\(Permission denied\)" if os.name != "nt" else "\(No such file or directory\)"
)
) :
GafferImage.ImageAlgo.image( s["c"]["out"] )

def testDeleteKeepsOrder( self ) :
Expand Down

0 comments on commit 027810e

Please sign in to comment.