#1745 cli: test list-builds, list-packages and get-package output
Merged 3 years ago by praiskup. Opened 3 years ago by praiskup.
Unknown source test-cli-output  into  main

file modified
+2
@@ -43,6 +43,7 @@

  BuildRequires: python3-jinja2

  BuildRequires: python3-humanize

  BuildRequires: python3-pytest

+ BuildRequires: python3-responses

  BuildRequires: python3-setuptools

  BuildRequires: python3-simplejson

  BuildRequires: python3-munch
@@ -58,6 +59,7 @@

  BuildRequires: python-jinja2

  BuildRequires: python-humanize

  BuildRequires: python-mock

+ BuildRequires: python2-responses

  BuildRequires: python-setuptools

  BuildRequires: python-simplejson

  BuildRequires: python-munch

@@ -0,0 +1,96 @@

+ {

+     "auto_rebuild": false,

+     "builds": [

builds are not part of the original response to the get-package command.

Builds are, the command is:
copr get-package --name binutils --with-all-builds praiskup/autoconf-2.71-attempts --with-latest-succeeded-build

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616671797,

+             "id": 2097553,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097553/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616669174,

+             "state": "succeeded",

+             "submitted_on": 1616669115,

+             "submitter": "praiskup"

+         },

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616667245,

+             "id": 2097476,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097476/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616667095,

+             "state": "failed",

+             "submitted_on": 1616667054,

+             "submitter": "praiskup"

+         },

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616665521,

+             "id": 2097438,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097438/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616665367,

+             "state": "failed",

+             "submitted_on": 1616665305,

+             "submitter": "praiskup"

+         }

+     ],

+     "id": 654453,

+     "latest_build": null,

+     "latest_succeeded_build": {

+         "chroots": [

+             "fedora-rawhide-x86_64"

+         ],

+         "ended_on": 1616671797,

+         "id": 2097553,

+         "ownername": "praiskup",

+         "project_dirname": "autoconf-2.71-attempts",

+         "projectname": "autoconf-2.71-attempts",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+         "source_package": {

+             "name": "binutils",

+             "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097553/binutils-2.36.1-7.src.rpm",

+             "version": "2.36.1-7"

+         },

+         "started_on": 1616669174,

+         "state": "succeeded",

+         "submitted_on": 1616669115,

+         "submitter": "praiskup"

+     },

+     "name": "binutils",

+     "ownername": "praiskup",

+     "projectname": "autoconf-2.71-attempts",

+     "source_dict": {

+         "pkg": "binutils-2.36.1-7.src.rpm",

+         "tmp": "tmpja508sn4",

+         "url": "https://copr.fedorainfracloud.org/tmp/tmpja508sn4/binutils-2.36.1-7.src.rpm"

+     },

+     "source_type": "upload"

+ }

@@ -0,0 +1,36 @@

+ {

+     "auto_rebuild": false,

+     "builds": {

+         "latest": null,

+         "latest_succeeded": {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616671797,

+             "id": 2097553,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097553/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616669174,

+             "state": "succeeded",

+             "submitted_on": 1616669115,

+             "submitter": "praiskup"

+         }

+     },

+     "id": 654453,

+     "name": "binutils",

+     "ownername": "praiskup",

+     "projectname": "autoconf-2.71-attempts",

+     "source_dict": {

+         "pkg": "binutils-2.36.1-7.src.rpm",

+         "tmp": "tmpja508sn4",

+         "url": "https://copr.fedorainfracloud.org/tmp/tmpja508sn4/binutils-2.36.1-7.src.rpm"

+     },

+     "source_type": "upload"

+ }

@@ -0,0 +1,70 @@

+ {

+     "items": [

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616671797,

+             "id": 2097553,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097553/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616669174,

+             "state": "succeeded",

+             "submitted_on": 1616669115,

+             "submitter": "praiskup"

+         },

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616667245,

+             "id": 2097476,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097476/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616667095,

+             "state": "failed",

+             "submitted_on": 1616667054,

+             "submitter": "praiskup"

+         },

