Skip to content

Commit

Permalink
expand unittests around jira issues
Browse files Browse the repository at this point in the history
Include new fixture advisory_with_jira_issue
include advisory 101099 and related fixture files
expand coverage of jira issue functionality
include test that showed error condition (before fix)

Add a case showing failure
  • Loading branch information
yazug committed Jul 7, 2023
1 parent a9ba96c commit 312c6ae
Show file tree
Hide file tree
Showing 6 changed files with 81 additions and 0 deletions.
22 changes: 22 additions & 0 deletions errata_tool/tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,28 @@ def advisory_with_batch(monkeypatch, mock_get):
return Erratum(errata_id=46563)


@pytest.fixture
def advisory_with_jira(monkeypatch, mock_get, mock_put, mock_post):
monkeypatch.delattr('requests.sessions.Session.request')
monkeypatch.setattr(ErrataConnector, '_auth', None)
monkeypatch.setattr(requests, 'get', mock_get)
monkeypatch.setattr(requests, 'put', mock_put)
monkeypatch.setattr(requests, 'post', mock_post)
return Erratum(errata_id=101099)

@pytest.fixture
def advisory_with_jira_and_bugs(monkeypatch, mock_get, mock_put, mock_post):
monkeypatch.delattr('requests.sessions.Session.request')
monkeypatch.setattr(ErrataConnector, '_auth', None)
monkeypatch.setattr(requests, 'get', mock_get)
monkeypatch.setattr(requests, 'put', mock_put)
monkeypatch.setattr(requests, 'post', mock_post)
ret = Erratum(errata_id=101099)
ret._original_bugs.append(12345)
ret.errata_bugs.append(12345)
return ret


