def test_check_values_with_unchecked(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details( STATS_REF_NAME, toReturn={ 'note': '{"metrics":{"key1": {"value": 10, "description": ""}, ' '"key2": {"value": 10, "description": ""}}}', 'hash': '123456', 'commiter': 'me' }) git.expect_generate_annotated_commits_with_details( STATS_EXCLUSION_REF_NAME, commit_range='123456..HEAD', toReturn=[]) metrics = DataBean() metrics.metrics = { 'key1': DataBean(value=12, description='', checked=False, direction=FALLING) } metrics.metrics = { 'key1': DataBean(value=8, description='', checked=False, direction=RISING) } self.assertEqual( Callable.success, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))
def test_check_values_respects_other_violations(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details( STATS_REF_NAME, toReturn={ 'note': '{"metrics":{"key1": {"value": 10, "description": ""},' '"key2": {"value": 10, "description": ""}}}', 'hash': '123456', 'commiter': 'me' }) exclusion = { 'note': '{"committer": "testbot", "reason": "none", "exclusion": {"key1": 15}}' } git.expect_generate_annotated_commits_with_details( STATS_EXCLUSION_REF_NAME, commit_range='123456..HEAD', toReturn=[exclusion]) metrics = DataBean() metrics.metrics = { 'key1': DataBean(value=8, description='', checked=True, direction=FALLING), 'key2': DataBean(value=12, description='', checked=True, direction=FALLING) } self.assertEqual( Callable.do_not_proceed, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))
def test_check_values_rising(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details( STATS_REF_NAME, toReturn={ 'note': '{"metrics":{"key1": {"value": 20, "description": ""}}}', 'hash': 'abcdef', 'commiter': 'me' }) git.expect_generate_annotated_commits_with_details( STATS_EXCLUSION_REF_NAME, commit_range='abcdef..HEAD', toReturn=[]) metrics = DataBean() metrics.metrics = { 'key1': DataBean(value=10, description='', checked=True, direction=RISING) } self.assertEqual( Callable.do_not_proceed, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))
def test_check_values_with_unchecked(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details(STATS_REF_NAME, toReturn={'note': '{"metrics":{"key1": {"value": 10, "description": ""}, ' '"key2": {"value": 10, "description": ""}}}', 'hash': '123456', 'commiter': 'me'}) git.expect_generate_annotated_commits_with_details(STATS_EXCLUSION_REF_NAME, commit_range='123456..HEAD', toReturn=[]) metrics = DataBean() metrics.metrics = {'key1': DataBean(value=12, description='', checked=False, direction=FALLING)} metrics.metrics = {'key1': DataBean(value=8, description='', checked=False, direction=RISING)} self.assertEqual(Callable.success, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))
def test_check_values_rising(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details(STATS_REF_NAME, toReturn={'note': '{"metrics":{"key1": {"value": 20, "description": ""}}}', 'hash': 'abcdef', 'commiter': 'me'}) git.expect_generate_annotated_commits_with_details(STATS_EXCLUSION_REF_NAME, commit_range='abcdef..HEAD', toReturn=[]) metrics = DataBean() metrics.metrics = {'key1': DataBean(value=10, description='', checked=True, direction=RISING)} self.assertEqual(Callable.do_not_proceed, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))
def test_check_values_respects_other_violations(self): processor = MetricsProcessor() args = Mock(non_interactive=True) git = Mock() git.expect_latest_annotated_commit_with_details(STATS_REF_NAME, toReturn={'note': '{"metrics":{"key1": {"value": 10, "description": ""},' '"key2": {"value": 10, "description": ""}}}', 'hash': '123456', 'commiter': 'me'}) exclusion = {'note': '{"committer": "testbot", "reason": "none", "exclusion": {"key1": 15}}'} git.expect_generate_annotated_commits_with_details(STATS_EXCLUSION_REF_NAME, commit_range='123456..HEAD', toReturn=[exclusion]) metrics = DataBean() metrics.metrics = {'key1': DataBean(value=8, description='', checked=True, direction=FALLING), 'key2': DataBean(value=12, description='', checked=True, direction=FALLING)} self.assertEqual(Callable.do_not_proceed, processor.check_values(args, metrics, git, MockFileUtils())(Mock()))