old_contents: import pickle
  from six.moves import range
  
  from fuel.utils import do_not_pickle_attributes
  
  
  @do_not_pickle_attributes("non_pickable", "bulky_attr")
  class TestClass(object):
      def __init__(self):
          self.load()
  
      def load(self):
          self.bulky_attr = list(range(100))
          self.non_pickable = lambda x: x
  
  
  def test_do_not_pickle_attributes():
      cl = TestClass()
  
      dump = pickle.dumps(cl)
  
      loaded = pickle.loads(dump)
      assert loaded.bulky_attr == list(range(100))
      assert loaded.non_pickable is not None
  
new_contents: from numpy.testing import assert_raises, assert_equal
  from six.moves import range, cPickle
  
  from fuel.iterator import DataIterator
  from fuel.utils import do_not_pickle_attributes
  
  
  @do_not_pickle_attributes("non_picklable", "bulky_attr")
  class DummyClass(object):
      def __init__(self):
          self.load()
  
      def load(self):
          self.bulky_attr = list(range(100))
          self.non_picklable = lambda x: x
  
  
  class FaultyClass(object):
      pass
  
  
  @do_not_pickle_attributes("iterator")
  class UnpicklableClass(object):
      def __init__(self):
          self.load()
  
      def load(self):
          self.iterator = DataIterator(None)
  
  
  @do_not_pickle_attributes("attribute")
  class NonLoadingClass(object):
      def load(self):
          pass
  
  
  class TestDoNotPickleAttributes(object):
      def test_load(self):
          instance = cPickle.loads(cPickle.dumps(DummyClass()))
          assert_equal(instance.bulky_attr, list(range(100)))
          assert instance.non_picklable is not None
  
      def test_value_error_no_load_method(self):
          assert_raises(ValueError, do_not_pickle_attributes("x"), FaultyClass)
  
      def test_value_error_iterator(self):
          assert_raises(ValueError, cPickle.dumps, UnpicklableClass())
  
      def test_value_error_attribute_non_loaded(self):
          assert_raises(ValueError, getattr, NonLoadingClass(), 'attribute')
  
subject: Increase test coverage in utils.py