Fix check_tests - and reduce what we test there

This commit is contained in:
Stephan Kulow 2019-11-20 15:58:08 +01:00
parent d014002bc3
commit fd1871b99e
5 changed files with 104 additions and 4394 deletions

View File

@ -5,132 +5,31 @@ from osclib.conf import Config
from osclib.check_command import CheckCommand from osclib.check_command import CheckCommand
from osclib.stagingapi import StagingAPI from osclib.stagingapi import StagingAPI
from lxml import etree
from mock import MagicMock from mock import MagicMock
from . import OBSLocal from . import OBSLocal
FULL_REPORT = """
-- BUILDING Project openSUSE:Factory:Staging:A still needs attention
- pcre: Missing reviews: repo-checker
- At least following repositories are still building:
standard/i586: building
- Following packages are broken:
installation-images:Kubic (standard): failed
-- TESTING Project openSUSE:Factory:Staging:B still needs attention
- perl-File-Copy-Recursive: Missing reviews: repo-checker
- Missing check: openqa:cryptlvm
-- BUILDING Project openSUSE:Factory:Staging:C still needs attention
- perl: Missing reviews: repo-checker
- At least following repositories are still building:
standard/i586: building
- Missing check: openqa:cryptlvm
-- FAILED Project openSUSE:Factory:Staging:D still needs attention
- failure check: openqa:textmode https://openqa.opensuse.org/tests/790715#step/partitioning/2
++ Acceptable staging project openSUSE:Factory:Staging:E
-- FAILED Project openSUSE:Factory:Staging:F still needs attention
- python-ceilometerclient: Missing reviews: repo-checker
- Following packages are broken:
dleyna-server (standard): unresolvable
- pending check: openqa:textmode https://openqa.opensuse.org/tests/790912
-- UNACCEPTABLE Project openSUSE:Factory:Staging:adi:16 still needs attention
- postfixadmin: declined
- postfixadmin: Missing reviews: repo-checker
-- UNACCEPTABLE Project openSUSE:Factory:Staging:adi:17 still needs attention
- cf-cli: declined
- Following packages are broken:
cf-cli:test (standard): failed
-- FAILED Project openSUSE:Factory:Staging:adi:35 still needs attention
- checkpolicy: Missing reviews: repo-checker
- Following packages are broken:
checkpolicy (standard): unresolvable
-- FAILED Project openSUSE:Factory:Staging:adi:36 still needs attention
- python-QtPy: Missing reviews: opensuse-review-team
- Following packages are broken:
python-QtPy (standard): failed
-- FAILED Project openSUSE:Factory:Staging:adi:38 still needs attention
- lmms: Missing reviews: repo-checker
- Following packages are broken:
lmms (standard): unresolvable
-- FAILED Project openSUSE:Factory:Staging:adi:39 still needs attention
- Following packages are broken:
ocaml-extlib (standard): unresolvable
-- FAILED Project openSUSE:Factory:Staging:adi:40 still needs attention
- apache2-mod_auth_openidc: Missing reviews: repo-checker
- Following packages are broken:
apache2-mod_auth_openidc (standard): unresolvable
-- FAILED Project openSUSE:Factory:Staging:adi:44 still needs attention
- Following packages are broken:
nut (standard): failed
-- FAILED Project openSUSE:Factory:Staging:adi:5 still needs attention
- verilator: Missing reviews: opensuse-review-team
- Following packages are broken:
verilator (standard): unresolvable
-- FAILED Project openSUSE:Factory:Staging:adi:56 still needs attention
- Following packages are broken:
firehol (standard): unresolvable
-- UNACCEPTABLE Project openSUSE:Factory:Staging:adi:62 still needs attention
- rubygem-passenger: declined
- rubygem-passenger: Missing reviews: opensuse-review-team
- Following packages are broken:
rubygem-passenger (standard): failed
-- UNACCEPTABLE Project openSUSE:Factory:Staging:adi:65 still needs attention
- python-easypysmb: declined
- python-easypysmb: Missing reviews: opensuse-review-team
-- FAILED Project openSUSE:Factory:Staging:adi:67 still needs attention
- cargo-vendor: Missing reviews: repo-checker
- Following packages are broken:
cargo-vendor (standard): unresolvable
-- UNACCEPTABLE Project openSUSE:Factory:Staging:adi:7 still needs attention
- osslsigncode: declined
- x86info: Missing reviews: opensuse-review-team
"""
H_REPORT = """ H_REPORT = """
-- FAILED Project openSUSE:Factory:Staging:H still needs attention -- FAILED Project openSUSE:Factory:Staging:H still needs attention
- failure check: openqa:textmode https://openqa.opensuse.org/tests/790715#step/partitioning/2 - neon: Missing reviews: group:origin-reviewers
- Following packages are broken:
git (standard): unresolvable
- failure check: openqa:kde https://openqa.opensuse.org/tests/1077669#step/dolphin/5
""" """
class TestCheckCommand(unittest.TestCase): class TestCheckCommand(unittest.TestCase):
"""Tests CheckCommand.""" """Tests CheckCommand."""
def setup_vcr(self): def test_check_command_single(self):
"""Validate json conversion for a single project."""
wf = OBSLocal.StagingWorkflow() wf = OBSLocal.StagingWorkflow()
wf.create_staging('H') wf.create_staging('H')
self.checkcommand = CheckCommand(wf.api) self.checkcommand = CheckCommand(wf.api)
return wf
def test_check_command_all(self): with open('tests/fixtures/project/staging_projects/openSUSE:Factory/H.xml', encoding='utf-8') as f:
"""Validate json conversion for all projects.""" xml = etree.fromstring(f.read())
wf = self.setup_vcr() wf.api.project_status = MagicMock(return_value=xml)
with open('tests/fixtures/project/staging_projects/openSUSE:Factory.json', encoding='utf-8') as f: report = self.checkcommand._check_project('openSUSE:Factory:Staging:H')
wf.api.project_status = MagicMock(return_value=json.load(f))
report = self.checkcommand._check_project()
self.maxDiff = 20000
self.assertMultiLineEqual('\n'.join(report).strip(), FULL_REPORT.strip())
def test_check_command_single(self):
"""Validate json conversion for a single project."""
wf = self.setup_vcr()
with open('tests/fixtures/project/staging_projects/openSUSE:Factory/H.json', encoding='utf-8') as f:
wf.api.project_status = MagicMock(return_value=json.load(f))
report = self.checkcommand._check_project('H')
self.assertMultiLineEqual('\n'.join(report).strip(), H_REPORT.strip()) self.assertMultiLineEqual('\n'.join(report).strip(), H_REPORT.strip())

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
{
"overall_state": "acceptable"
}

