def test_run_with_reopening_existing_parent_issue(self, *args): """ Test JiraManager.run on reopening a parent issue. Expect: jira.reopen_issue is called once. """ dep_name = 'group0:artifact0' dep_latest_version = '1.0' owners_yaml = """ deps: group0:artifact0: group: group0 artifact: artifact0 owners: owner0 """ summary = self._get_experct_summary('group0', None) description = self._get_expected_description(dep_name, dep_latest_version, []) with patch('__builtin__.open', mock_open(read_data=owners_yaml)): with patch('jira_utils.jira_manager.JiraManager._search_issues', side_effect=[[ MockedJiraIssue('BEAM-1000', summary, description, 'Closed') ], []]): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run(dep_name, dep_latest_version, sdk_type='Java', group_id='group0') manager.jira.reopen_issue.assert_called_once()
def test_run_with_updating_existing_task(self, *args): """ Test JiraManager.run on updating an existing issue. Expect: jira.update_issue is called once. """ dep_name = 'dep0' dep_latest_version = '1.0' owners_yaml = """ deps: dep0: owners: """ summary = self._get_experct_summary(dep_name, dep_latest_version) description = self._get_expected_description(dep_name, dep_latest_version, []) with patch('__builtin__.open', mock_open(read_data=owners_yaml)): with patch('jira_utils.jira_manager.JiraManager._search_issues', return_value=[ MockedJiraIssue('BEAM-1000', summary, description, 'Open') ]): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run(dep_name, dep_latest_version, 'Python') manager.jira.update_issue.assert_called_once()
def test_run_with_reopening_issue_with_new_release_available(self, *args): """ Test JiraManager.run that reopens an issue once 3 versions releases after 6 months since previous closure. Expect: jira.reopen_issue is called once. """ dep_name = 'dep0' issue_closed_version = '1.0' dep_latest_version = '1.3' owners_yaml = """ deps: dep0: owners: """ summary = self._get_experct_summary(dep_name) description = self._get_expected_description(dep_name, issue_closed_version, []) with patch('__builtin__.open', mock_open(read_data=owners_yaml)): with patch('jira_utils.jira_manager.JiraManager._search_issues', side_effect=[[ MockedJiraIssue('BEAM-1000', summary, description, 'Closed') ], []]): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run(dep_name, MOCKED_DEP_CURRENT_VERSION, dep_latest_version, 'Python') manager.jira.reopen_issue.assert_called_once()
def test_run_with_reopening_issue_with_fixversions(self, *args): """ Test JiraManager.run on reopening an issue when JIRA fixVersions hits the release version. Expect: jira.reopen_issue is called once. """ dep_name = 'dep0' owners_yaml = """ deps: dep0: owners: """ summary = self._get_experct_summary(dep_name) description = self._get_expected_description( dep_name, MOCKED_DEP_LATEST_VERSION, []) with patch('__builtin__.open', mock_open(read_data=owners_yaml)): with patch('jira_utils.jira_manager.JiraManager._search_issues', side_effect=[[ MockedJiraIssue('BEAM-1000', summary, description, 'Closed') ], []]): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run(dep_name, MOCKED_DEP_CURRENT_VERSION, MOCKED_DEP_LATEST_VERSION, 'Python') manager.jira.reopen_issue.assert_called_once()
def __init__(self): meta_db = config['ora_dcm'] connection_string = "{0}/{1}@{2}:{3}/{4}".format( meta_db['user'], meta_db['pwd'], meta_db['host'], meta_db['port'], meta_db['sid']) self.db_manager = DBManager(connection_string) self.jira = JiraManager(config['jira']) schedule.every(1).minute.do(self.__job)
def sync_issue(issue_code: str): """ Reads the given issue from Jira and transfers to Notion """ my_config = Config() my_jira_manager = JiraManager(my_config) my_notion_manager = NotionManager(my_config) issue = my_jira_manager.get_issue(issue_code) my_notion_manager.create_page(issue, my_jira_manager) sys.exit(0)
def test_find_owners_with_no_dep_defined(self, *args): """ Test on _find_owners with non-defined dep. Expect: through out KeyErrors. The primary owner is None, an empty list of other owners. """ owners_yaml = """ deps: dep0: owners: """ with patch('__builtin__.open', mock_open(read_data=owners_yaml)): manager = JiraManager('url', 'username', 'password', owners_yaml) primary, owners = manager._find_owners('dep1') self.assertIsNone(primary) self.assertEqual(len(owners), 0)
def test_find_owners_with_single_owner(self, *args): """ Test on _find_owners with single owner Expect: the primary owner is 'owner0', an empty list of other owners. """ owners_yaml = """ deps: dep0: owners: owner0, """ with patch('__builtin__.open', mock_open(read_data=owners_yaml)): manager = JiraManager('url', 'username', 'password', owners_yaml) primary, owners = manager._find_owners('dep0') self.assertEqual(primary, 'owner0') self.assertEqual(len(owners), 0)
def test_find_owners_with_multi_owners(self, *args): """ Test on _find_owners with multiple owners. Expect: the primary owner is 'owner0', a list contains 'owner1' and 'owner2'. """ owners_yaml = """ deps: dep0: owners: owner0, owner1 , owner2, """ with patch('__builtin__.open', mock_open(read_data=owners_yaml)): manager = JiraManager('url', 'username', 'password', owners_yaml) primary, owners = manager._find_owners('dep0') self.assertEqual(primary, 'owner0') self.assertEqual(len(owners), 2) self.assertIn('owner1', owners) self.assertIn('owner2', owners)
def test_run_with_creating_new_issue(self, *args): """ Test JiraManager.run on creating a new issue. Expect: jira.create_issue is called once with certain parameters. """ owners_yaml = """ deps: dep0: owners: owner0, owner1 , owner2, """ with patch('__builtin__.open', mock_open(read_data=owners_yaml)): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run('dep0', '1.0', 'Python') manager.jira.create_issue.assert_called_once_with( self._get_experct_summary('dep0', '1.0'), ['dependencies'], self._get_expected_description('dep0', '1.0', ['owner1', 'owner2']), assignee='owner0')
def main(): jira = JiraManager() jira_connection = jira.start_connection() issues_of_proj = jira.get_issues_of_proj(jira_connection) sprint_name = jira.get_sprint_name(jira_connection, issues_of_proj[0]) report = Report() tasks, developers = report.parse_issues_and_developers(issues_of_proj) tasks_per_developer = report.get_issues_per_developer(tasks, developers) start_date = date.today() + timedelta( 7) #It does not exist a start_date for sprints that dont are running #sprint_name = 'Sprint 3' doc_manager = DocsManager() doc = doc_manager.create_doc(sprint_name) doc_manager.share_doc(doc) worksheet = doc_manager.insert_labels(doc, sprint_name, start_date) doc_manager.insert_data_in_doc(worksheet, tasks_per_developer)
def test_run_with_creating_new_subtask(self, *args): """ Test JiraManager.run on creating a new sub-task. Expect: jira.create_issue is called once with certain parameters. """ dep_name = 'group0:artifact0' dep_latest_version = '1.0' owners_yaml = """ deps: group0:artifact0: group: group0 artifact: artifact0 owners: owner0 """ summary = self._get_experct_summary('group0', None) description = self._get_expected_description(dep_name, dep_latest_version, []) with patch('__builtin__.open', mock_open(read_data=owners_yaml)): with patch('jira_utils.jira_manager.JiraManager._search_issues', side_effect=[[ MockedJiraIssue('BEAM-1000', summary, description, 'Open') ], []]): manager = JiraManager('url', 'username', 'password', owners_yaml) manager.run(dep_name, dep_latest_version, 'Java', group_id='group0') manager.jira.create_issue.assert_called_once_with( self._get_experct_summary(dep_name, dep_latest_version), ['dependencies'], self._get_expected_description(dep_name, dep_latest_version, []), assignee='owner0', parent_key='BEAM-1000', )
from temp_file import TempFile from subprocess import call import os ############################## # Initialization ############################## my_config = config.Config() ############################## # Read issue from Jira ############################## url = sys.argv[1] my_jira = JiraManager(my_config) issue = my_jira.get_issue_by_url(url) ############################## # Download temp file ############################## my_temp_file = TempFile(my_config, my_jira) my_temp_file.write_file(issue, url) ############################## # Create new Apple Note ############################## path = os.path.dirname(os.path.abspath(__file__)).replace(" ", "\ ") path = os.path.join(path, "tmp2note.app")
from config import Config from notion_manager import NotionManager from jira_manager import JiraManager import sys desired_issue = sys.argv[1] #desired_issue="VOL-6370" my_config = Config() my_jira_manager = JiraManager(my_config) my_notion_manager = NotionManager(my_config) issue = my_jira_manager.get_issue(desired_issue) my_notion_manager.create_page(issue, my_jira_manager)