code: def test_that_discriminator_is_trainable_outside_of_combined(self):
      combined = self.trainer._combine_networks()
      y = np.random.random(
          (
              1,
              self.setup["patch_size"] * 2,
              self.setup["patch_size"] * 2,
              3,
          )
      )
      discr_out_shape = list(self.discr.model.outputs[0].shape)[1:4]
      valid = np.ones([1] + discr_out_shape)
  
      before_step = []
      for layer in self.trainer.discriminator.model.layers:
          if len(layer.trainable_weights) > 0:
              before_step.append(layer.get_weights()[0])
  
      self.trainer.discriminator.model.train_on_batch(y, valid)
  
      i = 0
      for layer in self.trainer.discriminator.model.layers:
          if len(layer.trainable_weights) > 0:
              self.assertFalse(
                  np.all(before_step[i] == layer.get_weights()[0])
              )
              i += 1
  
imports: import logging
  import os
  import shutil
  import unittest
  from copy import copy
  from pathlib import Path
  import yaml
  import numpy
  from unittest.mock import patch, Mock
  from ISR.models.cut_vgg19 import Cut_VGG19
  from ISR.models.discriminator import Discriminator
  from ISR.models.rrdn import RRDN
  from ISR.train.trainer import Trainer
label_desc: Use image node_id 9 for calling the TrainerClassTest obj's underlying member method code with example usage: obj.test_that_discriminator_is_trainable_outside_of_combined() without return types