Tim Andersson has proposed merging ~andersson123/autopkgtest-cloud:unit_test_duplicate_request into autopkgtest-cloud:master.
Requested reviews: Canonical's Ubuntu QA (canonical-ubuntu-qa) For more details, see: https://code.launchpad.net/~andersson123/autopkgtest-cloud/+git/autopkgtest-cloud/+merge/451369 -- Your team Canonical's Ubuntu QA is requested to review the proposed merge of ~andersson123/autopkgtest-cloud:unit_test_duplicate_request into autopkgtest-cloud:master.
diff --git a/charms/focal/autopkgtest-web/webcontrol/request/tests/test_submit.py b/charms/focal/autopkgtest-web/webcontrol/request/tests/test_submit.py index 8d93d43..faa50d6 100644 --- a/charms/focal/autopkgtest-web/webcontrol/request/tests/test_submit.py +++ b/charms/focal/autopkgtest-web/webcontrol/request/tests/test_submit.py @@ -10,7 +10,11 @@ from unittest.mock import MagicMock, patch import request.submit from distro_info import UbuntuDistroInfo -from helpers.exceptions import WebControlException +from helpers.exceptions import ( + RequestInQueue, + RequestRunning, + WebControlException, +) class SubmitTestBase(TestCase): @@ -40,13 +44,13 @@ class SubmitTestBase(TestCase): mock_sqlite.connect.return_value = test_db # mock config values - cfg = { + self.cfg = { "amqp": {"uri": "amqp://user:s3kr1t@1.2.3.4"}, "web": {"database": "/ignored", "database_ro": "/ignored"}, "autopkgtest": {"releases": "testy grumpy"}, } mock_configparser.return_value = MagicMock() - mock_configparser.return_value.__getitem__.side_effect = cfg.get + mock_configparser.return_value.__getitem__.side_effect = self.cfg.get self.submit = request.submit.Submit() self.submit.releases.add("testy") @@ -438,6 +442,46 @@ class DistroRequestValidationTests(SubmitTestBase): ) self.assertEqual(mock_urlopen.call_count, 6) + @patch("request.submit.Submit.is_test_in_queue") + def test_already_queued(self, mock_is_test_in_queue): + """Valid distro request is accepted""" + + is_test_in_queue_cm = MagicMock() + is_test_in_queue_cm.__enter__.return_value = is_test_in_queue_cm + is_test_in_queue_cm.is_request_queued.side_effect = RequestInQueue( + "testy", "blue", "C51", "ab/1.2" + ) + mock_is_test_in_queue.return_value = is_test_in_queue_cm + + with self.assertRaises(WebControlException) as cme: + self.submit.validate_distro_request( + "testy", "C51", "blue", ["ab/1.2"], "joe" + ) + self.assertEqual( + "Test already queued:\nrelease: testy\npkg: blue\narch: C51\ntriggers: ab/1.2", + str(cme.exception), + ) + + @patch("request.submit.Submit.is_test_running") + def test_already_running(self, mock_is_test_running): + """Test request is rejected if already running""" + + is_test_running_cm = MagicMock() + is_test_running_cm.__enter__.return_value = is_test_running_cm + is_test_running_cm.is_request_queued.side_effect = RequestRunning( + "testy", "blue", "C51", "ab/1.2" + ) + mock_is_test_running.return_value = is_test_running_cm + + with self.assertRaises(WebControlException) as cme: + self.submit.validate_distro_request( + "testy", "C51", "blue", ["ab/1.2"], "joe" + ) + self.assertEqual( + "Test already running:\nrelease: testy\npkg: blue\narch: C51\ntriggers: ab/1.2", + str(cme.exception), + ) + class GitRequestValidationTests(SubmitTestBase): """Test verification of git branch test requests"""
-- Mailing list: https://launchpad.net/~canonical-ubuntu-qa Post to : canonical-ubuntu-qa@lists.launchpad.net Unsubscribe : https://launchpad.net/~canonical-ubuntu-qa More help : https://help.launchpad.net/ListHelp