def jira_mock(): m = mock.MagicMock() i1 = fakes.Issue("ISSUE-1") i2 = fakes.Issue("ISSUE-2") i3 = fakes.Issue("ISSUE-3") i4 = fakes.Issue("ISSUE-4") m.search_issues.return_value = [i1, i2, i3, i4] return m
def jira_mock(): m = mock.MagicMock() i1 = fakes.Issue('ISSUE-1') i2 = fakes.Issue('ISSUE-2') i3 = fakes.Issue('ISSUE-3') i4 = fakes.Issue('ISSUE-4') m.search_issues.return_value = [i1, i2, i3, i4] return m
def test_execution_progress_100(): jira_mock = mock.MagicMock() i1 = fakes.Issue("ISSUE-1", "Done") i2 = fakes.Issue("ISSUE-2", "Done") i3 = fakes.Issue("ISSUE-3", "Done") i4 = fakes.Issue("ISSUE-4", "Done") jira_mock.search_issues.return_value = [i1, i2, i3, i4] percentage, all_issues, done_issues = algo.progress(jira_mock, "jql") assert percentage == 100.0 assert len(all_issues) == 4 assert len(done_issues) == 4
def test_count_internal(): issue_cache_1 = fakes.IssueCache( fakes.Issue('ISSUE-1', epic_name='my epic')) issue_cache_1.linked_issues = { "ISSUE-10": fakes.Issue('ISSUE-10', epic_name='linked epic') } issue_cache_2 = mock.MagicMock() issue_cache_2.linked_issues = {"ISSUE-20": fakes.Issue('ISSUE-20')} counter = dep.count_internal([issue_cache_1, issue_cache_2], ['prj1', 'prj2']) assert len(counter['internal']) == 0 assert len(counter['external']) == 2
def test_active_sprint_progress(): jira_mock = mock.MagicMock() i1 = fakes.Issue("ISSUE-1", "Done") i2 = fakes.Issue("ISSUE-2", "Done") i3 = fakes.Issue("ISSUE-3", "In progress") i4 = fakes.Issue("ISSUE-4", "Open") jira_mock.search_issues.return_value = [i1, i2, i3, i4] percentage, all_issues, done_issues = algo.active_sprint_progress(jira_mock, "PRJ_KEY") assert percentage == 50.0 assert len(all_issues) == 4 assert done_issues[0].key == IssueCache(jira_mock, i1).key assert done_issues[1].key == IssueCache(jira_mock, i2).key
def test_count_stats(): issue_cache_1 = fakes.IssueCache( fakes.Issue('ISSUE-1', epic_name='my epic')) issue_cache_1.linked_issues = { "ISSUE-10": fakes.Issue('ISSUE-10', epic_name='linked epic') } issue_cache_2 = mock.MagicMock() issue_cache_2.linked_issues = {"ISSUE-20": fakes.Issue('ISSUE-20')} project_count, epic_count, link_epic_count = dep.count_stats( [issue_cache_1, issue_cache_2]) assert len(project_count) == 1 assert len(epic_count) == 2 # 'my epic' and none assert len(link_epic_count) == 2 # none and linked epic
def test_count_by_link_type(): i1 = fakes.Issue('ISSUE-1', epic_name='my epic') i1.fields.issuelinks = [ fakes.IssueLink('outwardIssue', 'DEP-1'), fakes.IssueLink('inwardIssue', 'DEP-2') ] issue_cache_1 = fakes.IssueCache(i1) issue_cache_1.linked_issues = { "ISSUE-10": fakes.Issue('ISSUE-10', epic_name='linked epic') } issue_cache_2 = mock.MagicMock() issue_cache_2.linked_issues = {"ISSUE-20": fakes.Issue('ISSUE-20')} linked_issues = dep.count_by_link_type([issue_cache_1, issue_cache_2]) assert linked_issues == {'Dependency': 2}
def test_execution_metrics(sprint_mock): jira_mock = mock.MagicMock() i1 = fakes.Issue("ISSUE-1", "Done") i2 = fakes.Issue("ISSUE-2", "Done") i3 = fakes.Issue("ISSUE-3", "Done") i4 = fakes.Issue("ISSUE-4", "In progress") jira_mock.search_issues.return_value = [i1, i2, i3, i4] _, all_issues, done_in_sprint = algo.progress(jira_mock, "jql") i4.fields.status.name = "Done" done_by_now = done_in_sprint + [IssueCache(jira_mock, i4)] em = algo.ExecutionMetrics(all_issues, done_in_sprint, done_by_now, sprint_mock) assert em.count_done_by_now == 4 assert em.count_done_in_sprint == 3 assert em.progress_by_now == 100 assert em.progress_in_sprint == 75
def test_external_links_0( jira_mock): # issue-5 is a dependency for the other issue i5 = fakes.Issue('ISSUE-5') i5.fields.issuelinks = [ fakes.IssueLink('inwardIssue', 'Dep-1'), ] jira_mock.search_issues.return_value = [i5] p, all_issues, all_with_dep = dep.dependency_factor(jira_mock, "jql") assert p == 0 assert len(all_with_dep) == 0 assert len(all_issues) == 1
def test_external_links_100(jira_mock): # issue-5 is dependent on i5 = fakes.Issue('ISSUE-5') i5.fields.issuelinks = [ fakes.IssueLink('outwardIssue', 'Dep-1'), ] jira_mock.search_issues.return_value = [i5] p, all_issues, all_with_dep = dep.dependency_factor(jira_mock, "jql") assert p == 100 assert len(all_with_dep) == 1 assert all_with_dep[0].key == 'ISSUE-5' assert len(all_issues) == 1
def test_merge(all_issues): metrics.save("ut", "test_squad_1", 50, all_issues, [all_issues[0], all_issues[1]]) i1 = fakes.Issue('ISSUE-5') i2 = fakes.Issue('ISSUE-6') i3 = fakes.Issue('ISSUE-7') i4 = fakes.Issue('ISSUE-8') all_issues_2 = [i1, i2, i3, i4] metrics.save("ut", "test_squad_2", 100, all_issues_2, []) metrics_history_1 = metrics.read_independence_stats('ut', "test_squad_1") metrics_history_2 = metrics.read_independence_stats('ut', "test_squad_2") total_metrics = metrics.merge([metrics_history_1, metrics_history_2]) m = total_metrics.latest assert m['squad'] == 'Merged' assert m['name'] == 'ut' assert m['independence'] == 75 assert len(m['all_issues']) == 8 assert len(m['all_with_dep']) == 2
def test_get_issue_by_key(): jira_mock = mock.MagicMock() i1 = fakes.Issue("ISSUE-1") jira_mock.search_issues.return_value = [i1] issue_cache = j.get_issue_by_key(jira_mock, "ISSUE-1") assert issue_cache.issue == i1
def all_issues(): i1 = fakes.Issue('ISSUE-1') i2 = fakes.Issue('ISSUE-2') i3 = fakes.Issue('ISSUE-3') i4 = fakes.Issue('ISSUE-4') return [i1, i2, i3, i4]