View File

@ -1,143 +0,0 @@
{
"selected_requests" : [
{
"superseded_by" : null,
"package" : "kernel-source",
"project" : "openSUSE:Factory",
"state" : "review",
"approver" : null,
"description" : "4.19 (let's not supersede 4.18.16 to have this pending as I assume there will be some problems in staging again)",
"id" : 1152735,
"updated_at" : "2018-11-02T04:26:34.024Z",
"request_type" : "submit",
"superseded_by_id" : null,
"priority" : "moderate",
"accept_at" : null,
"creator" : "jirislaby",
"number" : 643881,
"created_at" : "2018-10-23T06:31:44.000Z",
"updated_when" : "2018-11-02T04:26:34.024Z"
}
],
"obsolete_requests" : [],
"broken_packages" : [],
"missing_checks" : [],
"name" : "openSUSE:Factory:Staging:H",
"checks" : [
{
"short_description" : null,
"name" : "openqa:minimalx@64bit",
"updated_at" : "2018-11-09T13:47:06.000Z",
"state" : "success",
"id" : 3906,
"created_at" : "2018-11-09T12:53:23.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790707"
},
{
"state" : "success",
"id" : 3909,
"updated_at" : "2018-11-09T12:56:00.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790708",
"created_at" : "2018-11-09T12:53:23.000Z",
"short_description" : null,
"name" : "openqa:rescue_system"
},
{
"short_description" : null,
"name" : "openqa:minimalx@uefi-staging",
"created_at" : "2018-11-09T12:53:23.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790709",
"updated_at" : "2018-11-09T13:47:31.000Z",
"state" : "success",
"id" : 3912
},
{
"short_description" : null,
"name" : "openqa:RAID0",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790710",
"created_at" : "2018-11-09T12:53:23.000Z",
"state" : "success",
"id" : 3915,
"updated_at" : "2018-11-09T13:32:09.000Z"
},
{
"updated_at" : "2018-11-09T13:51:17.000Z",
"state" : "success",
"id" : 3918,
"created_at" : "2018-11-09T12:53:24.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790711",
"short_description" : null,
"name" : "openqa:cryptlvm"
},
{
"url" : "https://openqa.opensuse.org/tests/790712",
"status_reports_id" : 411,
"created_at" : "2018-11-09T12:53:25.000Z",
"id" : 3921,
"state" : "success",
"updated_at" : "2018-11-09T14:02:05.000Z",
"name" : "openqa:gnome",
"short_description" : null
},
{
"short_description" : null,
"name" : "openqa:kde@64bit",
"updated_at" : "2018-11-09T14:22:48.000Z",
"state" : "success",
"id" : 3924,
"created_at" : "2018-11-09T12:53:25.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790713"
},
{
"created_at" : "2018-11-09T12:53:25.000Z",
"url" : "https://openqa.opensuse.org/tests/790714",
"status_reports_id" : 411,
"updated_at" : "2018-11-09T14:21:51.000Z",
"id" : 3927,
"state" : "success",
"name" : "openqa:kde@USBboot_64",
"short_description" : null
},
{
"id" : 3930,
"state" : "failure",
"updated_at" : "2018-11-09T13:09:16.000Z",
"url" : "https://openqa.opensuse.org/tests/790715#step/partitioning/2",
"status_reports_id" : 411,
"created_at" : "2018-11-09T12:53:26.000Z",
"name" : "openqa:textmode",
"short_description" : null
},
{
"short_description" : null,
"name" : "openqa:update_staging",
"state" : "success",
"id" : 3933,
"updated_at" : "2018-11-09T13:39:36.000Z",
"status_reports_id" : 411,
"url" : "https://openqa.opensuse.org/tests/790716",
"created_at" : "2018-11-09T12:53:26.000Z"
},
{
"name" : "openqa:RAID1",
"short_description" : null,
"created_at" : "2018-11-09T12:53:26.000Z",
"url" : "https://openqa.opensuse.org/tests/790717",
"status_reports_id" : 411,
"updated_at" : "2018-11-09T14:12:49.000Z",
"id" : 3936,
"state" : "success"
}
],
"untracked_requests" : [],
"missing_reviews" : [],
"overall_state" : "failed",
"description" : "requests:\n- {author: jirislaby, id: 643881, package: kernel-source, type: submit}\nrequests_comment: 21343\nsplitter_info:\n activated: '2018-10-23 06:12:35.646967'\n group: kernel-source\n strategy: {name: special}\n",
"building_repositories" : []
}