@pytest.fixture
def rhsa(monkeypatch, mock_get):
"""Like the advisory() fixture above, but an RHSA. """
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"id":101099,"type":"RHEA","text_only":false,"advisory_name":"RHEA-2022:6301","synopsis":"OpenShift Container Platform Assisted Installer version 2.9.0 release","revision":1,"status":"SHIPPED_LIVE","security_impact":"None","is_operator_hotfix":false,"skip_customer_notifications":false,"respin_count":0,"pushcount":1,"content_types":["docker"],"timestamps":{"issue_date":"2022-09-05T07:11:57Z","update_date":"2022-09-05T07:11:57Z","release_date":null,"status_time":"2022-09-05T07:13:52Z","security_sla":null,"created_at":"2022-08-31T09:03:05Z","updated_at":"2022-09-05T07:13:52Z","actual_ship_date":"2022-09-05T07:13:52Z","publish_date":"2022-09-05T00:00:00Z","embargo_date":null},"flags":{"text_ready":false,"mailed":false,"pushed":false,"published":true,"deleted":false,"qa_complete":true,"rhn_complete":false,"doc_complete":true,"rhnqa":true,"closed":false,"sign_requested":false,"embargo_undated":false},"product":{"id":79,"name":"Red Hat OpenShift Enterprise","short_name":"RHOSE"},"release":{"id":1605,"name":"RHAI 2.0 ASYNC"},"people":{"assigned_to":"lalon@redhat.com","reporter":"agentil@redhat.com","qe_group":"Default","docs_group":"Default","doc_reviewer":"opayne@redhat.com","devel_group":"Default","package_owner":"agentil@redhat.com","security_reviewer":null},"content":{"topic":"Assisted Installer version 2.9.0 is now available for Red Hat OpenShift Container Platform.","description":"Red Hat OpenShift Container Platform is Red Hat's cloud computing\nKubernetes application platform solution designed for on-premise or private cloud deployments.\n\nThis advisory contains the container images for Red Hat OpenShift Container Platform related to the Assisted Installer.","solution":"For OpenShift Container Platform 4.11, see the following documentation for important instructions on how to upgrade your cluster and fully apply this asynchronous errata update:\n\nhttps://docs.openshift.com/container-platform/4.11/release_notes/ocp-4-11-release-notes.html","keywords":""}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"RHAI-2.0-RHEL-8":[{"assisted-installer-agent-container-v1.0.0-187":{"8Base-RHAI-2.0":{"multi":["docker-image-sha256:4ba3c9c35f0be3c1ed0329b5b2f556c5b4ec29bc2a7bd5129d62417abe57c627.x86_64.tar.gz","docker-image-sha256:29b51cb8f615a7203a11f20ee57bc642fcfb5857646313ca138316f253f03192.aarch64.tar.gz"]}}},{"assisted-installer-reporter-container-v1.0.0-256":{"8Base-RHAI-2.0":{"multi":["docker-image-sha256:57bb553bb0c44a09d4c4f4be22398eff8dca809e3bf2403e80134d4b4dc956d5.x86_64.tar.gz","docker-image-sha256:c7277cb196f87240fc2684afd8a7ab2b485c0e72cd83662dc6ea3da55caf183f.aarch64.tar.gz"]}}},{"assisted-installer-container-v1.0.0-202":{"8Base-RHAI-2.0":{"multi":["docker-image-sha256:3d82e293d2ad7f439cd8fee514d4aeb6c1476bcb610cc71b4df2ec3f92c2f3c2.x86_64.tar.gz","docker-image-sha256:2615ad9654b1aecc92f27090e34a13aa7171f657205bc99ce2b7c3aeb6f5564c.aarch64.tar.gz"]}}}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"id":2146115,"nvr":"assisted-installer-agent-container-v1.0.0-187","nevr":"assisted-installer-agent-container-0:v1.0.0-187","package":{"id":50758,"name":"assisted-installer-agent-container"},"released_errata":null,"all_errata":[{"id":101099,"name":"RHEA-2022:6301","status":"SHIPPED_LIVE"}],"rpms_signed":false,"files":[{"id":6878517,"path":"/mnt/redhat/brewroot/packages/assisted-installer-agent-container/v1.0.0/187/images/docker-image-sha256:4ba3c9c35f0be3c1ed0329b5b2f556c5b4ec29bc2a7bd5129d62417abe57c627.x86_64.tar.gz","type":"tar","arch":{"id":13,"name":"x86_64"}},{"id":6878518,"path":"/mnt/redhat/brewroot/packages/assisted-installer-agent-container/v1.0.0/187/images/docker-image-sha256:29b51cb8f615a7203a11f20ee57bc642fcfb5857646313ca138316f253f03192.aarch64.tar.gz","type":"tar","arch":{"id":26,"name":"aarch64"}}]}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"who":{"user":{"id":3002043,"login_name":"jschluet@redhat.com","realname":"Jon Schlueter","user_organization_id":10000793,"enabled":1,"receives_mail":true,"preferences":{"default_filter_id":"1117","full_width_layout":"1","color_scheme":""},"email_address":null,"account_name":"jschluet","type":"Person"}},"params":{"format":"json","controller":"api/v1/erratum","action":"show","id":"101099"},"errata":{"rhea":{"id":101099,"revision":1,"fulladvisory":"RHEA-2022:6301-01","issue_date":"2022-09-05T07:11:57Z","update_date":"2022-09-05T07:11:57Z","release_date":null,"synopsis":"OpenShift Container Platform Assisted Installer version 2.9.0 release","mailed":0,"pushed":0,"published":1,"deleted":0,"qa_complete":1,"status":"SHIPPED_LIVE","resolution":"","reporter_id":3006104,"assigned_to_id":3005697,"old_delete_product":null,"severity":"normal","priority":"normal","rhn_complete":0,"request":0,"doc_complete":1,"rhnqa":1,"closed":0,"contract":null,"pushcount":1,"text_ready":0,"package_owner_id":3006104,"manager_id":3002435,"rhnqa_shadow":0,"published_shadow":0,"current_tps_run":null,"filelist_locked":0,"filelist_changed":0,"sign_requested":0,"security_impact":"None","product_id":79,"is_brew":1,"status_updated_at":"2022-09-05T07:13:52Z","group_id":1605,"created_at":"2022-08-31T09:03:05Z","updated_at":"2022-09-05T07:13:52Z","respin_count":0,"old_advisory":"RHEA-2022:101099-01","rating":0,"docs_responsibility_id":1,"quality_responsibility_id":2,"devel_responsibility_id":3,"is_valid":1,"current_state_index_id":616115,"text_only":false,"publish_date_override":"2022-09-05T00:00:00Z","state_machine_rule_set_id":null,"actual_ship_date":"2022-09-05T07:13:52Z","supports_multiple_product_destinations":false,"security_approved":null,"batch_id":null,"is_batch_blocker":false,"request_rcm_push_comment_id":null,"content_types":["docker"],"embargo_undated":false,"security_sla":null,"cloned_from_id":100296,"is_followup":false,"expected_publish_date":"2022-09-05","builds_updated_at":"2022-08-31T09:12:18Z","cve_mapping_validation_complete":null,"embargo_date":null,"errata_id":6301,"publish_date":"2022-09-05T00:00:00Z","fulltype":"Red Hat Enhancement Advisory","is_operator_hotfix":false,"skip_customer_notifications":false,"blocking_advisories":[],"dependent_advisories":[],"product":{"id":79,"name":"Red Hat OpenShift Enterprise","short_name":"RHOSE"}}},"original_type":"RHEA","content":{"content":{"id":98679,"errata_id":101099,"topic":"Assisted Installer version 2.9.0 is now available for Red Hat OpenShift Container Platform.","description":"Red Hat OpenShift Container Platform is Red Hat's cloud computing\nKubernetes application platform solution designed for on-premise or private cloud deployments.\n\nThis advisory contains the container images for Red Hat OpenShift Container Platform related to the Assisted Installer.","solution":"For OpenShift Container Platform 4.11, see the following documentation for important instructions on how to upgrade your cluster and fully apply this asynchronous errata update:\n\nhttps://docs.openshift.com/container-platform/4.11/release_notes/ocp-4-11-release-notes.html","keywords":"","obsoletes":"","cve":"","packages":null,"multilib":null,"crossref":"","reference":"","how_to_test":null,"doc_reviewer_id":3005331,"updated_at":"2022-09-01T12:41:40Z","revision_count":1,"doc_review_due_at":null,"text_only_cpe":null,"product_version_text":"","product_security_reviewer_id":null}},"diffs":{},"bugs":{"errata":{"rhea":{"id":101099,"revision":1,"fulladvisory":"RHEA-2022:6301-01","issue_date":"2022-09-05T07:11:57Z","update_date":"2022-09-05T07:11:57Z","release_date":null,"synopsis":"OpenShift Container Platform Assisted Installer version 2.9.0 release","mailed":0,"pushed":0,"published":1,"deleted":0,"qa_complete":1,"status":"SHIPPED_LIVE","resolution":"","reporter_id":3006104,"assigned_to_id":3005697,"old_delete_product":null,"severity":"normal","priority":"normal","rhn_complete":0,"request":0,"doc_complete":1,"rhnqa":1,"closed":0,"contract":null,"pushcount":1,"text_ready":0,"package_owner_id":3006104,"manager_id":3002435,"rhnqa_shadow":0,"published_shadow":0,"current_tps_run":null,"filelist_locked":0,"filelist_changed":0,"sign_requested":0,"security_impact":"None","product_id":79,"is_brew":1,"status_updated_at":"2022-09-05T07:13:52Z","group_id":1605,"created_at":"2022-08-31T09:03:05Z","updated_at":"2022-09-05T07:13:52Z","respin_count":0,"old_advisory":"RHEA-2022:101099-01","rating":0,"docs_responsibility_id":1,"quality_responsibility_id":2,"devel_responsibility_id":3,"is_valid":1,"current_state_index_id":616115,"text_only":false,"publish_date_override":"2022-09-05T00:00:00Z","state_machine_rule_set_id":null,"actual_ship_date":"2022-09-05T07:13:52Z","supports_multiple_product_destinations":false,"security_approved":null,"batch_id":null,"is_batch_blocker":false,"request_rcm_push_comment_id":null,"content_types":["docker"],"embargo_undated":false,"security_sla":null,"cloned_from_id":100296,"is_followup":false,"expected_publish_date":"2022-09-05","builds_updated_at":"2022-08-31T09:12:18Z","cve_mapping_validation_complete":null,"embargo_date":null,"errata_id":6301,"publish_date":"2022-09-05T00:00:00Z","fulltype":"Red Hat Enhancement Advisory","is_operator_hotfix":false,"skip_customer_notifications":false,"blocking_advisories":[],"dependent_advisories":[],"product":{"id":79,"name":"Red Hat OpenShift Enterprise","short_name":"RHOSE"}}},"id_field":"id","id_prefix":"bz:","type":"bugs","idsfixed":[],"bugs":[],"to_fetch":[]},"jira_issues":{"errata":{"rhea":{"id":101099,"revision":1,"fulladvisory":"RHEA-2022:6301-01","issue_date":"2022-09-05T07:11:57Z","update_date":"2022-09-05T07:11:57Z","release_date":null,"synopsis":"OpenShift Container Platform Assisted Installer version 2.9.0 release","mailed":0,"pushed":0,"published":1,"deleted":0,"qa_complete":1,"status":"SHIPPED_LIVE","resolution":"","reporter_id":3006104,"assigned_to_id":3005697,"old_delete_product":null,"severity":"normal","priority":"normal","rhn_complete":0,"request":0,"doc_complete":1,"rhnqa":1,"closed":0,"contract":null,"pushcount":1,"text_ready":0,"package_owner_id":3006104,"manager_id":3002435,"rhnqa_shadow":0,"published_shadow":0,"current_tps_run":null,"filelist_locked":0,"filelist_changed":0,"sign_requested":0,"security_impact":"None","product_id":79,"is_brew":1,"status_updated_at":"2022-09-05T07:13:52Z","group_id":1605,"created_at":"2022-08-31T09:03:05Z","updated_at":"2022-09-05T07:13:52Z","respin_count":0,"old_advisory":"RHEA-2022:101099-01","rating":0,"docs_responsibility_id":1,"quality_responsibility_id":2,"devel_responsibility_id":3,"is_valid":1,"current_state_index_id":616115,"text_only":false,"publish_date_override":"2022-09-05T00:00:00Z","state_machine_rule_set_id":null,"actual_ship_date":"2022-09-05T07:13:52Z","supports_multiple_product_destinations":false,"security_approved":null,"batch_id":null,"is_batch_blocker":false,"request_rcm_push_comment_id":null,"content_types":["docker"],"embargo_undated":false,"security_sla":null,"cloned_from_id":100296,"is_followup":false,"expected_publish_date":"2022-09-05","builds_updated_at":"2022-08-31T09:12:18Z","cve_mapping_validation_complete":null,"embargo_date":null,"errata_id":6301,"publish_date":"2022-09-05T00:00:00Z","fulltype":"Red Hat Enhancement Advisory","is_operator_hotfix":false,"skip_customer_notifications":false,"blocking_advisories":[],"dependent_advisories":[],"product":{"id":79,"name":"Red Hat OpenShift Enterprise","short_name":"RHOSE"}}},"id_field":"key","id_prefix":"jira:","type":"jira_issues","idsfixed":["MGMT-11861"],"jira_issues":[{"jira_issue":{"id":1566003,"id_jira":14822228,"key":"MGMT-11861","summary":"Release v2.9.0","status":"Closed","jira_security_level_id":null,"updated":"2022-09-05T07:14:12Z","labels":[],"priority":"Undefined","jira_server_id":1,"sla_date":null,"release_notes_text":null,"issue_type":"Task"}}],"to_fetch":[]}}
55 changes: 55 additions & 0 deletions errata_tool/tests/test_advisory.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,61 @@ def test_errata_bugs(self, advisory):
def test_errata_issues(self, advisory):
assert advisory.jira_issues == []

