Exemple #1
0
 def test_is_build_completed(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     with patch('upload_jenkins_job.get_build_data', autospec=True,
                return_value=BUILD_INFO) as gbd_mock:
         build_status = j.is_build_completed()
     self.assertIs(build_status, True)
     self.assertEqual(gbd_mock.mock_calls, create_build_data_calls())
Exemple #2
0
 def test_is_build_completed_return_false(self):
     credentials = fake_credentials()
     build_info = json.loads('{"building": true}')
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     with patch('upload_jenkins_job.get_build_data', autospec=True,
                return_value=build_info) as gbd_mock:
         build_status = j.is_build_completed()
     self.assertIs(build_status, False)
     self.assertEqual(gbd_mock.mock_calls, create_build_data_calls())
Exemple #3
0
 def test_is_build_completed(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                return_value=BUILD_INFO) as gbd_mock:
         build_status = j.is_build_completed()
     self.assertIs(build_status, True)
     self.assertEqual(gbd_mock.mock_calls, create_build_data_calls())
Exemple #4
0
 def test_get_build_info(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, None)
     with patch('upload_jenkins_job.get_build_data', autospec=True,
                return_value=BUILD_INFO) as gbd_mock:
         build_info = j.get_build_info(BUILD_NUM)
     self.assertEqual(build_info, BUILD_INFO)
     gbd_mock.assert_called_once_with(
         JENKINS_URL, credentials, JOB_NAME, BUILD_NUM)
Exemple #5
0
 def test_get_last_completed_build_number(self):
     last_build = {"lastCompletedBuild": {"number": BUILD_NUM}}
     credentials = fake_credentials()
     with patch("upload_jenkins_job.get_job_data", autospec=True,
                return_value=last_build) as gjd_mock:
         j = JenkinsBuild(credentials, JOB_NAME, None, BUILD_INFO)
         last_build_number = j.get_last_completed_build_number()
     self.assertEqual(last_build_number, BUILD_NUM)
     gjd_mock.assert_called_once_with(None, credentials, JOB_NAME)
Exemple #6
0
 def test_is_build_completed_return_false(self):
     credentials = fake_credentials()
     build_info = json.loads('{"building": true}')
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                return_value=build_info) as gbd_mock:
         build_status = j.is_build_completed()
     self.assertIs(build_status, False)
     self.assertEqual(gbd_mock.mock_calls, create_build_data_calls())
Exemple #7
0
 def test_get_build_info(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, None)
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                return_value=BUILD_INFO) as gbd_mock:
         build_info = j.get_build_info(BUILD_NUM)
     self.assertEqual(build_info, BUILD_INFO)
     gbd_mock.assert_called_once_with(JENKINS_URL, credentials, JOB_NAME,
                                      BUILD_NUM)
Exemple #8
0
 def test_get_last_completed_build_number(self):
     last_build = {"lastCompletedBuild": {"number": BUILD_NUM}}
     credentials = fake_credentials()
     with patch("upload_jenkins_job.get_job_data",
                autospec=True,
                return_value=last_build) as gjd_mock:
         j = JenkinsBuild(credentials, JOB_NAME, None, BUILD_INFO)
         last_build_number = j.get_last_completed_build_number()
     self.assertEqual(last_build_number, BUILD_NUM)
     gjd_mock.assert_called_once_with(None, credentials, JOB_NAME)
Exemple #9
0
    def test_console_text(self):
        class Response:
            text = "console content"

        credentials = fake_credentials()
        j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
        with patch('upload_jenkins_job.requests.get',
                   return_value=Response, autospec=True) as u_mock:
            with patch('upload_jenkins_job.HTTPBasicAuth',
                       autospec=True) as h_mock:
                text = j.get_console_text()
                self.assertEqual(text, 'console content')
        u_mock.assert_called_once_with(
            BUILD_INFO['url'] + 'consoleText', auth=h_mock.return_value)
        h_mock.assert_called_once_with(credentials[0], credentials[1])
