class ClientECase ( DataLoggingArgumentsTestCase ): # this client raise an exception from a decorate method, the exception should be raise by the decorator def setUp( self ): self.dlc = DataLoggingClient() def test_no_exception( self ): client = ClientE() client.doSomething() res = self.dlc.getSequenceByID( '7' ) self.assertTrue( res['OK'], res.get( 'Message', 'OK' ) ) sequence = res['Value'][0] self.assertEqual( len( sequence.methodCalls ), 1 ) hostName = socket.gethostname() self.assertEqual( sequence.hostName.name, hostName ) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get( 'username' ) group = proxyInfo.get( 'group' ) if userName : self.assertEqual( sequence.userName.name, userName ) if group : self.assertEqual( sequence.group.name, group ) self.assertEqual( sequence.caller.name, '__main__.ClientE.doSomething' ) sequence.methodCalls[0].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequence.methodCalls[0].name.name, 'TestDataManager.derror' ) self.assertEqual( sequence.methodCalls[0].actions[0].file.name, '/data/file1' ) self.assertEqual( sequence.methodCalls[0].actions[1].file.name, '/data/file2' ) self.assertEqual( sequence.methodCalls[0].actions[2].file.name, '/data/file3' ) self.assertEqual( sequence.methodCalls[0].actions[3].file.name, '/data/file4' ) self.assertEqual( sequence.methodCalls[0].actions[0].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[1].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[2].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[3].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[0].errorCode, 2 ) self.assertEqual( sequence.methodCalls[0].actions[1].errorCode, 2 ) self.assertEqual( sequence.methodCalls[0].actions[2].errorCode, 2 ) self.assertEqual( sequence.methodCalls[0].actions[3].errorCode, 2 ) self.assertEqual( sequence.methodCalls[0].actions[0].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[1].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[2].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[3].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' )
class ClientECase(DataLoggingArgumentsTestCase): # this client raise an exception from a decorate method, the exception should be raise by the decorator def setUp(self): self.dlc = DataLoggingClient() def test_no_exception(self): client = ClientE() client.doSomething() res = self.dlc.getSequenceByID('7') self.assertTrue(res['OK'], res.get('Message', 'OK')) sequence = res['Value'][0] self.assertEqual(len(sequence.methodCalls), 1) hostName = socket.gethostname() self.assertEqual(sequence.hostName.name, hostName) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get('username') group = proxyInfo.get('group') if userName: self.assertEqual(sequence.userName.name, userName) if group: self.assertEqual(sequence.group.name, group) self.assertEqual(sequence.caller.name, '__main__.ClientE.doSomething') sequence.methodCalls[0].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequence.methodCalls[0].name.name, 'TestDataManager.derror') self.assertEqual(sequence.methodCalls[0].actions[0].file.name, '/data/file1') self.assertEqual(sequence.methodCalls[0].actions[1].file.name, '/data/file2') self.assertEqual(sequence.methodCalls[0].actions[2].file.name, '/data/file3') self.assertEqual(sequence.methodCalls[0].actions[3].file.name, '/data/file4') self.assertEqual(sequence.methodCalls[0].actions[0].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[1].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[2].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[3].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[0].errorCode, 2) self.assertEqual(sequence.methodCalls[0].actions[1].errorCode, 2) self.assertEqual(sequence.methodCalls[0].actions[2].errorCode, 2) self.assertEqual(sequence.methodCalls[0].actions[3].errorCode, 2) self.assertEqual( sequence.methodCalls[0].actions[0].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[1].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[2].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' ) self.assertEqual( sequence.methodCalls[0].actions[3].errorMessage, 'No such file or directory ( 2 : the interesting technical message)' )
class ClientDCase(DataLoggingArgumentsTestCase): # this client raise an exception from a decorate method, the exception should be raise by the decorator def setUp(self): self.dlc = DataLoggingClient() def test_no_exception(self): client = ClientD() # we check if an exception is raised with self.assertRaises(Exception): client.doSomething() res = self.dlc.getSequenceByID('6') self.assertTrue(res['OK'], res.get('Message', 'OK')) sequence = res['Value'][0] self.assertEqual(len(sequence.methodCalls), 4) hostName = socket.gethostname() self.assertEqual(sequence.hostName.name, hostName) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get('username') group = proxyInfo.get('group') if userName: self.assertEqual(sequence.userName.name, userName) if group: self.assertEqual(sequence.group.name, group) self.assertEqual(sequence.caller.name, '__main__.ClientD.doSomething') sequence.methodCalls[0].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequence.methodCalls[0].name.name, 'TestDataManager.putAndRegister') self.assertEqual(sequence.methodCalls[0].actions[0].file.name, '/data/file1') self.assertEqual(sequence.methodCalls[0].actions[1].file.name, '/data/file2') self.assertEqual(sequence.methodCalls[0].actions[2].file.name, '/data/file3') self.assertEqual(sequence.methodCalls[0].actions[3].file.name, '/data/file4') self.assertEqual(sequence.methodCalls[0].actions[0].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[1].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[2].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[3].status, 'Failed') self.assertEqual(sequence.methodCalls[0].actions[0].errorMessage, 'addFile exception') self.assertEqual(sequence.methodCalls[0].actions[1].errorMessage, 'addFile exception') self.assertEqual(sequence.methodCalls[0].actions[2].errorMessage, 'addFile exception') self.assertEqual(sequence.methodCalls[0].actions[3].errorMessage, 'addFile exception') sequence.methodCalls[1].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequence.methodCalls[1].name.name, 'TestFileCatalog.addFile') self.assertEqual(sequence.methodCalls[1].actions[0].file.name, '/data/file1') self.assertEqual(sequence.methodCalls[1].actions[1].file.name, '/data/file3') self.assertEqual(sequence.methodCalls[1].actions[0].status, 'Failed') self.assertEqual(sequence.methodCalls[1].actions[1].status, 'Failed') self.assertEqual(sequence.methodCalls[1].actions[0].errorMessage, 'addFile exception') self.assertEqual(sequence.methodCalls[1].actions[1].errorMessage, 'addFile exception') sequence.methodCalls[2].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequence.methodCalls[2].name.name, 'TestStorageElement.putFile') self.assertEqual(sequence.methodCalls[2].actions[0].file.name, '/data/file1') self.assertEqual(sequence.methodCalls[2].actions[1].file.name, '/data/file2') self.assertEqual(sequence.methodCalls[2].actions[2].file.name, '/data/file3') self.assertEqual(sequence.methodCalls[2].actions[3].file.name, '/data/file4') self.assertEqual(sequence.methodCalls[2].actions[0].status, 'Successful') self.assertEqual(sequence.methodCalls[2].actions[1].status, 'Failed') self.assertEqual(sequence.methodCalls[2].actions[2].status, 'Successful') self.assertEqual(sequence.methodCalls[2].actions[3].status, 'Failed') sequence.methodCalls[3].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequence.methodCalls[3].name.name, 'TestStorageElement.getFileSize') self.assertEqual(sequence.methodCalls[3].actions[0].file.name, '/data/file1') self.assertEqual(sequence.methodCalls[3].actions[1].file.name, '/data/file2') self.assertEqual(sequence.methodCalls[3].actions[2].file.name, '/data/file3') self.assertEqual(sequence.methodCalls[3].actions[3].file.name, '/data/file4') self.assertEqual(sequence.methodCalls[3].actions[0].status, 'Successful') self.assertEqual(sequence.methodCalls[3].actions[1].status, 'Failed') self.assertEqual(sequence.methodCalls[3].actions[2].status, 'Successful') self.assertEqual(sequence.methodCalls[3].actions[3].status, 'Failed')
class ClientBCase(DataLoggingArgumentsTestCase): def setUp(self): self.dlc = DataLoggingClient() def test_insertion_equal(self): # we call some methods, they are going to be logged client = ClientB() client.doSomething() res = self.dlc.getSequenceByID('3') self.assertTrue(res['OK'], res.get('Message', 'OK')) sequenceOne = res['Value'][0] res = self.dlc.getSequenceByID('4') self.assertTrue(res['OK'], res.get('Message', 'OK')) sequenceTwo = res['Value'][0] # we compare results self.assertEqual(len(sequenceOne.methodCalls), 4) self.assertEqual(len(sequenceTwo.methodCalls), 1) hostName = socket.gethostname() self.assertEqual(sequenceOne.hostName.name, hostName) self.assertEqual(sequenceTwo.hostName.name, hostName) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get('username') group = proxyInfo.get('group') if userName: self.assertEqual(sequenceOne.userName.name, userName) self.assertEqual(sequenceTwo.userName.name, userName) if group: self.assertEqual(sequenceOne.group.name, group) self.assertEqual(sequenceTwo.group.name, group) self.assertEqual(sequenceOne.caller.name, '__main__.ClientB.doSomething') sequenceOne.methodCalls[0].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequenceOne.methodCalls[0].name.name, 'TestDataManager.putAndRegister') self.assertEqual(sequenceOne.methodCalls[0].actions[0].file.name, '/data/file1') self.assertEqual(sequenceOne.methodCalls[0].actions[1].file.name, '/data/file2') self.assertEqual(sequenceOne.methodCalls[0].actions[2].file.name, '/data/file3') self.assertEqual(sequenceOne.methodCalls[0].actions[3].file.name, '/data/file4') self.assertEqual(sequenceOne.methodCalls[0].actions[0].status, 'Failed') self.assertEqual(sequenceOne.methodCalls[0].actions[1].status, 'Failed') self.assertEqual(sequenceOne.methodCalls[0].actions[2].status, 'Successful') self.assertEqual(sequenceOne.methodCalls[0].actions[3].status, 'Failed') sequenceOne.methodCalls[1].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequenceOne.methodCalls[1].name.name, 'TestFileCatalog.addFile') self.assertEqual(sequenceOne.methodCalls[1].actions[0].file.name, '/data/file1') self.assertEqual(sequenceOne.methodCalls[1].actions[1].file.name, '/data/file3') self.assertEqual(sequenceOne.methodCalls[1].actions[0].status, 'Failed') self.assertEqual(sequenceOne.methodCalls[1].actions[1].status, 'Successful') sequenceOne.methodCalls[2].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequenceOne.methodCalls[2].name.name, 'TestStorageElement.putFile') self.assertEqual(sequenceOne.methodCalls[2].actions[0].file.name, '/data/file1') self.assertEqual(sequenceOne.methodCalls[2].actions[1].file.name, '/data/file2') self.assertEqual(sequenceOne.methodCalls[2].actions[2].file.name, '/data/file3') self.assertEqual(sequenceOne.methodCalls[2].actions[3].file.name, '/data/file4') self.assertEqual(sequenceOne.methodCalls[2].actions[0].status, 'Successful') self.assertEqual(sequenceOne.methodCalls[2].actions[1].status, 'Failed') self.assertEqual(sequenceOne.methodCalls[2].actions[2].status, 'Successful') self.assertEqual(sequenceOne.methodCalls[2].actions[3].status, 'Failed') sequenceOne.methodCalls[3].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequenceOne.methodCalls[3].name.name, 'TestStorageElement.getFileSize') self.assertEqual(sequenceOne.methodCalls[3].actions[0].file.name, '/data/file1') self.assertEqual(sequenceOne.methodCalls[3].actions[1].file.name, '/data/file2') self.assertEqual(sequenceOne.methodCalls[3].actions[2].file.name, '/data/file3') self.assertEqual(sequenceOne.methodCalls[3].actions[3].file.name, '/data/file4') self.assertEqual(sequenceOne.methodCalls[3].actions[0].status, 'Successful') self.assertEqual(sequenceOne.methodCalls[3].actions[1].status, 'Failed') self.assertEqual(sequenceOne.methodCalls[3].actions[2].status, 'Successful') self.assertEqual(sequenceOne.methodCalls[3].actions[3].status, 'Failed') sequenceTwo.methodCalls[0].actions.sort(key=lambda x: x.file.name) self.assertEqual(sequenceTwo.caller.name, '__main__.ClientB.doSomething') self.assertEqual(sequenceTwo.methodCalls[0].name.name, 'TestFileCatalog.getFileSize') self.assertEqual(sequenceTwo.methodCalls[0].actions[0].file.name, '/data/file3') self.assertEqual(sequenceTwo.methodCalls[0].actions[0].status, 'Successful')
class ClientDCase ( DataLoggingArgumentsTestCase ): # this client raise an exception from a decorate method, the exception should be raise by the decorator def setUp( self ): self.dlc = DataLoggingClient() def test_no_exception( self ): client = ClientD() # we check if an exception is raised with self.assertRaises( Exception ): client.doSomething() res = self.dlc.getSequenceByID( '6' ) self.assertTrue( res['OK'], res.get( 'Message', 'OK' ) ) sequence = res['Value'][0] self.assertEqual( len( sequence.methodCalls ), 4 ) hostName = socket.gethostname() self.assertEqual( sequence.hostName.name, hostName ) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get( 'username' ) group = proxyInfo.get( 'group' ) if userName : self.assertEqual( sequence.userName.name, userName ) if group : self.assertEqual( sequence.group.name, group ) self.assertEqual( sequence.caller.name, '__main__.ClientD.doSomething' ) sequence.methodCalls[0].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequence.methodCalls[0].name.name, 'TestDataManager.putAndRegister' ) self.assertEqual( sequence.methodCalls[0].actions[0].file.name, '/data/file1' ) self.assertEqual( sequence.methodCalls[0].actions[1].file.name, '/data/file2' ) self.assertEqual( sequence.methodCalls[0].actions[2].file.name, '/data/file3' ) self.assertEqual( sequence.methodCalls[0].actions[3].file.name, '/data/file4' ) self.assertEqual( sequence.methodCalls[0].actions[0].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[1].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[2].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[3].status, 'Failed' ) self.assertEqual( sequence.methodCalls[0].actions[0].errorMessage, 'addFile exception' ) self.assertEqual( sequence.methodCalls[0].actions[1].errorMessage, 'addFile exception' ) self.assertEqual( sequence.methodCalls[0].actions[2].errorMessage, 'addFile exception' ) self.assertEqual( sequence.methodCalls[0].actions[3].errorMessage, 'addFile exception' ) sequence.methodCalls[1].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequence.methodCalls[1].name.name, 'TestFileCatalog.addFile' ) self.assertEqual( sequence.methodCalls[1].actions[0].file.name, '/data/file1' ) self.assertEqual( sequence.methodCalls[1].actions[1].file.name, '/data/file3' ) self.assertEqual( sequence.methodCalls[1].actions[0].status, 'Failed' ) self.assertEqual( sequence.methodCalls[1].actions[1].status, 'Failed' ) self.assertEqual( sequence.methodCalls[1].actions[0].errorMessage, 'addFile exception' ) self.assertEqual( sequence.methodCalls[1].actions[1].errorMessage, 'addFile exception' ) sequence.methodCalls[2].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequence.methodCalls[2].name.name, 'TestStorageElement.putFile' ) self.assertEqual( sequence.methodCalls[2].actions[0].file.name, '/data/file1' ) self.assertEqual( sequence.methodCalls[2].actions[1].file.name, '/data/file2' ) self.assertEqual( sequence.methodCalls[2].actions[2].file.name, '/data/file3' ) self.assertEqual( sequence.methodCalls[2].actions[3].file.name, '/data/file4' ) self.assertEqual( sequence.methodCalls[2].actions[0].status, 'Successful' ) self.assertEqual( sequence.methodCalls[2].actions[1].status, 'Failed' ) self.assertEqual( sequence.methodCalls[2].actions[2].status, 'Successful' ) self.assertEqual( sequence.methodCalls[2].actions[3].status, 'Failed' ) sequence.methodCalls[3].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequence.methodCalls[3].name.name, 'TestStorageElement.getFileSize' ) self.assertEqual( sequence.methodCalls[3].actions[0].file.name, '/data/file1' ) self.assertEqual( sequence.methodCalls[3].actions[1].file.name, '/data/file2' ) self.assertEqual( sequence.methodCalls[3].actions[2].file.name, '/data/file3' ) self.assertEqual( sequence.methodCalls[3].actions[3].file.name, '/data/file4' ) self.assertEqual( sequence.methodCalls[3].actions[0].status, 'Successful' ) self.assertEqual( sequence.methodCalls[3].actions[1].status, 'Failed' ) self.assertEqual( sequence.methodCalls[3].actions[2].status, 'Successful' ) self.assertEqual( sequence.methodCalls[3].actions[3].status, 'Failed' )
class ClientBCase ( DataLoggingArgumentsTestCase ): def setUp( self ): self.dlc = DataLoggingClient() def test_insertion_equal( self ): # we call some methods, they are going to be logged client = ClientB() client.doSomething() res = self.dlc.getSequenceByID( '3' ) self.assertTrue( res['OK'], res.get( 'Message', 'OK' ) ) sequenceOne = res['Value'][0] res = self.dlc.getSequenceByID( '4' ) self.assertTrue( res['OK'], res.get( 'Message', 'OK' ) ) sequenceTwo = res['Value'][0] # we compare results self.assertEqual( len( sequenceOne.methodCalls ), 4 ) self.assertEqual( len( sequenceTwo.methodCalls ), 1 ) hostName = socket.gethostname() self.assertEqual( sequenceOne.hostName.name, hostName ) self.assertEqual( sequenceTwo.hostName.name, hostName ) proxyInfo = getProxyInfo() if proxyInfo['OK']: proxyInfo = proxyInfo['Value'] userName = proxyInfo.get( 'username' ) group = proxyInfo.get( 'group' ) if userName : self.assertEqual( sequenceOne.userName.name, userName ) self.assertEqual( sequenceTwo.userName.name, userName ) if group : self.assertEqual( sequenceOne.group.name, group ) self.assertEqual( sequenceTwo.group.name, group ) self.assertEqual( sequenceOne.caller.name, '__main__.ClientB.doSomething' ) sequenceOne.methodCalls[0].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequenceOne.methodCalls[0].name.name, 'TestDataManager.putAndRegister' ) self.assertEqual( sequenceOne.methodCalls[0].actions[0].file.name, '/data/file1' ) self.assertEqual( sequenceOne.methodCalls[0].actions[1].file.name, '/data/file2' ) self.assertEqual( sequenceOne.methodCalls[0].actions[2].file.name, '/data/file3' ) self.assertEqual( sequenceOne.methodCalls[0].actions[3].file.name, '/data/file4' ) self.assertEqual( sequenceOne.methodCalls[0].actions[0].status, 'Failed' ) self.assertEqual( sequenceOne.methodCalls[0].actions[1].status, 'Failed' ) self.assertEqual( sequenceOne.methodCalls[0].actions[2].status, 'Successful' ) self.assertEqual( sequenceOne.methodCalls[0].actions[3].status, 'Failed' ) sequenceOne.methodCalls[1].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequenceOne.methodCalls[1].name.name, 'TestFileCatalog.addFile' ) self.assertEqual( sequenceOne.methodCalls[1].actions[0].file.name, '/data/file1' ) self.assertEqual( sequenceOne.methodCalls[1].actions[1].file.name, '/data/file3' ) self.assertEqual( sequenceOne.methodCalls[1].actions[0].status, 'Failed' ) self.assertEqual( sequenceOne.methodCalls[1].actions[1].status, 'Successful' ) sequenceOne.methodCalls[2].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequenceOne.methodCalls[2].name.name, 'TestStorageElement.putFile' ) self.assertEqual( sequenceOne.methodCalls[2].actions[0].file.name, '/data/file1' ) self.assertEqual( sequenceOne.methodCalls[2].actions[1].file.name, '/data/file2' ) self.assertEqual( sequenceOne.methodCalls[2].actions[2].file.name, '/data/file3' ) self.assertEqual( sequenceOne.methodCalls[2].actions[3].file.name, '/data/file4' ) self.assertEqual( sequenceOne.methodCalls[2].actions[0].status, 'Successful' ) self.assertEqual( sequenceOne.methodCalls[2].actions[1].status, 'Failed' ) self.assertEqual( sequenceOne.methodCalls[2].actions[2].status, 'Successful' ) self.assertEqual( sequenceOne.methodCalls[2].actions[3].status, 'Failed' ) sequenceOne.methodCalls[3].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequenceOne.methodCalls[3].name.name, 'TestStorageElement.getFileSize' ) self.assertEqual( sequenceOne.methodCalls[3].actions[0].file.name, '/data/file1' ) self.assertEqual( sequenceOne.methodCalls[3].actions[1].file.name, '/data/file2' ) self.assertEqual( sequenceOne.methodCalls[3].actions[2].file.name, '/data/file3' ) self.assertEqual( sequenceOne.methodCalls[3].actions[3].file.name, '/data/file4' ) self.assertEqual( sequenceOne.methodCalls[3].actions[0].status, 'Successful' ) self.assertEqual( sequenceOne.methodCalls[3].actions[1].status, 'Failed' ) self.assertEqual( sequenceOne.methodCalls[3].actions[2].status, 'Successful' ) self.assertEqual( sequenceOne.methodCalls[3].actions[3].status, 'Failed' ) sequenceTwo.methodCalls[0].actions.sort( key = lambda x: x.file.name ) self.assertEqual( sequenceTwo.caller.name, '__main__.ClientB.doSomething' ) self.assertEqual( sequenceTwo.methodCalls[0].name.name, 'TestFileCatalog.getFileSize' ) self.assertEqual( sequenceTwo.methodCalls[0].actions[0].file.name, '/data/file3' ) self.assertEqual( sequenceTwo.methodCalls[0].actions[0].status, 'Successful' )