예제 #1
0
  def testGenerateInstallCounts(self):
    """Test _GenerateInstallCounts()."""
    install_counts = {
        'foo': {
            'install_count': 2,
            'applesus': True,
            'duration_count': 1,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30},
        'bar': {'install_count': 2, 'install_fail_count': 1, 'applesus': False},
    }

    new_foo = self.mox.CreateMockAnything()
    new_foo.package = 'foo'
    new_foo.applesus = True
    new_foo.duration_seconds = 20
    new_bar = self.mox.CreateMockAnything()
    new_bar.package = 'bar'
    new_bar.applesus = False
    new_bar.duration_seconds = 10
    new_bar_success = self.mox.CreateMockAnything()
    new_bar_success.package = 'bar'
    new_bar_success.applesus = False
    new_bar_success.duration_seconds = 10
    new_bar_success2 = self.mox.CreateMockAnything()
    new_bar_success2.package = 'bar'
    new_bar_success2.applesus = False
    new_bar_success2.duration_seconds = 20
    new_zzz = self.mox.CreateMockAnything()
    new_zzz.package = 'zzz'
    new_zzz.applesus = False
    new_zzz.duration_seconds = None

    new_installs = [
        new_foo, new_bar, new_bar_success, new_zzz, new_bar_success2]

    new_install_counts = {
        'foo': {
            'install_count': 2,
            'install_fail_count': 1,
            'applesus': True,
            'duration_count': 1,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30,
         },
        'bar': {
            'install_count': 4,
            'install_fail_count': 2,
            'applesus': False,
            'duration_count': 2,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30 / 2,
         },
        'zzz': {
            'install_count': 1,
            'install_fail_count': 0,
            'applesus': False,
            'duration_count': 0,
            'duration_total_seconds': 0,
            'duration_seconds_avg': None,
        },
    }
    new_foo.IsSuccess().AndReturn(False)
    new_bar.IsSuccess().AndReturn(False)
    new_bar_success.IsSuccess().AndReturn(True)
    new_zzz.IsSuccess().AndReturn(True)
    new_bar_success2.IsSuccess().AndReturn(True)

    self.mox.StubOutWithMock(reports_cache.models, 'KeyValueCache')
    self.mox.StubOutWithMock(
        reports_cache.models.KeyValueCache, 'get_by_key_name')
    self.mox.StubOutWithMock(reports_cache.models.InstallLog, 'all')
    self.mox.StubOutWithMock(
        reports_cache.models.ReportsCache, 'GetInstallCounts')
    self.mox.StubOutWithMock(
        reports_cache.models.ReportsCache, 'SetInstallCounts')

    reports_cache.models.ReportsCache.GetInstallCounts().AndReturn(
        (install_counts, None))
    mock_query = self.mox.CreateMockAnything()
    reports_cache.models.InstallLog.all().AndReturn(mock_query)
    mock_query.order('server_datetime').AndReturn(mock_query)
    mock_cursor_obj = self.mox.CreateMockAnything()
    mock_cursor_obj.text_value = 'foocursor'
    reports_cache.models.KeyValueCache.get_by_key_name(
        'pkgs_list_cursor').AndReturn(mock_cursor_obj)
    mock_query.with_cursor(mock_cursor_obj.text_value)
    mock_query.fetch(1000).AndReturn(new_installs)

    reports_cache.models.ReportsCache.SetInstallCounts(new_install_counts)
    mock_query.cursor().AndReturn(None)
    mock_cursor_obj.put().AndReturn(None)

    self.mox.StubOutWithMock(reports_cache.deferred, 'defer')
    reports_cache.deferred.defer(
        reports_cache._GenerateInstallCounts).AndReturn(None)

    self.mox.ReplayAll()
    reports_cache._GenerateInstallCounts()
    self.mox.VerifyAll()
예제 #2
0
  def testGenerateInstallCounts(self):
    """Test _GenerateInstallCounts()."""
    install_counts = {
        'foo': {
            'install_count': 2,
            'applesus': True,
            'duration_count': 1,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30},
        'bar': {'install_count': 2, 'install_fail_count': 1, 'applesus': False},
    }

    new_foo = self.mox.CreateMockAnything()
    new_foo.package = 'foo'
    new_foo.applesus = True
    new_foo.duration_seconds = 20
    new_bar = self.mox.CreateMockAnything()
    new_bar.package = 'bar'
    new_bar.applesus = False
    new_bar.duration_seconds = 10
    new_bar_success = self.mox.CreateMockAnything()
    new_bar_success.package = 'bar'
    new_bar_success.applesus = False
    new_bar_success.duration_seconds = 10
    new_bar_success2 = self.mox.CreateMockAnything()
    new_bar_success2.package = 'bar'
    new_bar_success2.applesus = False
    new_bar_success2.duration_seconds = 20
    new_zzz = self.mox.CreateMockAnything()
    new_zzz.package = 'zzz'
    new_zzz.applesus = False
    new_zzz.duration_seconds = None

    new_installs = [
        new_foo, new_bar, new_bar_success, new_zzz, new_bar_success2]

    new_install_counts = {
        'foo': {
            'install_count': 2,
            'install_fail_count': 1,
            'applesus': True,
            'duration_count': 1,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30,
         },
        'bar': {
            'install_count': 4,
            'install_fail_count': 2,
            'applesus': False,
            'duration_count': 2,
            'duration_total_seconds': 30,
            'duration_seconds_avg': 30 / 2,
         },
        'zzz': {
            'install_count': 1,
            'install_fail_count': 0,
            'applesus': False,
            'duration_count': 0,
            'duration_total_seconds': 0,
            'duration_seconds_avg': None,
        },
    }
    new_foo.IsSuccess().AndReturn(False)
    new_bar.IsSuccess().AndReturn(False)
    new_bar_success.IsSuccess().AndReturn(True)
    new_zzz.IsSuccess().AndReturn(True)
    new_bar_success2.IsSuccess().AndReturn(True)

    self.mox.StubOutWithMock(reports_cache.models, 'KeyValueCache')
    self.mox.StubOutWithMock(
        reports_cache.models.KeyValueCache, 'get_by_key_name')
    self.mox.StubOutWithMock(reports_cache.models.InstallLog, 'all')
    self.mox.StubOutWithMock(
        reports_cache.models.ReportsCache, 'GetInstallCounts')
    self.mox.StubOutWithMock(
        reports_cache.models.ReportsCache, 'SetInstallCounts')

    reports_cache.models.ReportsCache.GetInstallCounts().AndReturn(
        (install_counts, None))
    mock_query = self.mox.CreateMockAnything()
    reports_cache.models.InstallLog.all().AndReturn(mock_query)
    mock_query.order('server_datetime').AndReturn(mock_query)
    mock_cursor_obj = self.mox.CreateMockAnything()
    mock_cursor_obj.text_value = 'foocursor'
    reports_cache.models.KeyValueCache.get_by_key_name(
        'pkgs_list_cursor').AndReturn(mock_cursor_obj)
    mock_query.with_cursor(mock_cursor_obj.text_value)
    mock_query.fetch(1000).AndReturn(new_installs)

    reports_cache.models.ReportsCache.SetInstallCounts(new_install_counts)
    mock_query.cursor().AndReturn(None)
    mock_cursor_obj.put().AndReturn(None)

    self.mox.StubOutWithMock(reports_cache.deferred, 'defer')
    reports_cache.deferred.defer(
        reports_cache._GenerateInstallCounts).AndReturn(None)

    self.mox.ReplayAll()
    reports_cache._GenerateInstallCounts()
    self.mox.VerifyAll()