+         {

+             "chroots": [

+                 "fedora-rawhide-x86_64"

+             ],

+             "ended_on": 1616665521,

+             "id": 2097438,

+             "ownername": "praiskup",

+             "project_dirname": "autoconf-2.71-attempts",

+             "projectname": "autoconf-2.71-attempts",

+             "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts",

+             "source_package": {

+                 "name": "binutils",

+                 "url": "https://download.copr.fedorainfracloud.org/results/praiskup/autoconf-2.71-attempts/srpm-builds/02097438/binutils-2.36.1-7.src.rpm",

+                 "version": "2.36.1-7"

+             },

+             "started_on": 1616665367,

+             "state": "failed",

+             "submitted_on": 1616665305,

+             "submitter": "praiskup"

+         }

+     ],

+     "meta": {

+         "limit": null,

+         "offset": 0,

+         "order": "id",

+         "order_type": "ASC"

+     }

+ }

@@ -0,0 +1,5 @@

+ 2088282	dummy-pkg	succeeded

+ 2014210	dummy-pkg	failed

+ 1966447	dummy-pkg	failed

+ 1958830	dummy-pkg	succeeded

+ 1939925	None	failed

@@ -0,0 +1,107 @@

+ {

+ "meta": {

+     "limit": 100, "offset": 0, "order": "id", "order_type": "ASC"},

+ "items": [

+     {

+         "chroots": [

+             "mageia-8-x86_64"

+         ],

+         "ended_on": 1616357014,

+         "id": 2088282,

+         "ownername": "praiskup",

+         "project_dirname": "ping",

+         "projectname": "ping",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping",

+         "source_package": {

+             "name": "dummy-pkg",

+             "url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping/srpm-builds/02088282/dummy-pkg-20210321_2058-1.src.rpm",

+             "version": "20210321_2058-1"

+         },

+         "started_on": 1616356790,

+         "state": "succeeded",

+         "submitted_on": 1616356749,

+         "submitter": "praiskup"

+     },

+     {

+         "chroots": [

+             "fedora-rawhide-i386"

+         ],

+         "ended_on": 1614062207,

+         "id": 2014210,

+         "ownername": "praiskup",

+         "project_dirname": "ping",

+         "projectname": "ping",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping",

+         "source_package": {

+             "name": "dummy-pkg",

+             "url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping/srpm-builds/02014210/dummy-pkg-20210223_0728-1.src.rpm",

+             "version": "20210223_0728-1"

+         },

+         "started_on": 1614061752,

+         "state": "failed",

+         "submitted_on": 1614061713,

+         "submitter": "praiskup"

+     },

+     {

+         "chroots": [

+             "fedora-rawhide-aarch64",

+             "centos-stream-8-x86_64",

+             "mageia-7-x86_64"

+         ],

+         "ended_on": 1613378548,

+         "id": 1966447,

+         "ownername": "praiskup",

+         "project_dirname": "ping",

+         "projectname": "ping",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping",

+         "source_package": {

+             "name": "dummy-pkg",

+             "url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping/srpm-builds/01966447/dummy-pkg-20210215_0934-1.src.rpm",

+             "version": "20210215_0934-1"

+         },

+         "started_on": 1613378100,

+         "state": "failed",

+         "submitted_on": 1613378074,

+         "submitter": "praiskup"

+     },

+     {

+         "chroots": [

+             "centos-stream-8-x86_64"

+         ],

+         "ended_on": 1613080722,

+         "id": 1958830,

+         "ownername": "praiskup",

+         "project_dirname": "ping",

+         "projectname": "ping",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping",

+         "source_package": {

+             "name": "dummy-pkg",

+             "url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping/srpm-builds/01958830/dummy-pkg-20210211_2253-1.src.rpm",

+             "version": "20210211_2253-1"

+         },

+         "started_on": 1613080490,

+         "state": "succeeded",

+         "submitted_on": 1613080453,

+         "submitter": "praiskup"

+     },

+     {

+         "chroots": [

+             "fedora-rawhide-x86_64"

+         ],

+         "ended_on": 1612423498,

+         "id": 1939925,

+         "ownername": "praiskup",

+         "project_dirname": "ping",

+         "projectname": "ping",

+         "repo_url": "https://download.copr.fedorainfracloud.org/results/praiskup/ping",

+         "source_package": {

+             "name": null,

+             "url": null,

+             "version": null

+         },

+         "started_on": 1612423493,

+         "state": "failed",

+         "submitted_on": 1612423436,

+         "submitter": "praiskup"

+     }

+ ]}

