Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(492)

Unified Diff: appengine/findit/crash/test/findit_for_chromecrash_test.py

Issue 2673993003: [Predator] Pass config as argument to findit. (Closed)
Patch Set: Fix pylint. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/crash/findit_for_chromecrash.py ('k') | appengine/findit/crash/test/findit_test.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/crash/test/findit_for_chromecrash_test.py
diff --git a/appengine/findit/crash/test/findit_for_chromecrash_test.py b/appengine/findit/crash/test/findit_for_chromecrash_test.py
index 9a7c56957c82046951e1737cb269a3c674b9c816..310591e011f2c4628d0b870c2df25dc238ef5a18 100644
--- a/appengine/findit/crash/test/findit_for_chromecrash_test.py
+++ b/appengine/findit/crash/test/findit_for_chromecrash_test.py
@@ -27,6 +27,7 @@ from gae_libs.http.http_client_appengine import HttpClientAppengine
from libs.gitiles.gitiles_repository import GitilesRepository
from model import analysis_status
from model.crash.crash_analysis import CrashAnalysis
+from model.crash.crash_config import CrashConfig
from model.crash.fracas_crash_analysis import FracasCrashAnalysis
MOCK_GET_REPOSITORY = lambda _: None # pragma: no cover
@@ -35,8 +36,8 @@ MOCK_GET_REPOSITORY = lambda _: None # pragma: no cover
class _FinditForChromeCrash(FinditForChromeCrash): # pylint: disable = W
# We allow overriding the default ``get_repository`` because one unittest
# needs to.
- def __init__(self, get_repository=MOCK_GET_REPOSITORY):
- super(_FinditForChromeCrash, self).__init__(get_repository)
+ def __init__(self, get_repository=MOCK_GET_REPOSITORY, config=None):
+ super(_FinditForChromeCrash, self).__init__(get_repository, config)
@classmethod
def _ClientID(cls): # pragma: no cover
@@ -47,13 +48,13 @@ class _FinditForChromeCrash(FinditForChromeCrash): # pylint: disable = W
exceptions since we want to be able to test the FinditForChromeCrash
class itself.
"""
- return ''
+ return 'fracas'
@property
- def config(self):
+ def client_config(self):
"""Avoid returning None.
- The default ``Findit.config`` will return None if the client
+ The default ``Findit.client_config`` will return None if the client
id is not found in the CrashConfig. This in turn will cause
``FinditForChromeCrash.__init__`` to crash, since NoneType doesn't
have a ``get`` method. In general it's fine for things to crash, since
@@ -64,9 +65,9 @@ class _FinditForChromeCrash(FinditForChromeCrash): # pylint: disable = W
return {}
-def _FinditForFracas():
+def _FinditForFracas(config=None):
"""A helper to pass in the standard pipeline class."""
- return FinditForFracas(MOCK_GET_REPOSITORY)
+ return FinditForFracas(MOCK_GET_REPOSITORY, config or {})
class FinditForChromeCrashTest(PredatorTestCase):
@@ -88,33 +89,38 @@ class FinditForChromeCrashTest(PredatorTestCase):
# the client_id?
analysis.client_id = CrashClient.FRACAS
- findit_client = (
- _FinditForChromeCrash(GitilesRepository.Factory(HttpClientAppengine())))
+ findit_client = _FinditForChromeCrash(
+ GitilesRepository.Factory(HttpClientAppengine()),
+ config=CrashConfig.Get())
self.assertIsNone(findit_client.FindCulprit(analysis))
class FinditForFracasTest(PredatorTestCase):
+ def setUp(self):
+ super(FinditForFracasTest, self).setUp()
+ self.findit = _FinditForFracas(config=CrashConfig.Get())
+
def testPlatformRename(self):
- self.assertEqual(_FinditForFracas().RenamePlatform('linux'), 'unix')
+ self.assertEqual(self.findit.RenamePlatform('linux'), 'unix')
def testCheckPolicyUnsupportedPlatform(self):
- self.assertIsNone(_FinditForFracas().CheckPolicy(self.GetDummyCrashData(
+ self.assertIsNone(self.findit.CheckPolicy(self.GetDummyCrashData(
platform = 'unsupported_platform')))
def testCheckPolicyBlacklistedSignature(self):
- self.assertIsNone(_FinditForFracas().CheckPolicy(self.GetDummyCrashData(
+ self.assertIsNone(self.findit.CheckPolicy(self.GetDummyCrashData(
signature = 'Blacklist marker signature')))
def testCheckPolicyPlatformRename(self):
- new_crash_data = _FinditForFracas().CheckPolicy(self.GetDummyCrashData(
+ new_crash_data = self.findit.CheckPolicy(self.GetDummyCrashData(
platform = 'linux'))
self.assertIsNotNone(new_crash_data,
'FinditForFracas.CheckPolicy unexpectedly returned None')
self.assertEqual(new_crash_data['platform'], 'unix')
def testCreateAnalysis(self):
- self.assertIsNotNone(_FinditForFracas().CreateAnalysis(
+ self.assertIsNotNone(self.findit.CreateAnalysis(
{'signature': 'sig'}))
def testGetAnalysis(self):
@@ -123,18 +129,18 @@ class FinditForFracasTest(PredatorTestCase):
# FinditForFracas.CreateAnalysis instead.
analysis = FracasCrashAnalysis.Create(crash_identifiers)
analysis.put()
- self.assertEqual(_FinditForFracas().GetAnalysis(crash_identifiers),
+ self.assertEqual(self.findit.GetAnalysis(crash_identifiers),
analysis)
def testInitializeAnalysisForFracas(self):
crash_data = self.GetDummyCrashData(platform = 'linux')
crash_identifiers = crash_data['crash_identifiers']
- findit_client = _FinditForFracas()
- analysis = findit_client.CreateAnalysis(crash_identifiers)
- findit_client._InitializeAnalysis(analysis, crash_data)
+ self.findit = self.findit
+ analysis = self.findit.CreateAnalysis(crash_identifiers)
+ self.findit._InitializeAnalysis(analysis, crash_data)
analysis.put()
- analysis = findit_client.GetAnalysis(crash_identifiers)
+ analysis = self.findit.GetAnalysis(crash_identifiers)
self.assertIsNotNone(analysis,
'FinditForFracas.GetAnalysis unexpectedly returned None')
@@ -148,27 +154,25 @@ class FinditForFracasTest(PredatorTestCase):
self.assertEqual(analysis.channel, channel)
def testNeedsNewAnalysisIsTrueIfNoAnalysisYet(self):
- self.assertTrue(_FinditForFracas()._NeedsNewAnalysis(
+ self.assertTrue(self.findit._NeedsNewAnalysis(
self.GetDummyCrashData()))
def testNeedsNewAnalysisIsTrueIfLastOneFailed(self):
- findit_client = _FinditForFracas()
crash_data = self.GetDummyCrashData()
- analysis = findit_client.CreateAnalysis(crash_data['crash_identifiers'])
+ analysis = self.findit.CreateAnalysis(crash_data['crash_identifiers'])
analysis.status = analysis_status.ERROR
analysis.put()
- self.assertTrue(findit_client._NeedsNewAnalysis(crash_data))
+ self.assertTrue(self.findit._NeedsNewAnalysis(crash_data))
def testNeedsNewAnalysisIsFalseIfLastOneIsNotFailed(self):
- findit_client = _FinditForFracas()
crash_data = self.GetDummyCrashData()
crash_identifiers = crash_data['crash_identifiers']
for status in (analysis_status.PENDING, analysis_status.RUNNING,
analysis_status.COMPLETED, analysis_status.SKIPPED):
- analysis = findit_client.CreateAnalysis(crash_identifiers)
+ analysis = self.findit.CreateAnalysis(crash_identifiers)
analysis.status = status
analysis.put()
- self.assertFalse(findit_client._NeedsNewAnalysis(crash_data))
+ self.assertFalse(self.findit._NeedsNewAnalysis(crash_data))
def testFindCulpritForChromeCrashEmptyStacktrace(self):
self.mock(chrome_dependency_fetcher.ChromeDependencyFetcher,
@@ -182,7 +186,8 @@ class FinditForFracasTest(PredatorTestCase):
analysis.crashed_version = '50.0.1234.0'
analysis.historical_metadata = [
{'chrome_version': '51.0.1234.0', 'cpm': 0.6}]
- self.assertIsNone(_FinditForChromeCrash().FindCulprit(analysis))
+ self.assertIsNone(_FinditForChromeCrash(
+ config=CrashConfig.Get()).FindCulprit(analysis))
# TODO(http://crbug.com/659346): why do these mocks give coverage
# failures? That's almost surely hiding a bug in the tests themselves.
@@ -224,7 +229,8 @@ class FinditForFracasTest(PredatorTestCase):
analysis.crashed_version = '50.0.1234.0'
dummy_regression_range = ('50.0.1233.0', '50.0.1234.0')
analysis.regression_range = dummy_regression_range
- culprit = _FinditForChromeCrash().FindCulprit(analysis)
+ culprit = _FinditForChromeCrash(config=CrashConfig.Get()).FindCulprit(
+ analysis)
self.assertIsNotNone(culprit, 'FindCulprit failed unexpectedly')
suspects, tag = culprit.ToDicts()
@@ -251,7 +257,8 @@ class FinditForFracasTest(PredatorTestCase):
analysis.stack_trace = 'frame1\nframe2'
analysis.crashed_version = '50.0.1234.0'
# N.B., analysis.regression_range is None
- suspects, tag = _FinditForChromeCrash().FindCulprit(analysis).ToDicts()
+ suspects, tag = _FinditForChromeCrash(config=CrashConfig.Get()).FindCulprit(
+ analysis).ToDicts()
expected_suspects = {'found': False}
expected_tag = {
@@ -277,7 +284,7 @@ class FinditForFracasTest(PredatorTestCase):
crash_identifiers = {'signature': 'sig'}
analysis = FracasCrashAnalysis.Create(crash_identifiers)
analysis.result = {'other': 'data'}
- findit_object = FinditForFracas(MOCK_GET_REPOSITORY)
+ findit_object = _FinditForFracas(config=CrashConfig.Get())
expected_processed_suspect = {
'client_id': findit_object.client_id,
'crash_identifiers': {'signature': 'sig'},
« no previous file with comments | « appengine/findit/crash/findit_for_chromecrash.py ('k') | appengine/findit/crash/test/findit_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698