def test_create_offering_validation(self, name, offering, checker, side_effect, msg=None): self._mock_validator_imports(offering_validator) offering_validator.Resource.objects.filter.return_value = [self._asset_instance] self._mock_product_request() self._mock_offering_bundle(offering) # Add the extra call for open search offering_responses = [bund for bund in self._bundles] offering_responses.append([]) offering_validator.Offering.objects.filter.side_effect = offering_responses if side_effect is not None: side_effect(self) error = None try: validator = offering_validator.OfferingValidator() validator.validate('create', self._provider, offering) except Exception as e: error = e if msg is not None: self.assertTrue(isinstance(error, ValueError)) self.assertEquals(msg, unicode(error)) else: self.assertEquals(error, None) # Validate calls checker(self, offering)
def test_update_open_offering(self): self._mock_offering_update() validator = offering_validator.OfferingValidator() validator.validate('update', self._provider, OPEN_OFFERING) # Validate calls offering_validator.Offering.objects.filter.assert_called_once_with(asset=self._asset_instance) self.assertTrue(self._asset_instance.is_public) self._asset_instance.save.assert_called_once_with()
def test_update_offering_validator(self): self._mock_offering_update() validator = offering_validator.OfferingValidator() validator.validate('update', self._provider, BASIC_OFFERING) # Validate calls self.assertEquals(0, offering_validator.Offering.objects.filter.call_count) self.assertFalse(self._asset_instance.is_public) self._asset_instance.save.assert_called_once_with()
def test_offering_attachment_missing(self): offering_validator.Offering = MagicMock() offering_validator.Offering.objects.filter.return_value = [] error = None try: validator = offering_validator.OfferingValidator() validator.validate('attach', self._provider, BASIC_OFFERING) except ValueError as e: error = e self.assertEquals('The specified offering has not been registered', unicode(error))
def test_offering_attachment(self): offering = MagicMock() offering_validator.Offering = MagicMock() offering_validator.Offering.objects.filter.return_value = [offering] validator = offering_validator.OfferingValidator() validator.validate('attach', self._provider, BASIC_OFFERING) self.assertEquals(BASIC_OFFERING['href'], offering.href) self.assertEquals(BASIC_OFFERING['id'], offering.off_id) offering.save.assert_called_once_with()
def test_update_open_offering_multiple_error(self): self._mock_offering_update() offering_validator.Offering.objects.filter.return_value = [MagicMock(), MagicMock()] error = None try: validator = offering_validator.OfferingValidator() validator.validate('update', self._provider, OPEN_OFFERING) except Exception as e: error = e self.assertTrue(isinstance(error, ValueError)) self.assertEqual(unicode(error), 'Assets of open offerings cannot be monetized in other offerings')