@@ -0,0 +1,119 @@

+ [

+     {

+         "auto_rebuild": false,

+         "id": 361737,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "dummy-pkg",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "clone_url": "https://src.fedoraproject.org/rpms/tar.git",

+             "committish": "",

+             "source_build_method": "rpkg",

+             "spec": "",

+             "subdirectory": "",

+             "type": "git"

+         },

+         "source_type": "scm"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 478014,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "postgresql",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "pkg": "postgresql-12.3-3.fc33.src.rpm",

+             "tmp": "tmpgbydzodb",

+             "url": "https://copr.fedorainfracloud.org/tmp/tmpgbydzodb/postgresql-12.3-3.fc33.src.rpm"

+         },

+         "source_type": "upload"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 558001,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "sphinx",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "pypi_package_name": "sphinx",

+             "pypi_package_version": "",

+             "python_versions": [

+                 "3",

+                 "2"

+             ],

+             "spec_template": ""

+         },

+         "source_type": "pypi"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 558003,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "python-sphinx",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "pypi_package_name": "sphinx",

+             "pypi_package_version": "",

+             "python_versions": [

+                 "3",

+                 "2"

+             ],

+             "spec_template": ""

+         },

+         "source_type": "pypi"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 558023,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "tar",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "clone_url": "https://src.fedoraproject.org/rpms/tar.git",

+             "distgit": "fedora"

+         },

+         "source_type": "distgit"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 585766,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "cpio",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "clone_url": "https://src.fedoraproject.org/rpms/cpio.git",

+             "distgit": "fedora"

+         },

+         "source_type": "distgit"

+     },

+     {

+         "auto_rebuild": false,

+         "id": 613312,

+         "latest_build": null,

+         "latest_succeeded_build": null,

+         "name": "python-argparse-manpage",

+         "ownername": "praiskup",

+         "projectname": "ping",

+         "source_dict": {

+             "pypi_package_name": "argparse-manpage",

+             "pypi_package_version": "",

+             "python_versions": [

+                 "3"

+             ],

+             "spec_template": ""

+         },

+         "source_type": "pypi"

+     }

+ ]

@@ -0,0 +1,141 @@

+ {

+   "items": [

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 361737,

+       "name": "dummy-pkg",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "clone_url": "https://src.fedoraproject.org/rpms/tar.git",

+         "committish": "",

+         "source_build_method": "rpkg",

+         "spec": "",

+         "subdirectory": "",

+         "type": "git"

+       },

+       "source_type": "scm"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 478014,

+       "name": "postgresql",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "pkg": "postgresql-12.3-3.fc33.src.rpm",

+         "tmp": "tmpgbydzodb",

+         "url": "https://copr.fedorainfracloud.org/tmp/tmpgbydzodb/postgresql-12.3-3.fc33.src.rpm"

+       },

+       "source_type": "upload"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 558001,

+       "name": "sphinx",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "pypi_package_name": "sphinx",

+         "pypi_package_version": "",

+         "python_versions": [

+           "3",

+           "2"

+         ],

+         "spec_template": ""

+       },

+       "source_type": "pypi"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 558003,

+       "name": "python-sphinx",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "pypi_package_name": "sphinx",

+         "pypi_package_version": "",

+         "python_versions": [

+           "3",

+           "2"

+         ],

+         "spec_template": ""

+       },

+       "source_type": "pypi"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 558023,

+       "name": "tar",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "clone_url": "https://src.fedoraproject.org/rpms/tar.git",

+         "distgit": "fedora"

+       },

+       "source_type": "distgit"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 585766,

+       "name": "cpio",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "clone_url": "https://src.fedoraproject.org/rpms/cpio.git",

+         "distgit": "fedora"

+       },

+       "source_type": "distgit"

+     },

+     {

+       "auto_rebuild": false,

+       "builds": {

+         "latest": null,

+         "latest_succeeded": null

+       },

+       "id": 613312,

+       "name": "python-argparse-manpage",

+       "ownername": "praiskup",

+       "projectname": "ping",

+       "source_dict": {

+         "pypi_package_name": "argparse-manpage",

+         "pypi_package_version": "",

+         "python_versions": [

+           "3"

+         ],

+         "spec_template": ""

+       },

+       "source_type": "pypi"

+     }

