Example #1
0
    def test_fail__update_product_versions(self):
        with patch('socorro.cron.dailyMatviews.logger'):
            cursor = self.connection.cursor()
            cursor.execute("""
            CREATE OR REPLACE FUNCTION update_product_versions()
            RETURNS boolean AS $$
            BEGIN
                    RETURN false;
            END;
            $$ LANGUAGE plpgsql;
            """)
            self.connection.commit()

            dailyMatviews.update(self.config, utc_now().date())
            cursor = self.connection.cursor()
            for each in ('dailyMatviews:update_os_versions',
                         'dailyMatviews:update_adu',
                         'dailyMatviews:update_signatures',
                         ):
                cursor.execute(
                  'select last_success from cronjobs where cronjob=%s',
                  [each]
                )
                last_success = cursor.fetchone()[0]
                self.assertTrue(last_success)

            for each in ('dailyMatviews:update_product_versions',
                         'dailyMatviews:update_tcbs',
                         ):
                cursor.execute(
                  'select last_success from cronjobs where cronjob=%s',
                  [each]
                )
                last_success = cursor.fetchone()[0]
                self.assertTrue(not last_success)
Example #2
0
 def test_all_works(self):
     cursor = mock_cursor({})
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(mock_logger.info.call_count, 9)
         self.assertEqual(mock_logger.warn.call_count, 0)
         self.assertEqual(mock_logger.error.call_count, 0)
Example #3
0
 def test_all_works(self):
     cursor = mock_cursor({})
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(mock_logger.info.call_count, 15)
         self.assertEqual(mock_logger.warn.call_count, 0)
         self.assertEqual(mock_logger.error.call_count, 0)
Example #4
0
 def test_mock_internal_error(self):
     cursor = mock_cursor({
       'update_signatures': psycopg2.InternalError,
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(mock_logger.info.call_count, 8)
         self.assertEqual(mock_logger.warn.call_count, 1)
         self.assertEqual(mock_logger.error.call_count, 1)
Example #5
0
 def test_mock_internal_error(self):
     cursor = mock_cursor({
       'update_signatures': psycopg2.InternalError,
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(mock_logger.info.call_count, 15)
         self.assertEqual(mock_logger.warn.call_count, 0)
         self.assertEqual(mock_logger.error.call_count, 1)
Example #6
0
 def test_failing__update_adu(self):
     cursor = mock_cursor({
       'update_adu': (False,),
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(mock_logger.info.call_count, 16)
         self.assertEqual(mock_logger.warn.call_count, 0)
         self.assertEqual(mock_logger.error.call_count, 0)
Example #7
0
 def test_failing__update_product_versions(self):
     cursor = mock_cursor({
       'update_product_versions': (False,),
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(cursor.called, ['update_product_versions',
           'update_signatures', 'update_os_versions', 'update_adu',
           'update_daily_crashes', 'update_hang_report', 'rank_compare'])
         self.assertEqual(mock_logger.info.call_count, 7)
         self.assertEqual(mock_logger.warn.call_count, 2)
         self.assertEqual(mock_logger.error.call_count, 0)
Example #8
0
 def test_all_works_without_errors(self):
     with patch('socorro.cron.dailyMatviews.logger'):
         dailyMatviews.update(self.config, utc_now().date())
         cursor = self.connection.cursor()
         for each in ('dailyMatviews:update_product_versions',
                      'dailyMatviews:update_os_versions',
                      'dailyMatviews:update_adu',
                      'dailyMatviews:update_tcbs',
                      'dailyMatviews:update_signatures',
                      ):
             cursor.execute(
               'select last_success from cronjobs where cronjob=%s',
               [each]
             )
             last_success = cursor.fetchone()[0]
             self.assertTrue(last_success)
Example #9
0
 def test_failing__update_product_versions(self):
     cursor = mock_cursor({
       'update_product_versions': (False,),
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(cursor.called, ['update_product_versions',
           'update_signatures', 'update_os_versions', 'update_tcbs',
           'update_adu', 'update_rank_compare', 'update_nightly_builds',
           'update_build_adu', 'update_crashes_by_user',
           'update_crashes_by_user_build', 'update_correlations',
           'update_home_page_graph', 'update_home_page_graph_build',
           'update_tcbs_build', 'update_explosiveness'])
         self.assertEqual(mock_logger.info.call_count, 15)
         self.assertEqual(mock_logger.warn.call_count, 1)
         self.assertEqual(mock_logger.error.call_count, 0)
Example #10
0
 def test_failing__update_product_versions(self):
     cursor = mock_cursor({
       'update_product_versions': (False,),
     })
     dailyMatviews.psycopg2 = mock_psycopg2(cursor)
     with patch('socorro.cron.dailyMatviews.logger') as mock_logger:
         dailyMatviews.update(self.config, 'some date')
         self.assertEqual(cursor.called, ['update_product_versions',
           'update_signatures', 'update_os_versions', 'update_tcbs',
           'update_adu', 'update_hang_report',
           'update_rank_compare', 'update_nightly_builds',
           'update_build_adu', 'update_crashes_by_user',
           'update_crashes_by_user_build', 'update_correlations',
           'update_home_page_graph', 'update_home_page_graph_build',
           'update_tcbs_build', 'update_explosiveness'])
         self.assertEqual(mock_logger.info.call_count, 16)
         self.assertEqual(mock_logger.warn.call_count, 1)
         self.assertEqual(mock_logger.error.call_count, 0)
except ImportError:
    import dailyMatviewsConfig as configModule

import socorro.lib.ConfigurationManager as configurationManager
import socorro.cron.dailyMatviews as dailyMatviews
import socorro.lib.util as sutil

try:
    config = configurationManager.newConfiguration(
        configurationModule=configModule, applicationName="dailyMatviews 0.1")
except configurationManager.NotAnOptionError, x:
    print >>sys.stderr, x
    print >>sys.stderr, "for usage, try --help"
    sys.exit()

logger = logging.getLogger("dailyMatviews")
logger.setLevel(logging.DEBUG)

sutil.setupLoggingHandlers(logger, config)
sutil.echoConfig(logger, config)

exitCode = 255

try:
    targetDate = date.today() - timedelta(1)
    exitCode = dailyMatviews.update(config, targetDate)
finally:
    logger.info("done.")

sys.exit(exitCode)
Example #12
0
except ImportError:
    import dailyMatviewsConfig as configModule

import socorro.lib.ConfigurationManager as configurationManager
import socorro.cron.dailyMatviews as dailyMatviews
import socorro.lib.util as sutil

try:
    config = configurationManager.newConfiguration(
        configurationModule=configModule, applicationName="dailyMatviews 0.1")
except configurationManager.NotAnOptionError, x:
    print >> sys.stderr, x
    print >> sys.stderr, "for usage, try --help"
    sys.exit()

logger = logging.getLogger("dailyMatviews")
logger.setLevel(logging.DEBUG)

sutil.setupLoggingHandlers(logger, config)
sutil.echoConfig(logger, config)

exitCode = 255

try:
    targetDate = date.today() - timedelta(1)
    exitCode = dailyMatviews.update(config, targetDate)
finally:
    logger.info("done.")

sys.exit(exitCode)