code: def test_that_feature_extractor_is_not_trainable(self):
      y = np.random.random(
          (
              1,
              self.setup["patch_size"] * 2,
              self.setup["patch_size"] * 2,
              3,
          )
      )
      f_ext_out_shape = list(self.f_ext.model.outputs[0].shape[1:4])
      f_ext_out_shape1 = list(self.f_ext.model.outputs[1].shape[1:4])
      feats = [
          np.random.random([1] + f_ext_out_shape),
          np.random.random([1] + f_ext_out_shape1),
      ]
      w_before = []
      for layer in self.f_ext.model.layers:
          if layer.trainable:
              w_before.append(layer.get_weights()[0])
      self.f_ext.model.train_on_batch(y, [*feats])
      for i, layer in enumerate(self.f_ext.model.layers):
          if layer.trainable:
              self.assertFalse(w_before[i] == layer.get_weights()[0])
  
file_path: image-super-resolution/tests/models/test_models.py
imports: import os
  import unittest
  import yaml
  import numpy
  from tensorflow.keras.optimizers import Adam
  from ISR.models.rrdn import RRDN
  from ISR.models.rdn import RDN
  from ISR.models.discriminator import Discriminator
  from ISR.models.cut_vgg19 import Cut_VGG19
label_desc: Use image node_id 7 for calling the ModelsClassTest obj's underlying member method code with example usage: obj.test_that_feature_extractor_is_not_trainable() without return types