| |
@@ -1,5 +1,5 @@
|
| |
import logging
|
| |
- from unittest.mock import call, MagicMock, Mock, patch
|
| |
+ from unittest.mock import ANY, call, MagicMock, Mock, patch
|
| |
|
| |
import beanbag.bbexcept
|
| |
import fedora_messaging.api
|
| |
@@ -929,3 +929,91 @@
|
| |
pdc["releases"]._.assert_called_once_with({"foo": "bar", "active": True})
|
| |
assert caplog.records[-2].message.startswith("Failed to create the release")
|
| |
assert caplog.records[-1].message.startswith("html content")
|
| |
+
|
| |
+
|
| |
+ class TestPDCImportComposeToddlerCLI:
|
| |
+
|
| |
+ toddler_cls = toddlers.plugins.pdc_import_compose.PDCImportCompose
|
| |
+
|
| |
+ def test_main_no_args(self, capsys):
|
| |
+ with pytest.raises(SystemExit):
|
| |
+ toddlers.plugins.pdc_import_compose.main([])
|
| |
+
|
| |
+ out, err = capsys.readouterr()
|
| |
+ assert out == ""
|
| |
+ # Expecting something along these lines, but don't make the test too tight:
|
| |
+ #
|
| |
+ # usage: pytest [-h] [--dry-run] [-q | --debug] conf [username]
|
| |
+ # pytest: error: the following arguments are required: conf
|
| |
+ assert err.startswith("usage:")
|
| |
+ assert "error: the following arguments are required:" in err
|
| |
+
|
| |
+ @patch(
|
| |
+ "toddlers.plugins.pdc_import_compose.PDCImportCompose._process_single_compose"
|
| |
+ )
|
| |
+ @patch("toddlers.plugins.pdc_import_compose.pdc_client_for_config")
|
| |
+ @patch("toml.load", new=Mock(return_value={}))
|
| |
+ def test_main_debug(self, pdc, process_dg, msg_file, capsys):
|
| |
+ client = Mock()
|
| |
+ pdc.return_value = client
|
| |
+
|
| |
+ msg = fedora_messaging.api.Message()
|
| |
+ msg.id = ANY
|
| |
+ msg.topic = "toddlers.cli.pungi.compose.status.change"
|
| |
+ msg.body = {
|
| |
+ "status": "FINISHED",
|
| |
+ "release_type": "ga",
|
| |
+ "compose_label": "RC-1.2",
|
| |
+ "compose_respin": 0,
|
| |
+ "compose_date": "20201019",
|
| |
+ "release_short": "Fedora",
|
| |
+ "release_version": "33",
|
| |
+ "location": "https://kojipkgs.fedoraproject.org/compose/33/"
|
| |
+ "Fedora-33-20201019.0/compose",
|
| |
+ "compose_type": "production",
|
| |
+ "release_is_layered": False,
|
| |
+ "release_name": "Fedora",
|
| |
+ "compose_path": "/mnt/koji/compose/33/Fedora-33-20201019.0",
|
| |
+ "compose_id": "Fedora-33-20201019.0",
|
| |
+ }
|
| |
+
|
| |
+ toddlers.plugins.pdc_import_compose.main(["test.cfg", "--debug", msg_file])
|
| |
+ process_dg.assert_called_once_with({}, client, msg)
|
| |
+ out, err = capsys.readouterr()
|
| |
+ assert out == ""
|
| |
+ assert err == ""
|
| |
+
|
| |
+ @patch(
|
| |
+ "toddlers.plugins.pdc_import_compose.PDCImportCompose._process_single_compose"
|
| |
+ )
|
| |
+ @patch("toddlers.plugins.pdc_import_compose.pdc_client_for_config")
|
| |
+ @patch("toml.load", new=Mock(return_value={}))
|
| |
+ def test_main(self, pdc, process_dg, msg_file, capsys):
|
| |
+ client = Mock()
|
| |
+ pdc.return_value = client
|
| |
+
|
| |
+ msg = fedora_messaging.api.Message()
|
| |
+ msg.id = ANY
|
| |
+ msg.topic = "toddlers.cli.pungi.compose.status.change"
|
| |
+ msg.body = {
|
| |
+ "status": "FINISHED",
|
| |
+ "release_type": "ga",
|
| |
+ "compose_label": "RC-1.2",
|
| |
+ "compose_respin": 0,
|
| |
+ "compose_date": "20201019",
|
| |
+ "release_short": "Fedora",
|
| |
+ "release_version": "33",
|
| |
+ "location": "https://kojipkgs.fedoraproject.org/compose/33/"
|
| |
+ "Fedora-33-20201019.0/compose",
|
| |
+ "compose_type": "production",
|
| |
+ "release_is_layered": False,
|
| |
+ "release_name": "Fedora",
|
| |
+ "compose_path": "/mnt/koji/compose/33/Fedora-33-20201019.0",
|
| |
+ "compose_id": "Fedora-33-20201019.0",
|
| |
+ }
|
| |
+
|
| |
+ toddlers.plugins.pdc_import_compose.main(["test.cfg", msg_file])
|
| |
+ process_dg.assert_called_once_with({}, client, msg)
|
| |
+ out, err = capsys.readouterr()
|
| |
+ assert out == ""
|
| |
+ assert err == ""
|
| |