class AnalyzerManagerTests(unittest.TestCase): def setUp(self): self.data_service = FakeDataService() self.model_repository = FakeModelRepository() self.manager = AnalyzerManager([FakeAnalyzer, FakeAnalyzer], self.model_repository, self.data_service) FakeAnalyzer.stub = None def test_process_review_event(self): request = ReviewEvent() request.configuration.update({"FakeAnalyzer": {"one": "two"}}) request.commit_revision.base.internal_repository_url = "foo" request.commit_revision.base.reference_name = "refs/heads/master" request.commit_revision.base.hash = "00" * 20 request.commit_revision.head.internal_repository_url = "bar" request.commit_revision.head.reference_name = "refs/heads/master" request.commit_revision.head.hash = "ff" * 20 response = self.manager.process_review_event(request) self.assertIsInstance(response, EventResponse) self.assertEqual(response.analyzer_version, "FakeAnalyzer/1 FakeAnalyzer/1") self.assertEqual(len(response.comments), 2) self.assertEqual(*response.comments) self.assertEqual(response.comments[0].text, "%s|%s" % ("00" * 20, "ff" * 20)) self.assertEqual(self.model_repository.get_calls, [("FakeAnalyzer/1", FakeModel, "foo")] * 2) self.assertEqual(FakeAnalyzer.instance.one, "two") self.assertEqual(FakeAnalyzer.stub, "XXX") def test_process_push_event(self): request = PushEvent() request.commit_revision.head.internal_repository_url = "wow" request.commit_revision.head.reference_name = "refs/heads/master" request.commit_revision.head.hash = "80" * 20 response = self.manager.process_push_event(request) self.assertIsInstance(response, EventResponse) self.assertEqual(response.analyzer_version, "FakeAnalyzer/1 FakeAnalyzer/1") self.assertEqual(len(response.comments), 0) self.assertEqual(len(self.model_repository.set_calls), 2) self.assertEqual(self.model_repository.set_calls[0][:2], ("FakeAnalyzer/1", "wow")) self.assertIsInstance(self.model_repository.set_calls[0][2], FakeModel) self.assertEqual(self.model_repository.set_calls[1][:2], ("FakeAnalyzer/1", "wow")) self.assertIsInstance(self.model_repository.set_calls[1][2], FakeModel) self.assertEqual(FakeAnalyzer.stub, "XXX")
class AnalyzerManagerTests(unittest.TestCase): @classmethod def setUpClass(cls): slogging.setup(logging.DEBUG, False) def setUp(self): self.data_service = FakeDataService() self.model_repository = FakeModelRepository() self.manager = AnalyzerManager( [FakeAnalyzer, FakeAnalyzer, FakeDummyAnalyzer], self.model_repository, self.data_service) FakeAnalyzer.stub = None FakeDummyAnalyzer.skip_train = False FakeAnalyzer.service = None def test_process_review_event(self): request = ReviewEvent() request.configuration.update( {"fake.analyzer.FakeAnalyzer": { "one": "two" }}) request.commit_revision.base.internal_repository_url = "foo" request.commit_revision.base.reference_name = "refs/heads/master" request.commit_revision.base.hash = "00" * 20 request.commit_revision.head.internal_repository_url = "bar" request.commit_revision.head.reference_name = "refs/heads/master" request.commit_revision.head.hash = "ff" * 20 response = self.manager.process_review_event(request) self.assertIsInstance(response, EventResponse) self.assertEqual( response.analyzer_version, "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeDummyAnalyzer/1") self.assertEqual(len(response.comments), 2) self.assertEqual(*response.comments) self.assertEqual(response.comments[0].text, "%s|%s" % ("00" * 20, "ff" * 20)) self.assertEqual(self.model_repository.get_calls, [("fake.analyzer.FakeAnalyzer/1", FakeModel, "foo")] * 2) self.assertEqual(FakeAnalyzer.instance.config["one"], "two") self.assertEqual(FakeAnalyzer.service.get_data(), "XXX") self.assertTrue(FakeDummyAnalyzer.instance.analyzed) def test_process_push_event(self): request = PushEvent() request.commit_revision.head.internal_repository_url = "wow" request.commit_revision.head.reference_name = "refs/heads/master" request.commit_revision.head.hash = "80" * 20 response = self.manager.process_push_event(request) self.assertIsInstance(response, EventResponse) self.assertEqual( response.analyzer_version, "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeDummyAnalyzer/1") self.assertEqual(len(response.comments), 0) self.assertEqual(len(self.model_repository.set_calls), 2) self.assertEqual(self.model_repository.set_calls[0][:2], ("fake.analyzer.FakeAnalyzer/1", "wow")) self.assertIsInstance(self.model_repository.set_calls[0][2], FakeModel) self.assertEqual(self.model_repository.set_calls[1][:2], ("fake.analyzer.FakeAnalyzer/1", "wow")) self.assertIsInstance(self.model_repository.set_calls[1][2], FakeModel) self.assertEqual(FakeAnalyzer.service.get_bblfsh(), "YYY") self.assertFalse(FakeDummyAnalyzer.trained) def test_process_push_event_skip(self): FakeAnalyzer.skip_train = True request = PushEvent() request.commit_revision.head.internal_repository_url = "wow" request.commit_revision.head.reference_name = "refs/heads/master" request.commit_revision.head.hash = "80" * 20 response = self.manager.process_push_event(request) self.assertIsInstance(response, EventResponse) self.assertEqual( response.analyzer_version, "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeAnalyzer/1 " "fake.analyzer.FakeDummyAnalyzer/1") self.assertEqual(len(response.comments), 0) self.assertEqual(len(self.model_repository.get_calls), 2) self.assertEqual(len(self.model_repository.set_calls), 0) self.assertIsNone(FakeAnalyzer.service)