Exemple #10
0
    def test_artifacts(self):
        class Response:
            content = "artifact content"

        credentials = fake_credentials()
        j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
        expected = BUILD_INFO['url'] + 'artifact/' + 'logs/all-machines.log.gz'
        with patch('upload_jenkins_job.requests.get',
                   return_value=Response, autospec=True) as u_mock:
            with patch('upload_jenkins_job.HTTPBasicAuth',
                       return_value=None, autospec=True) as h_mock:
                    for filename, content in j.artifacts():
                        self.assertEqual(content, 'artifact content')
        u_mock.assert_called_once_with(
            expected, auth=h_mock.return_value)
        h_mock.assert_called_once_with(credentials.user, credentials.password)
Exemple #11
0
    def test_console_text(self):
        class Response:
            text = "console content"

        credentials = fake_credentials()
        j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
        with patch('upload_jenkins_job.requests.get',
                   return_value=Response,
                   autospec=True) as u_mock:
            with patch('upload_jenkins_job.HTTPBasicAuth',
                       autospec=True) as h_mock:
                text = j.get_console_text()
                self.assertEqual(text, 'console content')
        u_mock.assert_called_once_with(BUILD_INFO['url'] + 'consoleText',
                                       auth=h_mock.return_value)
        h_mock.assert_called_once_with(credentials[0], credentials[1])
Exemple #12
0
    def test_artifacts(self):
        class Response:
            content = "artifact content"

        credentials = fake_credentials()
        j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
        expected = BUILD_INFO['url'] + 'artifact/' + 'logs/all-machines.log.gz'
        with patch('upload_jenkins_job.requests.get',
                   return_value=Response,
                   autospec=True) as u_mock:
            with patch('upload_jenkins_job.HTTPBasicAuth',
                       return_value=None,
                       autospec=True) as h_mock:
                for filename, content in j.artifacts():
                    self.assertEqual(content, 'artifact content')
        u_mock.assert_called_once_with(expected, auth=h_mock.return_value)
        h_mock.assert_called_once_with(credentials.user, credentials.password)
Exemple #13
0
 def test_factory_with_build_number(self):
     credentials = fake_credentials()
     with patch('upload_jenkins_job.get_build_data',
                autospec=True, return_value=BUILD_INFO) as gbd_mock:
         j = JenkinsBuild.factory(credentials, JOB_NAME, BUILD_NUM)
     self.assertIs(type(j), JenkinsBuild)
     self.assertEqual(j.build_info, BUILD_INFO)
     gbd_mock.assert_called_once_with(
         JENKINS_URL, credentials, JOB_NAME, BUILD_NUM)
Exemple #14
0
 def test_factory_with_build_number(self):
     credentials = fake_credentials()
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                return_value=BUILD_INFO) as gbd_mock:
         j = JenkinsBuild.factory(credentials, JOB_NAME, BUILD_NUM)
     self.assertIs(type(j), JenkinsBuild)
     self.assertEqual(j.build_info, BUILD_INFO)
     gbd_mock.assert_called_once_with(JENKINS_URL, credentials, JOB_NAME,
                                      BUILD_NUM)
Exemple #15
0
 def test_factory(self):
     credentials = fake_credentials()
     with patch('upload_jenkins_job.get_build_data',
                autospec=True) as gbd_mock:
         j = JenkinsBuild.factory(credentials, JOB_NAME)
     self.assertIs(type(j), JenkinsBuild)
     self.assertEqual(j.job_name, JOB_NAME)
     self.assertEqual(j.credentials, credentials)
     self.assertEqual(j.build_info, None)
     self.assertEqual(j.jenkins_url, JENKINS_URL)
     self.assertEqual(gbd_mock.call_count, 0)
Exemple #16
0
 def test_factory(self):
     credentials = fake_credentials()
     with patch('upload_jenkins_job.get_build_data',
                autospec=True) as gbd_mock:
         j = JenkinsBuild.factory(credentials, JOB_NAME)
     self.assertIs(type(j), JenkinsBuild)
     self.assertEqual(j.job_name, JOB_NAME)
     self.assertEqual(j.credentials, credentials)
     self.assertEqual(j.build_info, None)
     self.assertEqual(j.jenkins_url, JENKINS_URL)
     self.assertEqual(gbd_mock.call_count, 0)
