From 13b3f806b8254434bc01b84436f64a6a436ad6f7 Mon Sep 17 00:00:00 2001 From: Tomas Olander Date: Sun, 23 Feb 2014 14:50:23 +0100 Subject: [PATCH] add unit test for multiple top level folders --- .../unittests/test_job_folders.py | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/jenkinsapi_tests/unittests/test_job_folders.py b/jenkinsapi_tests/unittests/test_job_folders.py index a23c4d8..15cfa4a 100644 --- a/jenkinsapi_tests/unittests/test_job_folders.py +++ b/jenkinsapi_tests/unittests/test_job_folders.py @@ -119,6 +119,67 @@ class TestJobFolders(unittest.TestCase): ) get_data_mock.assert_called_once_with('http://localhost:8080/job/Folder1/api/python') + @mock.patch('jenkinsapi.jenkins.JenkinsBase.get_data') + def test_multiple_folders(self, get_data_mock): + get_data_mock.side_effect = [ + # first call + { + 'jobs': [ + { + 'name': "Foo", + 'url': "http://localhost:8080/job/Folder1/job/Foo", + 'color': "disabled", + }, + ] + }, + + # second call + { + 'jobs': [ + { + 'name': "Bar", + 'url': "http://localhost:8080/job/Folder2/job/Bar", + 'color': "blue", + }, + ] + }, + ] + + jobs = [ + { + 'name': "Folder1", + 'url': "http://localhost:8080/job/Folder1", + }, + { + 'name': "Folder2", + 'url': "http://localhost:8080/job/Folder2", + }, + ] + + self.assertEquals( + self.jb.resolve_job_folders(jobs), + [ + { + 'name': "Foo", + 'url': "http://localhost:8080/job/Folder1/job/Foo", + 'color': "disabled", + }, + { + 'name': "Bar", + 'url': "http://localhost:8080/job/Folder2/job/Bar", + 'color': "blue", + }, + ] + ) + + self.assertEquals( + get_data_mock.call_args_list, + [ + mock.call('http://localhost:8080/job/Folder1/api/python'), + mock.call('http://localhost:8080/job/Folder2/api/python'), + ] + ) + @mock.patch('jenkinsapi.jenkins.JenkinsBase.get_data') def test_multiple_folder_levels(self, get_data_mock): get_data_mock.side_effect = [ -- 2.34.1