+   ],

+   "meta": {

+     "limit": null,

+     "offset": 0,

+     "order": "id",

+     "order_type": "ASC"

+   }

+ }

file modified
+67
@@ -2,6 +2,7 @@

  import argparse

  import json

  import pytest

+ import responses

  from munch import Munch

  

  import copr
@@ -196,6 +197,72 @@

      expected_warning = no_config_warning.format("~/.config/copr", "Dude, your config is missing")

      assert expected_warning in err

  

+ @responses.activate

+ @mock.patch("copr_cli.main.next_page")

+ @mock.patch('copr_cli.main.config_from_file')

+ def test_list_builds(config_from_file, next_page, capsys):

+     response_data = json.loads(read_res('list_builds_response.json'))

+     expected_output = read_res('list_builds_expected.txt')

+ 

+     responses.add(

+         responses.GET,

+         'http://copr.fedoraproject.org/api_3/build/list',

+         json=response_data, status=202)

+ 

+     # no config

+     config_from_file.side_effect = copr.v3.CoprNoConfigException("Dude, your config is missing")

+     next_page.return_value = None

+ 

+     main.main(argv=["list-builds", "praiskup/ping"])

+     out, _ = capsys.readouterr()

+     assert out.split("\n") == expected_output.split("\n")

+ 

+ @responses.activate

+ @mock.patch('copr_cli.main.config_from_file')

+ def test_list_packages(config_from_file, capsys):

+     response_data = json.loads(read_res('list_packages_response.json'))

+     expected_output = read_res('list_packages_expected.json')

+ 

+     responses.add(

+         responses.GET,

+         'http://copr.fedoraproject.org/api_3/package/list',

+         json=response_data, status=202)

+ 

+     # no config

+     config_from_file.side_effect = copr.v3.CoprNoConfigException("Dude, your config is missing")

+ 

+     main.main(argv=["list-packages", "praiskup/ping"])

+     out, _ = capsys.readouterr()

+     assert json.loads(out) == json.loads(expected_output)

+ 

+ @responses.activate

+ @mock.patch('copr_cli.main.config_from_file')

+ def test_get_package(config_from_file, capsys):

+ 

+     response_data = json.loads(read_res('get_package_response.json'))

+     response_build_data = json.loads(read_res('get_package_response_builds.json'))

+     expected_output = read_res('get_package_expected.json')

+ 

+     responses.add(

+         responses.GET,

+         'http://copr.fedoraproject.org/api_3/package',

+         json=response_data, status=202)

+ 

+     responses.add(

+         responses.GET,

+         'http://copr.fedoraproject.org/api_3/build/list',

+         json=response_build_data, status=202)

+ 

+ 

+     # no config

+     config_from_file.side_effect = copr.v3.CoprNoConfigException("Dude, your config is missing")

+ 

+     main.main(argv=[

+         "get-package", "--name", "binutils", "--with-all-builds",

+         "praiskup/autoconf-2.71-attempts", "--with-latest-succeeded-build",

+     ])

+     out, _ = capsys.readouterr()

+     assert json.loads(out) == json.loads(expected_output)

  

  @mock.patch('copr_cli.main.config_from_file')

  def test_list_project_no_username(config_from_file, capsys):

@@ -42,7 +42,7 @@

      CoprClient.create_from_file_config(config_location)

  

  

- # TODO: package https://github.com/dropbox/responses and use it

+ # TODO: reuse python3-responses instead

  def make_mock_response(filename, status_code=None):

      response = Response()

      response.status_code = status_code or 200

Build succeeded.

Metadata Update from @frostyx:
- Request assigned

3 years ago

If you don't mind, I am leaving the review to @schlupov, as an author of PR#1695. She will know best if it complements the original PR properly.

builds are not part of the original response to the get-package command.

Except for the expected output of the get-package command, the PR is OK, thank you.

Builds are, the command is:
copr get-package --name binutils --with-all-builds praiskup/autoconf-2.71-attempts --with-latest-succeeded-build

rebased onto 9d04009

3 years ago

Build succeeded.

Pull-Request has been merged by praiskup

3 years ago