Esempio n. 1
0
class TestCreate(unittest.TestCase):
    def setUp(self):
        super(TestCreate, self).setUp()
        self.manager = ConsumerScheduleManager()
        self.units = [{'type_id': 'mytype', 'unit_key': {'name': 'foo'}}]

    @mock.patch.object(ConsumerScheduleManager, '_validate_consumer')
    def test_validation(self, mock_validate):
        mock_validate.side_effect = MissingResource

        self.assertRaises(MissingResource, self.manager.create_schedule,
                          UNIT_INSTALL_ACTION, 'consumer1', self.units, {},
                          'PT1H')

        mock_validate.assert_called_once_with('consumer1')

    @mock.patch.object(ScheduledCall, 'save')
    @mock.patch(
        'pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_allows_arbitrary_options(self, mock_get_consumer, mock_save):
        self.manager.create_schedule(UNIT_INSTALL_ACTION, 'consumer1',
                                     self.units, {'arbitrary_option': True},
                                     'PT1H')

        mock_save.assert_called_once_with()

    @mock.patch(
        'pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_validate_schedule(self, mock_get_consumer):
        self.assertRaises(InvalidValue, self.manager.create_schedule,
                          UNIT_INSTALL_ACTION, 'consumer1', self.units, {},
                          'not a valid schedule')

    @mock.patch(
        'pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_validate_units(self, mock_get_consumer):
        self.assertRaises(MissingResource, self.manager.create_schedule,
                          UNIT_INSTALL_ACTION, 'consumer1', [], {}, 'PT1M')

    @mock.patch.object(ScheduledCall, 'save')
    @mock.patch(
        'pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_save(self, mock_get_consumer, mock_save):
        iso_schedule = 'PT1H'
        result = self.manager.create_schedule(UNIT_INSTALL_ACTION, 'consumer1',
                                              self.units, {}, iso_schedule, 4,
                                              False)

        self.assertEqual(result.iso_schedule, iso_schedule)
        self.assertEqual(result.args, ['consumer1'])
        self.assertEqual(result.kwargs['units'], self.units)
        self.assertEqual(result.kwargs['options'], {})
        self.assertEqual(result.resource,
                         Consumer.build_resource_tag('consumer1'))
        self.assertTrue(result.enabled is False)

        mock_save.assert_called_once_with()
Esempio n. 2
0
class TestCreate(unittest.TestCase):
    def setUp(self):
        super(TestCreate, self).setUp()
        self.manager = ConsumerScheduleManager()
        self.units = [
            {'type_id': 'mytype', 'unit_key': {'name': 'foo'}}
        ]

    @mock.patch.object(ConsumerScheduleManager, '_validate_consumer')
    def test_validation(self, mock_validate):
        mock_validate.side_effect = MissingResource

        self.assertRaises(MissingResource, self.manager.create_schedule, UNIT_INSTALL_ACTION, 'consumer1',
                          self.units, {}, 'PT1H')

        mock_validate.assert_called_once_with('consumer1')

    @mock.patch.object(ScheduledCall, 'save')
    @mock.patch('pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_allows_arbitrary_options(self, mock_get_consumer, mock_save):
        self.manager.create_schedule(UNIT_INSTALL_ACTION, 'consumer1',
                                     self.units, {'arbitrary_option': True}, 'PT1H')

        mock_save.assert_called_once_with()

    @mock.patch('pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_validate_schedule(self, mock_get_consumer):
        self.assertRaises(InvalidValue, self.manager.create_schedule, UNIT_INSTALL_ACTION, 'consumer1',
                          self.units, {}, 'not a valid schedule')

    @mock.patch('pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_validate_units(self, mock_get_consumer):
        self.assertRaises(MissingResource, self.manager.create_schedule, UNIT_INSTALL_ACTION, 'consumer1',
                          [], {}, 'PT1M')


    @mock.patch.object(ScheduledCall, 'save')
    @mock.patch('pulp.server.managers.consumer.cud.ConsumerManager.get_consumer')
    def test_save(self, mock_get_consumer, mock_save):
        iso_schedule = 'PT1H'
        result = self.manager.create_schedule(UNIT_INSTALL_ACTION, 'consumer1',
                                              self.units, {}, iso_schedule, 4, False)

        self.assertEqual(result.iso_schedule, iso_schedule)
        self.assertEqual(result.args, ['consumer1'])
        self.assertEqual(result.kwargs['units'], self.units)
        self.assertEqual(result.kwargs['options'], {})
        self.assertEqual(result.resource, Consumer.build_resource_tag('consumer1'))
        self.assertTrue(result.enabled is False)

        mock_save.assert_called_once_with()