buildframework/helium/sf/python/pythoncore/lib/pythoncoretests/test_ccm_results.py
changeset 628 7c4a911dc066
parent 588 c7c26511138f
child 645 b8d81fa19e7d
equal deleted inserted replaced
588:c7c26511138f 628:7c4a911dc066
    23 import unittest
    23 import unittest
    24 import ccm
    24 import ccm
    25 import os
    25 import os
    26 import logging
    26 import logging
    27 
    27 
    28 # pylint: disable-msg=R0201
    28 # pylint: disable=R0201
    29 
    29 
    30 _logger = logging.getLogger('test.ccm_results')
    30 _logger = logging.getLogger('test.ccm_results')
    31 logging.basicConfig(level=logging.INFO)
    31 logging.basicConfig(level=logging.INFO)
    32 
    32 
    33 class CounterHandler(logging.Handler):
    33 class CounterHandler(logging.Handler):
    47         elif record.levelno == logging.ERROR:
    47         elif record.levelno == logging.ERROR:
    48             self.errors += 1
    48             self.errors += 1
    49 
    49 
    50 class MockResultSession(ccm.AbstractSession):
    50 class MockResultSession(ccm.AbstractSession):
    51     """ Fake session used to test Result"""
    51     """ Fake session used to test Result"""
    52     def __init__(self, behave = {}, database="fakedb"):
    52     def __init__(self, behave=None, database="fakedb"):
    53         ccm.AbstractSession.__init__(self, None, None, None, None)
    53         ccm.AbstractSession.__init__(self, None, None, None, None)
       
    54         if behave == None:
       
    55             behave = {}
    54         self._behave = behave
    56         self._behave = behave
    55         self._database = database
    57         self._database = database
    56     
    58     
    57     def database(self):
    59     def database(self):
    58         """database"""
    60         """database"""
   322 tr1test1#5226   Explicitly specified but not included
   324 tr1test1#5226   Explicitly specified but not included
   323         """}
   325         """}
   324         session = MockResultSession(behave)
   326         session = MockResultSession(behave)
   325         result = session.execute('test_update', ccm.ConflictsResult(session))
   327         result = session.execute('test_update', ccm.ConflictsResult(session))
   326         #_logger.debug(result.output)
   328         #_logger.debug(result.output)
   327         # pylint: disable-msg=E1103
   329         # pylint: disable=E1103
   328         assert len(result.output.keys()) == 7, "Should detect 7 projects."
   330         assert len(result.output.keys()) == 7, "Should detect 7 projects."
   329         subproj = session.create("Cartman_sub_sub_sub02-Release_v4:project:%s#1" % session.database())
   331         subproj = session.create("Cartman_sub_sub_sub02-Release_v4:project:%s#1" % session.database())
   330         assert len(result.output[subproj]) == 2, "%s should contain 2 conflicts" % subproj.objectname
   332         assert len(result.output[subproj]) == 2, "%s should contain 2 conflicts" % subproj.objectname
   331 
   333 
   332 
   334 
   391     Failed to remove selected object helloworldcons-wbernard2:project:tr1test1#1 under directory MinibuildDomain-1:dir:tr1test1#1 from project MinibuildDomain-wbernard3 : work area delete failed
   393     Failed to remove selected object helloworldcons-wbernard2:project:tr1test1#1 under directory MinibuildDomain-1:dir:tr1test1#1 from project MinibuildDomain-wbernard3 : work area delete failed
   392     Failed to use selected object MinibuildDomain-2:dir:tr1test1#1 under directory MinibuildDomain-wbernard3:project:tr1test1#1 in project MinibuildDomain-wbernard3
   394     Failed to use selected object MinibuildDomain-2:dir:tr1test1#1 under directory MinibuildDomain-wbernard3:project:tr1test1#1 in project MinibuildDomain-wbernard3
   393 Serious: 
   395 Serious: 
   394 Update failed.
   396 Update failed.
   395 """
   397 """
   396         _logger = logging.getLogger('count.logger')
   398         count_logger = logging.getLogger('count.logger')
   397         _logger.setLevel(logging.WARNING)
   399         count_logger.setLevel(logging.WARNING)
   398         handler = CounterHandler()
   400         handler = CounterHandler()
   399         _logger.addHandler(handler)
   401         count_logger.addHandler(handler)
   400         ccm.log_result(log, ccm.UPDATE_LOG_RULES, _logger)
   402         ccm.log_result(log, ccm.UPDATE_LOG_RULES, count_logger)
   401         print handler.warnings
   403         print handler.warnings
   402         print handler.errors
   404         print handler.errors
   403         assert handler.warnings == 5
   405         assert handler.warnings == 5
   404         assert handler.errors == 9
   406         assert handler.errors == 9
   405 
   407 
   413 Warning: fa1ssdo#MobileSearch_4_10_09w09_S60_3_3 too long, use name less than 32 characters long.
   415 Warning: fa1ssdo#MobileSearch_4_10_09w09_S60_3_3 too long, use name less than 32 characters long.
   414 Warning: Object version 'fa1ssdo#MobileSearch_4_10_09w09_S60_3_3' too long, use version less than 32 characters long.
   416 Warning: Object version 'fa1ssdo#MobileSearch_4_10_09w09_S60_3_3' too long, use version less than 32 characters long.
   415 Copy Project complete with 1 errors.
   417 Copy Project complete with 1 errors.
   416 WARNING: There is no matching baseline project for 'ci-hitchcock_nga' in baseline 'tr1s60#ABS_domain_mcl92-abs.mcl.92_200907'.  This baseline might not be complete
   418 WARNING: There is no matching baseline project for 'ci-hitchcock_nga' in baseline 'tr1s60#ABS_domain_mcl92-abs.mcl.92_200907'.  This baseline might not be complete
   417 """
   419 """
   418         _logger = logging.getLogger('count.logger')
   420         count_logger = logging.getLogger('count.logger')
   419         _logger.setLevel(logging.WARNING)
   421         count_logger.setLevel(logging.WARNING)
   420         handler = CounterHandler()
   422         handler = CounterHandler()
   421         _logger.addHandler(handler)
   423         count_logger.addHandler(handler)
   422         ccm.log_result(log, ccm.CHECKOUT_LOG_RULES, _logger)
   424         ccm.log_result(log, ccm.CHECKOUT_LOG_RULES, count_logger)
   423         print handler.warnings
   425         print handler.warnings
   424         print handler.errors
   426         print handler.errors
   425         assert handler.warnings == 4
   427         assert handler.warnings == 4
   426         assert handler.errors == 1
   428         assert handler.errors == 1
   427 
   429 
   436        1 Conflict(s) for project helloworldapi-wbernard7
   438        1 Conflict(s) for project helloworldapi-wbernard7
   437        0 Conflict(s) for project helloworldcons-wbernard5
   439        0 Conflict(s) for project helloworldcons-wbernard5
   438 You can use Reconcile to resolve work area conflicts
   440 You can use Reconcile to resolve work area conflicts
   439 Warning: Conflicts detected during synchronization. Check your logs.
   441 Warning: Conflicts detected during synchronization. Check your logs.
   440 """
   442 """
   441         _logger = logging.getLogger('count.logger')
   443         count_logger = logging.getLogger('count.logger')
   442         _logger.setLevel(logging.WARNING)
   444         count_logger.setLevel(logging.WARNING)
   443         handler = CounterHandler()
   445         handler = CounterHandler()
   444         _logger.addHandler(handler)
   446         count_logger.addHandler(handler)
   445         ccm.log_result(log, ccm.SYNC_LOG_RULES, _logger)
   447         ccm.log_result(log, ccm.SYNC_LOG_RULES, count_logger)
   446         print handler.warnings
   448         print handler.warnings
   447         print handler.errors
   449         print handler.errors
   448         assert handler.warnings == 0
   450         assert handler.warnings == 0
   449         assert handler.errors == 2
   451         assert handler.errors == 2
   450 
   452