View File

@ -0,0 +1,92 @@
<staging_project name="openSUSE:Factory:Staging:H" state="failed">
<staged_requests count="16">
<request id="730409" type="submit" creator="vitezslav_cizek" state="review" package="thrift" superseded_by="" updated="2019-11-18T14:41:30Z"/>
<request id="731558" type="submit" creator="lnussel_factory" state="review" package="neon" superseded_by="" updated="2019-11-18T14:41:35Z"/>
<request id="731559" type="submit" creator="lnussel_factory" state="review" package="mysql-connector-cpp" superseded_by="" updated="2019-11-18T14:41:39Z"/>
<request id="731560" type="submit" creator="lnussel_factory" state="review" package="openslp" superseded_by="" updated="2019-11-18T14:41:44Z"/>
<request id="731562" type="submit" creator="lnussel_factory" state="review" package="apr-util" superseded_by="" updated="2019-11-18T14:41:53Z"/>
<request id="733184" type="submit" creator="lnussel_factory" state="review" package="perl-Net-SSLeay" superseded_by="" updated="2019-11-18T14:41:57Z"/>
<request id="733185" type="submit" creator="lnussel_factory" state="review" package="perl-IO-Socket-SSL" superseded_by="" updated="2019-11-18T14:42:02Z"/>
<request id="733186" type="submit" creator="lnussel_factory" state="review" package="python-cryptography" superseded_by="" updated="2019-11-18T14:42:09Z"/>
<request id="733193" type="submit" creator="lnussel_factory" state="review" package="python-M2Crypto" superseded_by="" updated="2019-11-18T14:42:14Z"/>
<request id="733202" type="submit" creator="lnussel_factory" state="review" package="fipscheck" superseded_by="" updated="2019-11-18T14:42:21Z"/>
<request id="737629" type="submit" creator="origin-manager" state="review" package="python-pyOpenSSL" superseded_by="" updated="2019-11-18T14:42:26Z"/>
<request id="744011" type="submit" creator="origin-manager" state="review" package="python3" superseded_by="" updated="2019-11-18T14:42:31Z"/>
<request id="745363" type="submit" creator="lnussel" state="review" package="nodejs8" superseded_by="" updated="2019-11-18T14:42:38Z"/>
<request id="745371" type="submit" creator="lnussel" state="review" package="postfix" superseded_by="" updated="2019-11-18T14:42:44Z"/>
<request id="745542" type="submit" creator="lnussel_factory" state="review" package="python" superseded_by="" updated="2019-11-18T14:42:50Z"/>
<request id="746554" type="submit" creator="origin-manager" state="review" package="git" superseded_by="" updated="2019-11-18T14:42:58Z"/>
</staged_requests>
<untracked_requests count="0"/>
<obsolete_requests count="0"/>
<missing_reviews count="12">
<review request="731558" state="new" package="neon" creator="origin-manager" by_group="origin-reviewers"/>
<review request="731559" state="new" package="mysql-connector-cpp" creator="origin-manager" by_group="origin-reviewers"/>
<review request="731560" state="new" package="openslp" creator="origin-manager" by_group="origin-reviewers"/>
<review request="731562" state="new" package="apr-util" creator="origin-manager" by_group="origin-reviewers"/>
<review request="733184" state="new" package="perl-Net-SSLeay" creator="origin-manager" by_group="origin-reviewers"/>
<review request="733185" state="new" package="perl-IO-Socket-SSL" creator="origin-manager" by_group="origin-reviewers"/>
<review request="733186" state="new" package="python-cryptography" creator="origin-manager" by_group="origin-reviewers"/>
<review request="733193" state="new" package="python-M2Crypto" creator="origin-manager" by_group="origin-reviewers"/>
<review request="733202" state="new" package="fipscheck" creator="origin-manager" by_group="origin-reviewers"/>
<review request="745363" state="new" package="nodejs8" creator="origin-manager" by_group="origin-reviewers"/>
<review request="745371" state="new" package="postfix" creator="origin-manager" by_group="origin-reviewers"/>
<review request="745542" state="new" package="python" creator="origin-manager" by_group="origin-reviewers"/>
</missing_reviews>
<building_repositories count="0"/>
<broken_packages count="5">
<package package="git" project="openSUSE:Factory:Staging:H" state="unresolvable" repository="standard" arch="i586"/>
<package package="python-CherryPy" project="openSUSE:Factory:Staging:H" state="failed" repository="standard" arch="i586"/>
<package package="python-pep8" project="openSUSE:Factory:Staging:H" state="failed" repository="standard" arch="x86_64"/>
<package package="python3-doc" project="openSUSE:Factory:Staging:H" state="failed" repository="standard" arch="x86_64"/>
<package package="000product:openSUSE-dvd5-dvd-x86_64" project="openSUSE:Factory:Staging:H" state="failed" repository="images" arch="x86_64"/>
</broken_packages>
<checks count="9">
<check name="openqa:RAID1" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077663</url>
</check>
<check name="openqa:minimalx@smp_64" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077664</url>
</check>
<check name="openqa:rescue_system" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077665</url>
</check>
<check name="openqa:cryptlvm" required="true">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077666</url>
</check>
<check name="openqa:minimalx@uefi-staging" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077667</url>
</check>
<check name="openqa:gnome" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077668</url>
</check>
<check name="openqa:kde" required="false">
<state>failure</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077669#step/dolphin/5</url>
</check>
<check name="openqa:textmode" required="false">
<state>success</state>
<short_description/>
<url>https://openqa.opensuse.org/tests/1077670</url>
</check>
<check name="installcheck" required="true">
<state>success</state>
<short_description/>
<url>https://botmaster.suse.de/go/tab/build/detail/Leap.Staging.B/23/Checks/1/Repo.Checker#tab-console</url>
</check>
</checks>
<missing_checks count="0"/>
</staging_project>