atlassian-api / atlassian-python-api

Atlassian Python REST API wrapper
https://atlassian-python-api.readthedocs.io
Apache License 2.0
1.29k stars 642 forks source link

[jira] new feature added scrap_regex_from_issue + docs + example #1324

Closed gkowalc closed 5 months ago

gkowalc commented 5 months ago

Added new method to jira api scrap_regex_from_issue. This method takes issue_id as an input + specified regex and returns all regex matches found in issue comments and descriptions. Commit also includes docs + example edits. I* have tried to cover this feature with unit test but I didn't manage to make use of mockup files when using method patching: try: from unittest.mock import patch, MagicMock except ImportError: from mock import patch ` def test_scrap_regex_from_issue(self): regex = r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)[?.]?){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" mock_without_comments = "< saved output from api1>" mock_with_comments = "< saved output from api2>" with patch("atlassian.Jira.get_issue") as mock_get_tables: mock_get_tables.return_value = mock_without_comments result = self.jira.scrap_regex_from_issue("REGEX-123", regex) self.assertEqual(result, ["1.1.1.1", "11.1.1.3", "255.255.255.255"]) mock_get_tables.return_value = mock_with_comments result = self.jira.scrap_regex_from_issue("REGEX-123", regex) self.assertEqual(result, ["1.1.1.1", "11.1.1.3", "255.255.255.255", "222.41.32.111", "77.123.123.123"])

`

above code works fine with the unit tests, but when I added my mockup files to responses folder (next to "FOO-123" issue) I wasn't able to use mock within patch. To sum up, my PR doesn't include unit tests (unless you are ok with including the mocked output in the test code) if you know how to tweak above mock I am happy to add them with the next PR.