Exemple #17
0
 def test_upload_by_build_number_timeout(self):
     credentials = fake_credentials()
     build_info = {"number": 9988, 'building': True}
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     uploader = S3Uploader(None, j)
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                return_value=build_info) as gbd_mock:
         with self.assertRaisesRegexp(Exception,
                                      "Build fails to complete: 9988"):
             uploader.upload_by_build_number(build_number=9988,
                                             pause_time=.1,
                                             timeout=.1)
     self.assertEqual(gbd_mock.mock_calls,
                      create_build_data_calls(build_num=9988, calls=2))
Exemple #18
0
 def test_upload_by_build_number(self):
     credentials = fake_credentials()
     build_info = {"number": 9988, 'building': False}
     j = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     uploader = S3Uploader(None, j)
     with patch('upload_jenkins_job.os.getenv',
                return_value=9988,
                autospec=True) as g_mock:
         with patch('upload_jenkins_job.get_build_data',
                    autospec=True,
                    return_value=build_info) as gbd_mock:
             with patch.object(uploader, 'upload', autospec=True) as u_mock:
                 uploader.upload_by_build_number()
     g_mock.assert_called_once_with('BUILD_NUMBER')
     u_mock.assert_called_once_with()
     self.assertEqual(gbd_mock.mock_calls,
                      create_build_data_calls(build_num=9988, calls=2))
Exemple #19
0
 def test_upload_by_build_number_waits(self):
     credentials = fake_credentials()
     build_info = {"number": BUILD_NUM, 'building': True}
     build_info_done = {"number": BUILD_NUM, 'building': False}
     jb = JenkinsBuild(credentials, JOB_NAME, JENKINS_URL, BUILD_INFO)
     uploader = S3Uploader(None, jb)
     with patch('upload_jenkins_job.get_build_data',
                autospec=True,
                side_effect=[build_info, build_info, build_info_done]) as m:
         with patch.object(uploader, 'upload', autospec=True) as u_mock:
             with patch('upload_jenkins_job.sleep',
                        autospec=True,
                        side_effect=sleep(.1)) as s_mock:
                 uploader.upload_by_build_number(build_number=BUILD_NUM,
                                                 pause_time=.1,
                                                 timeout=1)
     self.assertEqual(m.mock_calls, create_build_data_calls(calls=3))
     u_mock.assert_called_once_with()
     s_mock.assert_called_once_with(.1)
Exemple #20
0
    def test_last_completed_test_results(self):
        class Response:
            text = "console content"

        build_info = {"artifacts": [], 'url': 'fake', "number": BUILD_NUM}
        last_build = {"lastCompletedBuild": {"number": BUILD_NUM}}
        cred = Credentials('joe', 'password')
        jenkins_build = JenkinsBuild(cred, None, None, build_info)
        s3_mock = MagicMock()
        h = S3Uploader(s3_mock, jenkins_build)
        with patch("upload_jenkins_job.get_job_data",
                   autospec=True,
                   return_value=last_build) as gjd_mock:
            with patch("upload_jenkins_job.get_build_data",
                       autospec=True,
                       return_value=build_info) as gbd_mock:
                with patch('upload_jenkins_job.requests.get',
                           autospec=True,
                           return_value=Response):
                    h.upload_last_completed_test_result()
                    self.assertEqual(
                        h.jenkins_build.get_last_completed_build_number(),
                        BUILD_NUM)
        self.assertEqual(s3_mock.store.mock_calls, [
            call('1277-result-results.json',
                 json.dumps(build_info, indent=4),
                 headers={"Content-Type": "application/json"}),
            call('1277-console-consoleText.txt',
                 Response.text,
                 headers={"Content-Type": "text/plain; charset=utf8"})
        ])
        self.assertEqual(gjd_mock.mock_calls,
                         [call(None, cred, None),
                          call(None, cred, None)])
        self.assertEqual(gbd_mock.mock_calls, [
            call(None, cred, None, BUILD_NUM),
            call(None, cred, None, BUILD_NUM)
        ])
Exemple #21
0
 def test_get_build_number(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
     self.assertEqual(j.get_build_number(), BUILD_NUM)
Exemple #22
0
 def test_get_build_number(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, "fake", None, BUILD_INFO)
     self.assertEqual(j.get_build_number(), BUILD_NUM)
Exemple #23
0
 def test_result(self):
     credentials = fake_credentials()
     j = JenkinsBuild(credentials, JOB_NAME, None, BUILD_INFO)
     self.assertEqual(j.result, BUILD_INFO['result'])