def test_build_image_appliance(self): """Test _build_image function build appliance""" self.task_opts = Options(APPLIANCE_OPTIONS) self.task_opts.ksurl = 'http://somewhere.org' expected = "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" args = [self.options, self.task_opts, self.session, self.arguments, 'appliance'] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: _build_image(*args) self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.watch_tasks.assert_called_once()
def test_build_image_livemedia_without_ksurl(self): """Test _build_image function build livemedia without ksurl""" self.task_opts = Options(LIVEMEDIA_OPTIONS) self.task_opts.optional_arches = 'ppc, arm64' expected = "\n" expected += "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" # set return value for check self.watch_tasks.return_value = self.task_id args = [ self.options, self.task_opts, self.session, self.arguments, 'livemedia' ] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: self.assertEqual(self.task_id, _build_image(*args)) args, kwargs = self.session.buildImage.call_args self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.watch_tasks.assert_called_once() opts = kwargs['opts'] self.assertIn('optional_arches', opts) self.assertEqual(self.task_opts.optional_arches.split(','), opts['optional_arches'])
def test_build_image_livemedia_without_ksurl(self): """Test _build_image function build livemedia without ksurl""" self.task_opts = Options(LIVEMEDIA_OPTIONS) self.task_opts.optional_arches = 'ppc, arm64' expected = "\n" expected += "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" # set return value for check self.watch_tasks.return_value = self.task_id args = [self.options, self.task_opts, self.session, self.arguments, 'livemedia'] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: self.assertEqual(self.task_id, _build_image(*args)) args, kwargs = self.session.buildImage.call_args self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.watch_tasks.assert_called_once() opts = kwargs['opts'] self.assertIn('optional_arches', opts) self.assertEqual( self.task_opts.optional_arches.split(','), opts['optional_arches'])
def test_build_image_appliance(self): """Test _build_image function build appliance""" self.task_opts = Options(APPLIANCE_OPTIONS) self.task_opts.ksurl = 'http://somewhere.org' expected = "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" args = [self.options, self.task_opts, self.session, self.arguments, 'appliance'] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: _build_image(*args) self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.watch_tasks.assert_called_once()
def test_build_image_livemedia_no_progress(self): """Test _build_image function build livemedia with noprogress option""" self.task_opts = Options(LIVEMEDIA_OPTIONS) self.task_opts.noprogress = True self.task_opts.wait = False expected = "\n" expected += "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" args = [self.options, self.task_opts, self.session, self.arguments, 'livemedia'] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: self.assertEqual(None, _build_image(*args)) args, kwargs = self.session.buildImage.call_args self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.session.logout.assert_not_called() self.watch_tasks.assert_not_called()
def test_build_image_livemedia_no_progress(self): """Test _build_image function build livemedia with noprogress option""" self.task_opts = Options(LIVEMEDIA_OPTIONS) self.task_opts.noprogress = True self.task_opts.wait = False expected = "\n" expected += "Created task: %d" % self.task_id + "\n" expected += "Task info: %s/taskinfo?taskID=%s" % (self.weburl, self.task_id) + "\n" args = [self.options, self.task_opts, self.session, self.arguments, 'livemedia'] with mock.patch('sys.stdout', new_callable=six.StringIO) as stdout: self.assertEqual(None, _build_image(*args)) args, kwargs = self.session.buildImage.call_args self.assert_console_message(stdout, expected) self.session.buildImage.assert_called_once() self.session.logout.assert_not_called() self.watch_tasks.assert_not_called()
def test_build_image_expections(self): """Test _build_image all exceptions""" self.task_opts = Options(LIVEMEDIA_OPTIONS) # Case 1. sanity check for image type img_type = 'unknown_type' expected = 'Unrecognized image type: %s' % img_type args = [ self.options, self.task_opts, self.session, self.arguments, img_type ] with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_not_called() img_type = 'livemedia' # Case 2. target not found error self.activate_session.reset_mock() self.session.getBuildTarget.return_value = {} expected = "Unknown build target: %s" % self.arguments[2] args[-1] = img_type with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_called_with(self.session, self.options) # Case 3. tag not found error self.activate_session.reset_mock() self.session.getBuildTarget.return_value = self.build_target self.session.getTag.return_value = {} expected = "Unknown destination tag: %s" % self.build_target[ 'dest_tag_name'] args[-1] = img_type with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_called_with(self.session, self.options)
def test_build_image_expections(self): """Test _build_image all exceptions""" self.task_opts = Options(LIVEMEDIA_OPTIONS) # Case 1. sanity check for image type img_type = 'unknown_type' expected = 'Unrecognized image type: %s' % img_type args = [self.options, self.task_opts, self.session, self.arguments, img_type] with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_not_called() img_type = 'livemedia' # Case 2. target not found error self.activate_session.reset_mock() self.session.getBuildTarget.return_value = {} expected = "Unknown build target: %s" % self.arguments[2] args[-1] = img_type with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_called_with(self.session, self.options) # Case 3. tag not found error self.activate_session.reset_mock() self.session.getBuildTarget.return_value = self.build_target self.session.getTag.return_value = {} expected = "Unknown destination tag: %s" % self.build_target['dest_tag_name'] args[-1] = img_type with self.assertRaises(koji.GenericError) as cm: _build_image(*args) self.assertEqual(str(cm.exception), expected) self.activate_session.assert_called_with(self.session, self.options)