def test_set_over_18(self): """Assert that set_over_18 invokes _set_attributes""" CollectionStorage._set_attributes = MagicMock() CollectionStorage.set_over_18(self.name, True) CollectionStorage._set_attributes.assert_called_once_with(self.name, {'over_18': 'True'})
def test_set_is_spotlight(self): """Assert that set_is_spotlight invokes _set_attributes""" CollectionStorage._set_attributes = MagicMock() CollectionStorage.set_is_spotlight(self.name, True) CollectionStorage._set_attributes.assert_called_once_with(self.name, {'is_spotlight': 'True'})
def test_set_attributes(self): """Assert that _set_attributes properly handles invalid attributes""" attribute_error_message = 'No attribute on %s called %s' invalid_attribute = {'invalid_attribute': None} valid_attribute = {'is_spotlight': None} collection = Collection(name=self.name, sr_names=[]) Collection.by_name = Mock() Collection.by_name.return_value = collection # Assert that a bad attribute will raise NotFoundException with self.assertRaises(AttributeError) as e: CollectionStorage._set_attributes(self.name, invalid_attribute) self.assertEqual(e.exception.message, attribute_error_message % (self.name, invalid_attribute.keys()[0])) # Should throw even if there's a bad attribute AND valid attribute with self.assertRaises(AttributeError) as e: CollectionStorage._set_attributes(self.name, dict(invalid_attribute, **valid_attribute)) self.assertEqual(e.exception.message, attribute_error_message % (self.name, invalid_attribute.keys()[0])) CollectionStorage._set_values = MagicMock() CollectionStorage._set_attributes(self.name, valid_attribute) # Assert that no exception thrown if valid attributes passed CollectionStorage._set_values.assert_called_once_with(self.name, valid_attribute)