Esempio n. 1
0
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)' )
Esempio n. 2
0
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)'
        )
Esempio n. 3
0
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')
Esempio n. 4
0
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')
Esempio n. 5
0
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' )
Esempio n. 6
0
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' )