def test_errata_jira_issues_empty(self, advisory):
assert advisory.jira_issues == []

def test_errata_jira_issue_default(self, advisory_with_jira):
assert advisory_with_jira.jira_issues == ['MGMT-11861']

def test_errata_jira_remove_issue(self, advisory_with_jira):
advisory_with_jira.removeJIRAIssues("MGMT-11861")
assert advisory_with_jira.jira_issues == []

def test_errata_jira_remove_wrong_issue(self, advisory_with_jira):
advisory_with_jira.removeJIRAIssues("FOO-123")
assert advisory_with_jira.jira_issues == ['MGMT-11861']

def test_errata_jira_add_then_remove_same(self, advisory_with_jira):
advisory_with_jira.addJiraIssues("FOO-123")
advisory_with_jira.removeJIRAIssues("FOO-123")
assert advisory_with_jira.jira_issues == ['MGMT-11861']

def test_errata_jira_issues_inject_one_string(self, advisory):
advisory.addJiraIssues("TEST-123")
assert advisory.jira_issues == ["TEST-123"]

def test_errata_jira_issues_inject_two_list(self, advisory):
advisory.addJiraIssues(["TEST-123", "TEST-111"])
assert set(advisory.jira_issues) == set(["TEST-123", "TEST-111"])

def test_errata_jira_issues_inject_duplicate(self, advisory):
advisory.addJiraIssues("TEST-123")
advisory.addJiraIssues("TEST-123")
assert advisory.jira_issues == ["TEST-123"]

def test_commit_no_op(self, advisory_with_jira):
assert advisory_with_jira.commit() is False

def test_commit_builds_changed_jira(self, advisory_with_jira):
advisory_with_jira._buildschanged = True
assert advisory_with_jira.commit() is True

def test_commit_builds_changed_jira_bzs(self, advisory_with_jira_and_bugs):
advisory_with_jira_and_bugs._buildschanged = True
assert advisory_with_jira_and_bugs.commit() is True

def test_commit_builds_changed_jira(self, advisory_with_jira):
advisory_with_jira.addJiraIssues("TEST-123")
advisory_with_jira.addBugs(1234)
advisory_with_jira._buildschanged = True
assert advisory_with_jira.commit() is True

def test_commit_add_jira_issue(self, advisory_with_jira):
advisory_with_jira.addJiraIssues("TEST-123")
advisory_with_jira.addBugs(1234)
advisory_with_jira._buildschanged = True
assert advisory_with_jira.commit() is True

def test_commit(self, advisory):
advisory._buildschanged = True
assert advisory.commit() is True
Expand Down

0 comments on commit 312c6ae

Please sign in to comment.