code: def test_signal_func_one_training_update_end(self):
      global triggered_times
      triggered_times = 0
  
      def print_message(network):
          global triggered_times
          triggered_times += 1
  
      train_network(epochs=4, signals=print_message, batch_size=None)
  
      self.assertEqual(triggered_times, 4)
  
imports: from __future__ import unicode_literals
  from collections import namedtuple
  import numpy
  import progressbar
  from sklearn.datasets import make_classification
  from neupy import algorithms, layers
  from neupy.exceptions import StopTraining
  from neupy.algorithms.signals import format_time
  from base import BaseTestCase
  from helpers import catch_stdout
label_desc: Use image node_id 1 for calling the SignalsTestCase obj's underlying member method code with example usage: obj.test_signal_func_one_training_update_end() without return types